diff --git a/CMakeCache.txt b/CMakeCache.txt new file mode 100644 index 0000000..c6b5a52 --- /dev/null +++ b/CMakeCache.txt @@ -0,0 +1,758 @@ +# This is the CMakeCache file. +# For build in directory: /home/tobli/abo/pprog/Homework-3 +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CUDA architectures +CMAKE_CUDA_ARCHITECTURES:STRING=52 + +//No help, variable specified on the command line. +CMAKE_CUDA_COMPILER:UNINITIALIZED=/opt/cuda/bin/nvcc + +//Flags used by the CUDA compiler during all build types. +CMAKE_CUDA_FLAGS:STRING= + +//Flags used by the CUDA compiler during DEBUG builds. +CMAKE_CUDA_FLAGS_DEBUG:STRING=-g + +//Flags used by the CUDA compiler during MINSIZEREL builds. +CMAKE_CUDA_FLAGS_MINSIZEREL:STRING=-O1 -DNDEBUG + +//Flags used by the CUDA compiler during RELEASE builds. +CMAKE_CUDA_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CUDA compiler during RELWITHDEBINFO builds. +CMAKE_CUDA_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/tobli/abo/pprog/Homework-3/CMakeFiles/pkgRedirects + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=app + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a file. +CUDAToolkit_CUPTI_INCLUDE_DIR:PATH=/opt/cuda/targets/x86_64-linux/include/../../../extras/CUPTI/include + +//Path to a library. +CUDAToolkit_rt_LIBRARY:FILEPATH=/usr/lib/librt.a + +//Path to a library. +CUDA_CUDART:FILEPATH=/opt/cuda/lib/libcudart.so + +//Path to a library. +CUDA_OpenCL_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libOpenCL.so + +//Path to a library. +CUDA_cuFile_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufile.so + +//Path to a library. +CUDA_cuFile_rdma_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufile_rdma.so + +//Path to a library. +CUDA_cuFile_rdma_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufile_rdma_static.a + +//Path to a library. +CUDA_cuFile_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufile_static.a + +//Path to a library. +CUDA_cublasLt_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcublasLt.so + +//Path to a library. +CUDA_cublasLt_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcublasLt_static.a + +//Path to a library. +CUDA_cublas_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcublas.so + +//Path to a library. +CUDA_cublas_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcublas_static.a + +//Path to a library. +CUDA_cuda_driver_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/stubs/libcuda.so + +//Path to a library. +CUDA_cudart_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcudart.so + +//Path to a library. +CUDA_cudart_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcudart_static.a + +//Path to a library. +CUDA_cudla_LIBRARY:FILEPATH=CUDA_cudla_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_cufft_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufft.so + +//Path to a library. +CUDA_cufft_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufft_static.a + +//Path to a library. +CUDA_cufft_static_nocallback_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufft_static_nocallback.a + +//Path to a library. +CUDA_cufftw_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufftw.so + +//Path to a library. +CUDA_cufftw_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufftw_static.a + +//Path to a library. +CUDA_culibos_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libculibos.a + +//Path to a library. +CUDA_cupti_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libcupti.so + +//Path to a library. +CUDA_cupti_static_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libcupti_static.a + +//Path to a library. +CUDA_curand_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcurand.so + +//Path to a library. +CUDA_curand_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcurand_static.a + +//Path to a library. +CUDA_cusolver_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusolver.so + +//Path to a library. +CUDA_cusolver_lapack_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusolver_lapack_static.a + +//Path to a library. +CUDA_cusolver_metis_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusolver_metis_static.a + +//Path to a library. +CUDA_cusolver_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusolver_static.a + +//Path to a library. +CUDA_cusparse_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusparse.so + +//Path to a library. +CUDA_cusparse_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusparse_static.a + +//Path to a library. +CUDA_nppc_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppc.so + +//Path to a library. +CUDA_nppc_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppc_static.a + +//Path to a library. +CUDA_nppial_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppial.so + +//Path to a library. +CUDA_nppial_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppial_static.a + +//Path to a library. +CUDA_nppicc_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppicc.so + +//Path to a library. +CUDA_nppicc_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppicc_static.a + +//Path to a library. +CUDA_nppicom_LIBRARY:FILEPATH=CUDA_nppicom_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_nppicom_static_LIBRARY:FILEPATH=CUDA_nppicom_static_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_nppidei_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppidei.so + +//Path to a library. +CUDA_nppidei_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppidei_static.a + +//Path to a library. +CUDA_nppif_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppif.so + +//Path to a library. +CUDA_nppif_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppif_static.a + +//Path to a library. +CUDA_nppig_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppig.so + +//Path to a library. +CUDA_nppig_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppig_static.a + +//Path to a library. +CUDA_nppim_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppim.so + +//Path to a library. +CUDA_nppim_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppim_static.a + +//Path to a library. +CUDA_nppist_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppist.so + +//Path to a library. +CUDA_nppist_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppist_static.a + +//Path to a library. +CUDA_nppisu_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppisu.so + +//Path to a library. +CUDA_nppisu_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppisu_static.a + +//Path to a library. +CUDA_nppitc_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppitc.so + +//Path to a library. +CUDA_nppitc_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppitc_static.a + +//Path to a library. +CUDA_npps_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnpps.so + +//Path to a library. +CUDA_npps_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnpps_static.a + +//Path to a library. +CUDA_nvJitLink_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvJitLink.so + +//Path to a library. +CUDA_nvJitLink_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvJitLink_static.a + +//Path to a library. +CUDA_nvToolsExt_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvToolsExt.so + +//Path to a library. +CUDA_nvfatbin_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvfatbin.so + +//Path to a library. +CUDA_nvfatbin_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvfatbin_static.a + +//Path to a library. +CUDA_nvgraph_LIBRARY:FILEPATH=CUDA_nvgraph_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_nvgraph_static_LIBRARY:FILEPATH=CUDA_nvgraph_static_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_nvjpeg_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvjpeg.so + +//Path to a library. +CUDA_nvjpeg_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvjpeg_static.a + +//Path to a library. +CUDA_nvml_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/stubs/libnvidia-ml.so + +//Path to a library. +CUDA_nvml_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/stubs/libnvidia-ml.a + +//Path to a library. +CUDA_nvperf_host_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libnvperf_host.so + +//Path to a library. +CUDA_nvperf_host_static_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libnvperf_host_static.a + +//Path to a library. +CUDA_nvperf_target_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libnvperf_target.so + +//Path to a library. +CUDA_nvptxcompiler_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvptxcompiler_static.a + +//Path to a library. +CUDA_nvrtc_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvrtc.so + +//Path to a library. +CUDA_nvrtc_builtins_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvrtc-builtins.so + +//Path to a library. +CUDA_nvrtc_builtins_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvrtc-builtins_static.a + +//Path to a library. +CUDA_nvrtc_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvrtc_static.a + +//Path to a library. +CUDA_pcsamplingutil_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libpcsamplingutil.so + +//Value Computed by CMake +app_BINARY_DIR:STATIC=/home/tobli/abo/pprog/Homework-3 + +//Value Computed by CMake +app_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +app_SOURCE_DIR:STATIC=/home/tobli/abo/pprog/Homework-3 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/tobli/abo/pprog/Homework-3 +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=0 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CUDA_COMPILER +CMAKE_CUDA_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS +CMAKE_CUDA_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_DEBUG +CMAKE_CUDA_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_MINSIZEREL +CMAKE_CUDA_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_RELEASE +CMAKE_CUDA_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_RELWITHDEBINFO +CMAKE_CUDA_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Test CMAKE_HAVE_LIBC_PTHREAD +CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1 +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/tobli/abo/pprog/Homework-3 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//Name of CMakeLists files to read +CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDAToolkit_CUPTI_INCLUDE_DIR +CUDAToolkit_CUPTI_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDAToolkit_rt_LIBRARY +CUDAToolkit_rt_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_CUDART +CUDA_CUDART-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_OpenCL_LIBRARY +CUDA_OpenCL_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuFile_LIBRARY +CUDA_cuFile_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuFile_rdma_LIBRARY +CUDA_cuFile_rdma_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuFile_rdma_static_LIBRARY +CUDA_cuFile_rdma_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuFile_static_LIBRARY +CUDA_cuFile_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cublasLt_LIBRARY +CUDA_cublasLt_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cublasLt_static_LIBRARY +CUDA_cublasLt_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cublas_LIBRARY +CUDA_cublas_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cublas_static_LIBRARY +CUDA_cublas_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuda_driver_LIBRARY +CUDA_cuda_driver_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cudart_LIBRARY +CUDA_cudart_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cudart_static_LIBRARY +CUDA_cudart_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cudla_LIBRARY +CUDA_cudla_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufft_LIBRARY +CUDA_cufft_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufft_static_LIBRARY +CUDA_cufft_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufft_static_nocallback_LIBRARY +CUDA_cufft_static_nocallback_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufftw_LIBRARY +CUDA_cufftw_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufftw_static_LIBRARY +CUDA_cufftw_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_culibos_LIBRARY +CUDA_culibos_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cupti_LIBRARY +CUDA_cupti_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cupti_static_LIBRARY +CUDA_cupti_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_curand_LIBRARY +CUDA_curand_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_curand_static_LIBRARY +CUDA_curand_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusolver_LIBRARY +CUDA_cusolver_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusolver_lapack_static_LIBRARY +CUDA_cusolver_lapack_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusolver_metis_static_LIBRARY +CUDA_cusolver_metis_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusolver_static_LIBRARY +CUDA_cusolver_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusparse_LIBRARY +CUDA_cusparse_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusparse_static_LIBRARY +CUDA_cusparse_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppc_LIBRARY +CUDA_nppc_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppc_static_LIBRARY +CUDA_nppc_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppial_LIBRARY +CUDA_nppial_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppial_static_LIBRARY +CUDA_nppial_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppicc_LIBRARY +CUDA_nppicc_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppicc_static_LIBRARY +CUDA_nppicc_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppicom_LIBRARY +CUDA_nppicom_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppicom_static_LIBRARY +CUDA_nppicom_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppidei_LIBRARY +CUDA_nppidei_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppidei_static_LIBRARY +CUDA_nppidei_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppif_LIBRARY +CUDA_nppif_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppif_static_LIBRARY +CUDA_nppif_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppig_LIBRARY +CUDA_nppig_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppig_static_LIBRARY +CUDA_nppig_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppim_LIBRARY +CUDA_nppim_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppim_static_LIBRARY +CUDA_nppim_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppist_LIBRARY +CUDA_nppist_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppist_static_LIBRARY +CUDA_nppist_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppisu_LIBRARY +CUDA_nppisu_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppisu_static_LIBRARY +CUDA_nppisu_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppitc_LIBRARY +CUDA_nppitc_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppitc_static_LIBRARY +CUDA_nppitc_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_npps_LIBRARY +CUDA_npps_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_npps_static_LIBRARY +CUDA_npps_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvJitLink_LIBRARY +CUDA_nvJitLink_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvJitLink_static_LIBRARY +CUDA_nvJitLink_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvToolsExt_LIBRARY +CUDA_nvToolsExt_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvfatbin_LIBRARY +CUDA_nvfatbin_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvfatbin_static_LIBRARY +CUDA_nvfatbin_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvgraph_LIBRARY +CUDA_nvgraph_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvgraph_static_LIBRARY +CUDA_nvgraph_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvjpeg_LIBRARY +CUDA_nvjpeg_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvjpeg_static_LIBRARY +CUDA_nvjpeg_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvml_LIBRARY +CUDA_nvml_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvml_static_LIBRARY +CUDA_nvml_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvperf_host_LIBRARY +CUDA_nvperf_host_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvperf_host_static_LIBRARY +CUDA_nvperf_host_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvperf_target_LIBRARY +CUDA_nvperf_target_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvptxcompiler_static_LIBRARY +CUDA_nvptxcompiler_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvrtc_LIBRARY +CUDA_nvrtc_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvrtc_builtins_LIBRARY +CUDA_nvrtc_builtins_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvrtc_builtins_static_LIBRARY +CUDA_nvrtc_builtins_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvrtc_static_LIBRARY +CUDA_nvrtc_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_pcsamplingutil_LIBRARY +CUDA_pcsamplingutil_LIBRARY-ADVANCED:INTERNAL=1 +//Details about finding CUDAToolkit +FIND_PACKAGE_MESSAGE_DETAILS_CUDAToolkit:INTERNAL=[/opt/cuda/targets/x86_64-linux/include][/opt/cuda/lib/libcudart.so][/opt/cuda/bin][v12.8.93()] +//Details about finding Threads +FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()] + diff --git a/CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake b/CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake new file mode 100644 index 0000000..b284154 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake @@ -0,0 +1,89 @@ +set(CMAKE_CUDA_COMPILER "/opt/cuda/bin/nvcc") +set(CMAKE_CUDA_HOST_COMPILER "") +set(CMAKE_CUDA_HOST_LINK_LAUNCHER "/usr/bin/g++-14") +set(CMAKE_CUDA_COMPILER_ID "NVIDIA") +set(CMAKE_CUDA_COMPILER_VERSION "12.8.93") +set(CMAKE_CUDA_HOST_COMPILER_ID "GNU") +set(CMAKE_CUDA_HOST_COMPILER_VERSION "14.2.1") +set(CMAKE_CUDA_DEVICE_LINKER "/opt/cuda/bin/nvlink") +set(CMAKE_CUDA_FATBINARY "/opt/cuda/bin/fatbinary") +set(CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CUDA_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CUDA_STANDARD_LATEST "20") +set(CMAKE_CUDA_COMPILE_FEATURES "cuda_std_03;cuda_std_11;cuda_std_14;cuda_std_17;cuda_std_20") +set(CMAKE_CUDA03_COMPILE_FEATURES "cuda_std_03") +set(CMAKE_CUDA11_COMPILE_FEATURES "cuda_std_11") +set(CMAKE_CUDA14_COMPILE_FEATURES "cuda_std_14") +set(CMAKE_CUDA17_COMPILE_FEATURES "cuda_std_17") +set(CMAKE_CUDA20_COMPILE_FEATURES "cuda_std_20") +set(CMAKE_CUDA23_COMPILE_FEATURES "") +set(CMAKE_CUDA26_COMPILE_FEATURES "") + +set(CMAKE_CUDA_PLATFORM_ID "Linux") +set(CMAKE_CUDA_SIMULATE_ID "GNU") +set(CMAKE_CUDA_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CUDA_SIMULATE_VERSION "14.2") + + + +set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX") +set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX") + +set(CMAKE_CUDA_COMPILER_LOADED 1) +set(CMAKE_CUDA_COMPILER_ID_RUN 1) +set(CMAKE_CUDA_SOURCE_FILE_EXTENSIONS cu) +set(CMAKE_CUDA_LINKER_PREFERENCE 15) +set(CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CUDA_LINKER_DEPFILE_SUPPORTED TRUE) +set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) +set(CMAKE_CUDA_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) + +set(CMAKE_CUDA_SIZEOF_DATA_PTR "8") +set(CMAKE_CUDA_COMPILER_ABI "ELF") +set(CMAKE_CUDA_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CUDA_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CUDA_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CUDA_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CUDA_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CUDA_COMPILER_ABI}") +endif() + +if(CMAKE_CUDA_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "/opt/cuda") +set(CMAKE_CUDA_COMPILER_TOOLKIT_LIBRARY_ROOT "/opt/cuda") +set(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION "12.8.93") +set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "/opt/cuda") + +set(CMAKE_CUDA_ARCHITECTURES_ALL "50-real;52-real;53-real;60-real;61-real;62-real;70-real;72-real;75-real;80-real;86-real;87-real;89-real;90-real;100-real;101-real;120") +set(CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR "50-real;60-real;70-real;80-real;90-real;100-real;120") +set(CMAKE_CUDA_ARCHITECTURES_NATIVE "75-real") + +set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "/opt/cuda/targets/x86_64-linux/include") + +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib") +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + +set(CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed;/usr/include") +set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1;/usr/lib;/lib") +set(CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + +set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC") + +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CUDA_COMPILER_LINKER "/usr/bin/ld") +set(CMAKE_CUDA_COMPILER_LINKER_ID "GNU") +set(CMAKE_CUDA_COMPILER_LINKER_VERSION 2.44.0) +set(CMAKE_CUDA_COMPILER_LINKER_FRONTEND_VARIANT GNU) +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_MT "") diff --git a/CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake b/CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..a4dcfda --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake @@ -0,0 +1,100 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "15.1.1") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_STANDARD_LATEST "") +set(CMAKE_CXX_COMPILE_FEATURES "") +set(CMAKE_CXX98_COMPILE_FEATURES "") +set(CMAKE_CXX11_COMPILE_FEATURES "") +set(CMAKE_CXX14_COMPILE_FEATURES "") +set(CMAKE_CXX17_COMPILE_FEATURES "") +set(CMAKE_CXX20_COMPILE_FEATURES "") +set(CMAKE_CXX23_COMPILE_FEATURES "") +set(CMAKE_CXX26_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_COMPILER_APPLE_SYSROOT "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CXX_COMPILER_LINKER "") +set(CMAKE_CXX_COMPILER_LINKER_ID "") +set(CMAKE_CXX_COMPILER_LINKER_VERSION ) +set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT ) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS ) +set(CMAKE_CXX_ABI_COMPILED ) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang IN ITEMS C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) +set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED ) +set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "") +set(CMAKE_CXX_COMPILER_ABI "") +set(CMAKE_CXX_BYTE_ORDER "") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "") + +set(CMAKE_CXX_COMPILER_IMPORT_STD "") + diff --git a/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CUDA.bin b/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CUDA.bin new file mode 100755 index 0000000..ca93fd3 Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CUDA.bin differ diff --git a/CMakeFiles/4.0.2-dirty/CMakeSystem.cmake b/CMakeFiles/4.0.2-dirty/CMakeSystem.cmake new file mode 100644 index 0000000..5145244 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.14.7-arch2-1") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.14.7-arch2-1") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-6.14.7-arch2-1") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "6.14.7-arch2-1") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu new file mode 100644 index 0000000..4aaeb34 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu @@ -0,0 +1,935 @@ +#ifndef __CUDACC__ +# error "A C or C++ compiler has been selected for CUDA" +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__NVCC__) +# define COMPILER_ID "NVIDIA" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# elif defined(__clang__) +# define SIMULATE_ID "Clang" +# elif defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif +# if defined(__CUDACC_VER_MAJOR__) +# define COMPILER_VERSION_MAJOR DEC(__CUDACC_VER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__CUDACC_VER_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__CUDACC_VER_BUILD__) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# elif defined(__clang__) +# define SIMULATE_VERSION_MAJOR DEC(__clang_major__) +# define SIMULATE_VERSION_MINOR DEC(__clang_minor__) +# elif defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Detect host compiler used by NVCC. */ +#ifdef __NVCC__ + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define HOST_COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define HOST_SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define HOST_SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define HOST_COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define HOST_COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define HOST_COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define HOST_COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define HOST_COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define HOST_COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define HOST_COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define HOST_SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define HOST_SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define HOST_SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define HOST_COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define HOST_SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define HOST_SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define HOST_COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define HOST_COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define HOST_COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define HOST_COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define HOST_SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define HOST_SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define HOST_SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define HOST_COMPILER_ID "PathScale" +# define HOST_COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define HOST_COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define HOST_COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define HOST_COMPILER_ID "Embarcadero" +# define HOST_COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define HOST_COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define HOST_COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define HOST_COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define HOST_COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define HOST_COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define HOST_COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define HOST_COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define HOST_COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define HOST_COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define HOST_COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define HOST_COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define HOST_COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define HOST_COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define HOST_COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define HOST_COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define HOST_COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define HOST_COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define HOST_COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define HOST_COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define HOST_COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define HOST_COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define HOST_COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define HOST_COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define HOST_COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define HOST_COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define HOST_COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define HOST_COMPILER_ID "IBMClang" +# define HOST_COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define HOST_COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define HOST_COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define HOST_COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) +# define HOST_COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__ibmxl__) && defined(__clang__) +# define HOST_COMPILER_ID "XLClang" +# define HOST_COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define HOST_COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define HOST_COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define HOST_COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define HOST_COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define HOST_COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define HOST_COMPILER_ID "NVHPC" +# define HOST_COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define HOST_COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define HOST_COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define HOST_COMPILER_ID "PGI" +# define HOST_COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define HOST_COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define HOST_COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define HOST_COMPILER_ID "CrayClang" +# define HOST_COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define HOST_COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define HOST_COMPILER_ID "Cray" +# define HOST_COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define HOST_COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define HOST_COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define HOST_COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define HOST_COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define HOST_COMPILER_ID "FujitsuClang" +# define HOST_COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define HOST_COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define HOST_COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define HOST_COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define HOST_COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define HOST_COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define HOST_COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define HOST_COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define HOST_COMPILER_ID "Tasking" + # define HOST_COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define HOST_COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define HOST_COMPILER_ID "OrangeC" +# define HOST_COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define HOST_COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define HOST_COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define HOST_COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define HOST_COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define HOST_COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define HOST_COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define HOST_COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define HOST_COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define HOST_COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define HOST_COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define HOST_COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define HOST_SIMULATE_ID "MSVC" +# endif +# define HOST_COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define HOST_SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define HOST_COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define HOST_COMPILER_ID "ARMClang" + # define HOST_COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define HOST_COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define HOST_COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define HOST_COMPILER_ID "TIClang" + # define HOST_COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define HOST_COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define HOST_COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define HOST_COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define HOST_SIMULATE_ID "MSVC" +# endif +# define HOST_COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define HOST_SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define HOST_COMPILER_ID "LCC" +# define HOST_COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define HOST_COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define HOST_COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define HOST_SIMULATE_ID "GNU" +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define HOST_SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define HOST_SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define HOST_COMPILER_ID "GNU" +# if defined(__GNUC__) +# define HOST_COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define HOST_COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define HOST_COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define HOST_COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define HOST_COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define HOST_COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define HOST_COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define HOST_COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define HOST_COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define HOST_COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define HOST_COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define HOST_COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define HOST_COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define HOST_COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define HOST_COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define HOST_COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define HOST_COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define HOST_COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define HOST_COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define HOST_COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +#endif +#endif /* __NVCC__ */ + + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) || defined(__CPARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#ifdef HOST_COMPILER_ID +char const* info_host_compiler = "INFO" ":" "host_compiler[" HOST_COMPILER_ID "]"; +#endif +#ifdef HOST_COMPILER_VERSION +char const* info_host_compiler_version = "INFO" ":" "host_compiler_version[" HOST_COMPILER_VERSION "]"; +#elif defined(HOST_COMPILER_VERSION_MAJOR) +char const info_host_compiler_version[] = { + 'I', 'N', 'F', 'O', ':','h','o','s','t','_', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + HOST_COMPILER_VERSION_MAJOR, +# ifdef HOST_COMPILER_VERSION_MINOR + '.', HOST_COMPILER_VERSION_MINOR, +# ifdef HOST_COMPILER_VERSION_PATCH + '.', HOST_COMPILER_VERSION_PATCH, +# ifdef HOST_COMPILER_VERSION_TWEAK + '.', HOST_COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +#define CXX_STD_11 201103L +#define CXX_STD_14 201402L +#define CXX_STD_17 201703L +#define CXX_STD_20 202002L +#define CXX_STD_23 202302L + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +# if _MSVC_LANG > __cplusplus +# define CXX_STD _MSVC_LANG +# else +# define CXX_STD __cplusplus +# endif +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > CXX_STD_23 + "26" +#elif CXX_STD > CXX_STD_20 + "23" +#elif CXX_STD > CXX_STD_17 + "20" +#elif CXX_STD > CXX_STD_14 + "17" +#elif CXX_STD > CXX_STD_11 + "14" +#elif CXX_STD >= CXX_STD_11 + "11" +#else + "03" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#ifdef HOST_COMPILER_ID + require += info_host_compiler[argc]; +#endif +#ifdef HOST_COMPILER_VERSION_MAJOR + require += info_host_compiler_version[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/a.out b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/a.out new file mode 100755 index 0000000..160c5d9 Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/a.out differ diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii new file mode 100644 index 0000000..c232dbd --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii @@ -0,0 +1,36265 @@ +# 0 "CMakeCUDACompilerId.cu" +# 0 "" +# 0 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 0 "" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic push + + +#pragma GCC diagnostic ignored "-Wunused-function" +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" 1 +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" +# 1 "/usr/include/features.h" 1 3 4 +# 415 "/usr/include/features.h" 3 4 +# 1 "/usr/include/features-time64.h" 1 3 4 +# 20 "/usr/include/features-time64.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 21 "/usr/include/features-time64.h" 2 3 4 +# 1 "/usr/include/bits/timesize.h" 1 3 4 +# 19 "/usr/include/bits/timesize.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/bits/timesize.h" 2 3 4 +# 22 "/usr/include/features-time64.h" 2 3 4 +# 416 "/usr/include/features.h" 2 3 4 +# 524 "/usr/include/features.h" 3 4 +# 1 "/usr/include/sys/cdefs.h" 1 3 4 +# 730 "/usr/include/sys/cdefs.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 731 "/usr/include/sys/cdefs.h" 2 3 4 +# 1 "/usr/include/bits/long-double.h" 1 3 4 +# 732 "/usr/include/sys/cdefs.h" 2 3 4 +# 525 "/usr/include/features.h" 2 3 4 +# 548 "/usr/include/features.h" 3 4 +# 1 "/usr/include/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/gnu/stubs.h" 3 4 +# 1 "/usr/include/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/gnu/stubs.h" 2 3 4 +# 549 "/usr/include/features.h" 2 3 4 +# 217 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" 2 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 56 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 1 +# 59 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 64 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" +# 1 "/usr/include/ctype.h" 1 3 4 +# 26 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/types.h" 1 3 4 +# 27 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/bits/types.h" 2 3 4 +# 1 "/usr/include/bits/timesize.h" 1 3 4 +# 19 "/usr/include/bits/timesize.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/bits/timesize.h" 2 3 4 +# 29 "/usr/include/bits/types.h" 2 3 4 + + + +# 31 "/usr/include/bits/types.h" 3 4 +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; + + + + + + +typedef __int8_t __int_least8_t; +typedef __uint8_t __uint_least8_t; +typedef __int16_t __int_least16_t; +typedef __uint16_t __uint_least16_t; +typedef __int32_t __int_least32_t; +typedef __uint32_t __uint_least32_t; +typedef __int64_t __int_least64_t; +typedef __uint64_t __uint_least64_t; + + + +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; + + + + + + + +typedef long int __intmax_t; +typedef unsigned long int __uintmax_t; +# 141 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/typesizes.h" 1 3 4 +# 142 "/usr/include/bits/types.h" 2 3 4 +# 1 "/usr/include/bits/time64.h" 1 3 4 +# 143 "/usr/include/bits/types.h" 2 3 4 + + +typedef unsigned long int __dev_t; +typedef unsigned int __uid_t; +typedef unsigned int __gid_t; +typedef unsigned long int __ino_t; +typedef unsigned long int __ino64_t; +typedef unsigned int __mode_t; +typedef unsigned long int __nlink_t; +typedef long int __off_t; +typedef long int __off64_t; +typedef int __pid_t; +typedef struct { int __val[2]; } __fsid_t; +typedef long int __clock_t; +typedef unsigned long int __rlim_t; +typedef unsigned long int __rlim64_t; +typedef unsigned int __id_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef long int __suseconds_t; +typedef long int __suseconds64_t; + +typedef int __daddr_t; +typedef int __key_t; + + +typedef int __clockid_t; + + +typedef void * __timer_t; + + +typedef long int __blksize_t; + + + + +typedef long int __blkcnt_t; +typedef long int __blkcnt64_t; + + +typedef unsigned long int __fsblkcnt_t; +typedef unsigned long int __fsblkcnt64_t; + + +typedef unsigned long int __fsfilcnt_t; +typedef unsigned long int __fsfilcnt64_t; + + +typedef long int __fsword_t; + +typedef long int __ssize_t; + + +typedef long int __syscall_slong_t; + +typedef unsigned long int __syscall_ulong_t; + + + +typedef __off64_t __loff_t; +typedef char *__caddr_t; + + +typedef long int __intptr_t; + + +typedef unsigned int __socklen_t; + + + + +typedef int __sig_atomic_t; +# 27 "/usr/include/ctype.h" 2 3 4 + +extern "C" { +# 39 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/endian.h" 1 3 4 +# 35 "/usr/include/bits/endian.h" 3 4 +# 1 "/usr/include/bits/endianness.h" 1 3 4 +# 36 "/usr/include/bits/endian.h" 2 3 4 +# 40 "/usr/include/ctype.h" 2 3 4 + + + + + + +enum +{ + _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), + _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), + _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), + _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), + _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), + _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), + _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), + _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), + _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), + _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), + _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), + _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) +}; +# 79 "/usr/include/ctype.h" 3 4 +extern const unsigned short int **__ctype_b_loc (void) + noexcept (true) __attribute__ ((__const__)); +extern const __int32_t **__ctype_tolower_loc (void) + noexcept (true) __attribute__ ((__const__)); +extern const __int32_t **__ctype_toupper_loc (void) + noexcept (true) __attribute__ ((__const__)); +# 108 "/usr/include/ctype.h" 3 4 +extern int isalnum (int) noexcept (true); +extern int isalpha (int) noexcept (true); +extern int iscntrl (int) noexcept (true); +extern int isdigit (int) noexcept (true); +extern int islower (int) noexcept (true); +extern int isgraph (int) noexcept (true); +extern int isprint (int) noexcept (true); +extern int ispunct (int) noexcept (true); +extern int isspace (int) noexcept (true); +extern int isupper (int) noexcept (true); +extern int isxdigit (int) noexcept (true); + + + +extern int tolower (int __c) noexcept (true); + + +extern int toupper (int __c) noexcept (true); + + + + +extern int isblank (int) noexcept (true); + + + + +extern int isctype (int __c, int __mask) noexcept (true); + + + + + + +extern int isascii (int __c) noexcept (true); + + + +extern int toascii (int __c) noexcept (true); + + + +extern int _toupper (int) noexcept (true); +extern int _tolower (int) noexcept (true); +# 237 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/types/locale_t.h" 1 3 4 +# 22 "/usr/include/bits/types/locale_t.h" 3 4 +# 1 "/usr/include/bits/types/__locale_t.h" 1 3 4 +# 27 "/usr/include/bits/types/__locale_t.h" 3 4 +struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +}; + +typedef struct __locale_struct *__locale_t; +# 23 "/usr/include/bits/types/locale_t.h" 2 3 4 + +typedef __locale_t locale_t; +# 238 "/usr/include/ctype.h" 2 3 4 +# 251 "/usr/include/ctype.h" 3 4 +extern int isalnum_l (int, locale_t) noexcept (true); +extern int isalpha_l (int, locale_t) noexcept (true); +extern int iscntrl_l (int, locale_t) noexcept (true); +extern int isdigit_l (int, locale_t) noexcept (true); +extern int islower_l (int, locale_t) noexcept (true); +extern int isgraph_l (int, locale_t) noexcept (true); +extern int isprint_l (int, locale_t) noexcept (true); +extern int ispunct_l (int, locale_t) noexcept (true); +extern int isspace_l (int, locale_t) noexcept (true); +extern int isupper_l (int, locale_t) noexcept (true); +extern int isxdigit_l (int, locale_t) noexcept (true); + +extern int isblank_l (int, locale_t) noexcept (true); + + + +extern int __tolower_l (int __c, locale_t __l) noexcept (true); +extern int tolower_l (int __c, locale_t __l) noexcept (true); + + +extern int __toupper_l (int __c, locale_t __l) noexcept (true); +extern int toupper_l (int __c, locale_t __l) noexcept (true); +# 327 "/usr/include/ctype.h" 3 4 +} +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 2 +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 2 +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" + +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +enum __attribute__((device_builtin)) cudaRoundMode +{ + cudaRoundNearest, + cudaRoundZero, + cudaRoundPosInf, + cudaRoundMinInf +}; +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 1 +# 59 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" 1 +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 66 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" 2 +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) char1 +{ + signed char x; +}; + +struct __attribute__((device_builtin)) uchar1 +{ + unsigned char x; +}; + + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) char2 +{ + signed char x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) uchar2 +{ + unsigned char x, y; +}; + +struct __attribute__((device_builtin)) char3 +{ + signed char x, y, z; +}; + +struct __attribute__((device_builtin)) uchar3 +{ + unsigned char x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) char4 +{ + signed char x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) uchar4 +{ + unsigned char x, y, z, w; +}; + +struct __attribute__((device_builtin)) short1 +{ + short x; +}; + +struct __attribute__((device_builtin)) ushort1 +{ + unsigned short x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) short2 +{ + short x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) ushort2 +{ + unsigned short x, y; +}; + +struct __attribute__((device_builtin)) short3 +{ + short x, y, z; +}; + +struct __attribute__((device_builtin)) ushort3 +{ + unsigned short x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) short4 { short x; short y; short z; short w; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; + +struct __attribute__((device_builtin)) int1 +{ + int x; +}; + +struct __attribute__((device_builtin)) uint1 +{ + unsigned int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) int2 { int x; int y; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) uint2 { unsigned int x; unsigned int y; }; + +struct __attribute__((device_builtin)) int3 +{ + int x, y, z; +}; + +struct __attribute__((device_builtin)) uint3 +{ + unsigned int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) int4 +{ + int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) uint4 +{ + unsigned int x, y, z, w; +}; + +struct __attribute__((device_builtin)) long1 +{ + long int x; +}; + +struct __attribute__((device_builtin)) ulong1 +{ + unsigned long x; +}; + + + + + + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(long int)))) long2 +{ + long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(unsigned long int)))) ulong2 +{ + unsigned long int x, y; +}; + + + +struct __attribute__((device_builtin)) long3 +{ + long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulong3 +{ + unsigned long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) long4 +{ + long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulong4 +{ + unsigned long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) float1 +{ + float x; +}; +# 280 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) __attribute__((aligned(8))) float2 { float x; float y; }; + + + + +struct __attribute__((device_builtin)) float3 +{ + float x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) float4 +{ + float x, y, z, w; +}; + +struct __attribute__((device_builtin)) longlong1 +{ + long long int x; +}; + +struct __attribute__((device_builtin)) ulonglong1 +{ + unsigned long long int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong2 +{ + long long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong2 +{ + unsigned long long int x, y; +}; + +struct __attribute__((device_builtin)) longlong3 +{ + long long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulonglong3 +{ + unsigned long long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong4 +{ + long long int x, y, z ,w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong4 +{ + unsigned long long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) double1 +{ + double x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double2 +{ + double x, y; +}; + +struct __attribute__((device_builtin)) double3 +{ + double x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double4 +{ + double x, y, z, w; +}; +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +typedef __attribute__((device_builtin)) struct char1 char1; +typedef __attribute__((device_builtin)) struct uchar1 uchar1; +typedef __attribute__((device_builtin)) struct char2 char2; +typedef __attribute__((device_builtin)) struct uchar2 uchar2; +typedef __attribute__((device_builtin)) struct char3 char3; +typedef __attribute__((device_builtin)) struct uchar3 uchar3; +typedef __attribute__((device_builtin)) struct char4 char4; +typedef __attribute__((device_builtin)) struct uchar4 uchar4; +typedef __attribute__((device_builtin)) struct short1 short1; +typedef __attribute__((device_builtin)) struct ushort1 ushort1; +typedef __attribute__((device_builtin)) struct short2 short2; +typedef __attribute__((device_builtin)) struct ushort2 ushort2; +typedef __attribute__((device_builtin)) struct short3 short3; +typedef __attribute__((device_builtin)) struct ushort3 ushort3; +typedef __attribute__((device_builtin)) struct short4 short4; +typedef __attribute__((device_builtin)) struct ushort4 ushort4; +typedef __attribute__((device_builtin)) struct int1 int1; +typedef __attribute__((device_builtin)) struct uint1 uint1; +typedef __attribute__((device_builtin)) struct int2 int2; +typedef __attribute__((device_builtin)) struct uint2 uint2; +typedef __attribute__((device_builtin)) struct int3 int3; +typedef __attribute__((device_builtin)) struct uint3 uint3; +typedef __attribute__((device_builtin)) struct int4 int4; +typedef __attribute__((device_builtin)) struct uint4 uint4; +typedef __attribute__((device_builtin)) struct long1 long1; +typedef __attribute__((device_builtin)) struct ulong1 ulong1; +typedef __attribute__((device_builtin)) struct long2 long2; +typedef __attribute__((device_builtin)) struct ulong2 ulong2; +typedef __attribute__((device_builtin)) struct long3 long3; +typedef __attribute__((device_builtin)) struct ulong3 ulong3; +typedef __attribute__((device_builtin)) struct long4 long4; +typedef __attribute__((device_builtin)) struct ulong4 ulong4; +typedef __attribute__((device_builtin)) struct float1 float1; +typedef __attribute__((device_builtin)) struct float2 float2; +typedef __attribute__((device_builtin)) struct float3 float3; +typedef __attribute__((device_builtin)) struct float4 float4; +typedef __attribute__((device_builtin)) struct longlong1 longlong1; +typedef __attribute__((device_builtin)) struct ulonglong1 ulonglong1; +typedef __attribute__((device_builtin)) struct longlong2 longlong2; +typedef __attribute__((device_builtin)) struct ulonglong2 ulonglong2; +typedef __attribute__((device_builtin)) struct longlong3 longlong3; +typedef __attribute__((device_builtin)) struct ulonglong3 ulonglong3; +typedef __attribute__((device_builtin)) struct longlong4 longlong4; +typedef __attribute__((device_builtin)) struct ulonglong4 ulonglong4; +typedef __attribute__((device_builtin)) struct double1 double1; +typedef __attribute__((device_builtin)) struct double2 double2; +typedef __attribute__((device_builtin)) struct double3 double3; +typedef __attribute__((device_builtin)) struct double4 double4; +# 426 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) dim3 +{ + unsigned int x, y, z; + + + __attribute__((host)) __attribute__((device)) constexpr dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {} + __attribute__((host)) __attribute__((device)) constexpr dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {} + __attribute__((host)) __attribute__((device)) constexpr operator uint3(void) const { return uint3{x, y, z}; } + + + + + + +}; + +typedef __attribute__((device_builtin)) struct dim3 dim3; +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 1 3 4 +# 210 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 26 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/limits.h" 2 3 4 +# 195 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/posix1_lim.h" 1 3 4 +# 27 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 161 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/bits/local_lim.h" 2 3 4 +# 81 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/bits/pthread_stack_min-dynamic.h" 1 3 4 +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 + +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 +extern "C" { +extern long int __sysconf (int __name) noexcept (true); +} +# 82 "/usr/include/bits/local_lim.h" 2 3 4 +# 162 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 196 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/posix2_lim.h" 1 3 4 +# 200 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/xopen_lim.h" 1 3 4 +# 64 "/usr/include/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/bits/uio_lim.h" 1 3 4 +# 65 "/usr/include/bits/xopen_lim.h" 2 3 4 +# 204 "/usr/include/limits.h" 2 3 4 +# 211 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 2 3 4 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 425 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef struct { + long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); + long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); +# 436 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum __attribute__((device_builtin)) cudaError +{ + + + + + + cudaSuccess = 0, + + + + + + cudaErrorInvalidValue = 1, + + + + + + cudaErrorMemoryAllocation = 2, + + + + + + cudaErrorInitializationError = 3, + + + + + + + cudaErrorCudartUnloading = 4, + + + + + + + cudaErrorProfilerDisabled = 5, + + + + + + + + cudaErrorProfilerNotInitialized = 6, + + + + + + + cudaErrorProfilerAlreadyStarted = 7, + + + + + + + cudaErrorProfilerAlreadyStopped = 8, + + + + + + + + cudaErrorInvalidConfiguration = 9, + + + + + + cudaErrorInvalidPitchValue = 12, + + + + + + cudaErrorInvalidSymbol = 13, + + + + + + + + cudaErrorInvalidHostPointer = 16, + + + + + + + + cudaErrorInvalidDevicePointer = 17, + + + + + cudaErrorInvalidTexture = 18, + + + + + + cudaErrorInvalidTextureBinding = 19, + + + + + + + cudaErrorInvalidChannelDescriptor = 20, + + + + + + cudaErrorInvalidMemcpyDirection = 21, +# 336 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorAddressOfConstant = 22, +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorTextureFetchFailed = 23, +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorTextureNotBound = 24, +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSynchronizationError = 25, + + + + + cudaErrorInvalidFilterSetting = 26, + + + + + + cudaErrorInvalidNormSetting = 27, + + + + + + + + cudaErrorMixedDeviceExecution = 28, + + + + + + + + cudaErrorNotYetImplemented = 31, +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorMemoryValueTooLarge = 32, + + + + + + cudaErrorStubLibrary = 34, + + + + + + + cudaErrorInsufficientDriver = 35, + + + + + + + cudaErrorCallRequiresNewerDriver = 36, + + + + + + cudaErrorInvalidSurface = 37, + + + + + + cudaErrorDuplicateVariableName = 43, + + + + + + cudaErrorDuplicateTextureName = 44, + + + + + + cudaErrorDuplicateSurfaceName = 45, +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorDevicesUnavailable = 46, +# 466 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorIncompatibleDriverContext = 49, + + + + + + cudaErrorMissingConfiguration = 52, +# 481 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorPriorLaunchFailure = 53, + + + + + + cudaErrorLaunchMaxDepthExceeded = 65, + + + + + + + + cudaErrorLaunchFileScopedTex = 66, + + + + + + + + cudaErrorLaunchFileScopedSurf = 67, +# 519 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSyncDepthExceeded = 68, +# 531 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchPendingCountExceeded = 69, + + + + + + cudaErrorInvalidDeviceFunction = 98, + + + + + + cudaErrorNoDevice = 100, + + + + + + + cudaErrorInvalidDevice = 101, + + + + + cudaErrorDeviceNotLicensed = 102, +# 564 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSoftwareValidityNotEstablished = 103, + + + + + cudaErrorStartupFailure = 127, + + + + + cudaErrorInvalidKernelImage = 200, +# 584 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorDeviceUninitialized = 201, + + + + + cudaErrorMapBufferObjectFailed = 205, + + + + + cudaErrorUnmapBufferObjectFailed = 206, + + + + + + cudaErrorArrayIsMapped = 207, + + + + + cudaErrorAlreadyMapped = 208, + + + + + + + + cudaErrorNoKernelImageForDevice = 209, + + + + + cudaErrorAlreadyAcquired = 210, + + + + + cudaErrorNotMapped = 211, + + + + + + cudaErrorNotMappedAsArray = 212, + + + + + + cudaErrorNotMappedAsPointer = 213, + + + + + + cudaErrorECCUncorrectable = 214, + + + + + + cudaErrorUnsupportedLimit = 215, + + + + + + cudaErrorDeviceAlreadyInUse = 216, + + + + + + cudaErrorPeerAccessUnsupported = 217, + + + + + + cudaErrorInvalidPtx = 218, + + + + + cudaErrorInvalidGraphicsContext = 219, + + + + + + cudaErrorNvlinkUncorrectable = 220, + + + + + + + cudaErrorJitCompilerNotFound = 221, + + + + + + + cudaErrorUnsupportedPtxVersion = 222, + + + + + + + cudaErrorJitCompilationDisabled = 223, + + + + + cudaErrorUnsupportedExecAffinity = 224, + + + + + + cudaErrorUnsupportedDevSideSync = 225, +# 719 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorContained = 226, + + + + + cudaErrorInvalidSource = 300, + + + + + cudaErrorFileNotFound = 301, + + + + + cudaErrorSharedObjectSymbolNotFound = 302, + + + + + cudaErrorSharedObjectInitFailed = 303, + + + + + cudaErrorOperatingSystem = 304, + + + + + + + cudaErrorInvalidResourceHandle = 400, + + + + + + cudaErrorIllegalState = 401, + + + + + + + + cudaErrorLossyQuery = 402, + + + + + + + cudaErrorSymbolNotFound = 500, + + + + + + + + cudaErrorNotReady = 600, + + + + + + + + cudaErrorIllegalAddress = 700, +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchOutOfResources = 701, +# 808 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchTimeout = 702, + + + + + + cudaErrorLaunchIncompatibleTexturing = 703, + + + + + + + cudaErrorPeerAccessAlreadyEnabled = 704, + + + + + + + cudaErrorPeerAccessNotEnabled = 705, +# 841 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSetOnActiveProcess = 708, + + + + + + + cudaErrorContextIsDestroyed = 709, + + + + + + + cudaErrorAssert = 710, + + + + + + + cudaErrorTooManyPeers = 711, + + + + + + cudaErrorHostMemoryAlreadyRegistered = 712, + + + + + + cudaErrorHostMemoryNotRegistered = 713, +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorHardwareStackError = 714, + + + + + + + + cudaErrorIllegalInstruction = 715, +# 900 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorMisalignedAddress = 716, +# 911 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorInvalidAddressSpace = 717, + + + + + + + + cudaErrorInvalidPc = 718, +# 930 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchFailure = 719, +# 939 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorCooperativeLaunchTooLarge = 720, + + + + + + + + cudaErrorTensorMemoryLeak = 721, + + + + + cudaErrorNotPermitted = 800, + + + + + + cudaErrorNotSupported = 801, +# 967 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSystemNotReady = 802, + + + + + + + cudaErrorSystemDriverMismatch = 803, +# 983 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorCompatNotSupportedOnDevice = 804, + + + + + cudaErrorMpsConnectionFailed = 805, + + + + + cudaErrorMpsRpcFailure = 806, + + + + + + cudaErrorMpsServerNotReady = 807, + + + + + cudaErrorMpsMaxClientsReached = 808, + + + + + cudaErrorMpsMaxConnectionsReached = 809, + + + + + cudaErrorMpsClientTerminated = 810, + + + + + cudaErrorCdpNotSupported = 811, + + + + + cudaErrorCdpVersionMismatch = 812, + + + + + cudaErrorStreamCaptureUnsupported = 900, + + + + + + cudaErrorStreamCaptureInvalidated = 901, + + + + + + cudaErrorStreamCaptureMerge = 902, + + + + + cudaErrorStreamCaptureUnmatched = 903, + + + + + + cudaErrorStreamCaptureUnjoined = 904, + + + + + + + cudaErrorStreamCaptureIsolation = 905, + + + + + + cudaErrorStreamCaptureImplicit = 906, + + + + + + cudaErrorCapturedEvent = 907, + + + + + + + cudaErrorStreamCaptureWrongThread = 908, + + + + + cudaErrorTimeout = 909, + + + + + + cudaErrorGraphExecUpdateFailure = 910, +# 1099 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorExternalDevice = 911, + + + + + + cudaErrorInvalidClusterSize = 912, + + + + + + cudaErrorFunctionNotLoaded = 913, + + + + + + cudaErrorInvalidResourceType = 914, + + + + + + cudaErrorInvalidResourceConfiguration = 915, + + + + + cudaErrorUnknown = 999 + + + + + + + + , cudaErrorApiFailureBase = 10000 +}; + + + + +enum __attribute__((device_builtin)) cudaChannelFormatKind +{ + cudaChannelFormatKindSigned = 0, + cudaChannelFormatKindUnsigned = 1, + cudaChannelFormatKindFloat = 2, + cudaChannelFormatKindNone = 3, + cudaChannelFormatKindNV12 = 4, + cudaChannelFormatKindUnsignedNormalized8X1 = 5, + cudaChannelFormatKindUnsignedNormalized8X2 = 6, + cudaChannelFormatKindUnsignedNormalized8X4 = 7, + cudaChannelFormatKindUnsignedNormalized16X1 = 8, + cudaChannelFormatKindUnsignedNormalized16X2 = 9, + cudaChannelFormatKindUnsignedNormalized16X4 = 10, + cudaChannelFormatKindSignedNormalized8X1 = 11, + cudaChannelFormatKindSignedNormalized8X2 = 12, + cudaChannelFormatKindSignedNormalized8X4 = 13, + cudaChannelFormatKindSignedNormalized16X1 = 14, + cudaChannelFormatKindSignedNormalized16X2 = 15, + cudaChannelFormatKindSignedNormalized16X4 = 16, + cudaChannelFormatKindUnsignedBlockCompressed1 = 17, + cudaChannelFormatKindUnsignedBlockCompressed1SRGB = 18, + cudaChannelFormatKindUnsignedBlockCompressed2 = 19, + cudaChannelFormatKindUnsignedBlockCompressed2SRGB = 20, + cudaChannelFormatKindUnsignedBlockCompressed3 = 21, + cudaChannelFormatKindUnsignedBlockCompressed3SRGB = 22, + cudaChannelFormatKindUnsignedBlockCompressed4 = 23, + cudaChannelFormatKindSignedBlockCompressed4 = 24, + cudaChannelFormatKindUnsignedBlockCompressed5 = 25, + cudaChannelFormatKindSignedBlockCompressed5 = 26, + cudaChannelFormatKindUnsignedBlockCompressed6H = 27, + cudaChannelFormatKindSignedBlockCompressed6H = 28, + cudaChannelFormatKindUnsignedBlockCompressed7 = 29, + cudaChannelFormatKindUnsignedBlockCompressed7SRGB = 30, + cudaChannelFormatKindUnsignedNormalized1010102 = 31 + +}; + + + + +struct __attribute__((device_builtin)) cudaChannelFormatDesc +{ + int x; + int y; + int z; + int w; + enum cudaChannelFormatKind f; +}; + + + + +typedef struct cudaArray *cudaArray_t; + + + + +typedef const struct cudaArray *cudaArray_const_t; + +struct cudaArray; + + + + +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; + + + + +typedef const struct cudaMipmappedArray *cudaMipmappedArray_const_t; + +struct cudaMipmappedArray; +# 1223 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaArraySparseProperties { + struct { + unsigned int width; + unsigned int height; + unsigned int depth; + } tileExtent; + unsigned int miptailFirstLevel; + unsigned long long miptailSize; + unsigned int flags; + unsigned int reserved[4]; +}; + + + + +struct __attribute__((device_builtin)) cudaArrayMemoryRequirements { + size_t size; + size_t alignment; + unsigned int reserved[4]; +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryType +{ + cudaMemoryTypeUnregistered = 0, + cudaMemoryTypeHost = 1, + cudaMemoryTypeDevice = 2, + cudaMemoryTypeManaged = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyKind +{ + cudaMemcpyHostToHost = 0, + cudaMemcpyHostToDevice = 1, + cudaMemcpyDeviceToHost = 2, + cudaMemcpyDeviceToDevice = 3, + cudaMemcpyDefault = 4 +}; + + + + + + +struct __attribute__((device_builtin)) cudaPitchedPtr +{ + void *ptr; + size_t pitch; + size_t xsize; + size_t ysize; +}; + + + + + + +struct __attribute__((device_builtin)) cudaExtent +{ + size_t width; + size_t height; + size_t depth; +}; + + + + + + +struct __attribute__((device_builtin)) cudaPos +{ + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + + struct cudaExtent extent; + enum cudaMemcpyKind kind; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpyNodeParams { + int flags; + int reserved[3]; + struct cudaMemcpy3DParms copyParams; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DPeerParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + int srcDevice; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + int dstDevice; + + struct cudaExtent extent; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParams { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParamsV2 { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +enum __attribute__((device_builtin)) cudaAccessProperty { + cudaAccessPropertyNormal = 0, + cudaAccessPropertyStreaming = 1, + cudaAccessPropertyPersisting = 2 +}; +# 1392 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaAccessPolicyWindow { + void *base_ptr; + size_t num_bytes; + float hitRatio; + enum cudaAccessProperty hitProp; + enum cudaAccessProperty missProp; +}; +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef void ( *cudaHostFn_t)(void *userData); + + + + +struct __attribute__((device_builtin)) cudaHostNodeParams { + cudaHostFn_t fn; + void* userData; +}; + + + + +struct __attribute__((device_builtin)) cudaHostNodeParamsV2 { + cudaHostFn_t fn; + void* userData; +}; + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureStatus { + cudaStreamCaptureStatusNone = 0, + cudaStreamCaptureStatusActive = 1, + cudaStreamCaptureStatusInvalidated = 2 + +}; + + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureMode { + cudaStreamCaptureModeGlobal = 0, + cudaStreamCaptureModeThreadLocal = 1, + cudaStreamCaptureModeRelaxed = 2 +}; + +enum __attribute__((device_builtin)) cudaSynchronizationPolicy { + cudaSyncPolicyAuto = 1, + cudaSyncPolicySpin = 2, + cudaSyncPolicyYield = 3, + cudaSyncPolicyBlockingSync = 4 +}; + + + + +enum __attribute__((device_builtin)) cudaClusterSchedulingPolicy { + cudaClusterSchedulingPolicyDefault = 0, + cudaClusterSchedulingPolicySpread = 1, + cudaClusterSchedulingPolicyLoadBalancing = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaStreamUpdateCaptureDependenciesFlags { + cudaStreamAddCaptureDependencies = 0x0, + cudaStreamSetCaptureDependencies = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectFlags { + cudaUserObjectNoDestructorSync = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectRetainFlags { + cudaGraphUserObjectMove = 0x1 +}; + + + + +struct cudaGraphicsResource; + + + + +enum __attribute__((device_builtin)) cudaGraphicsRegisterFlags +{ + cudaGraphicsRegisterFlagsNone = 0, + cudaGraphicsRegisterFlagsReadOnly = 1, + cudaGraphicsRegisterFlagsWriteDiscard = 2, + cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, + cudaGraphicsRegisterFlagsTextureGather = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsMapFlags +{ + cudaGraphicsMapFlagsNone = 0, + cudaGraphicsMapFlagsReadOnly = 1, + cudaGraphicsMapFlagsWriteDiscard = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsCubeFace +{ + cudaGraphicsCubeFacePositiveX = 0x00, + cudaGraphicsCubeFaceNegativeX = 0x01, + cudaGraphicsCubeFacePositiveY = 0x02, + cudaGraphicsCubeFaceNegativeY = 0x03, + cudaGraphicsCubeFacePositiveZ = 0x04, + cudaGraphicsCubeFaceNegativeZ = 0x05 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceType +{ + cudaResourceTypeArray = 0x00, + cudaResourceTypeMipmappedArray = 0x01, + cudaResourceTypeLinear = 0x02, + cudaResourceTypePitch2D = 0x03 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceViewFormat +{ + cudaResViewFormatNone = 0x00, + cudaResViewFormatUnsignedChar1 = 0x01, + cudaResViewFormatUnsignedChar2 = 0x02, + cudaResViewFormatUnsignedChar4 = 0x03, + cudaResViewFormatSignedChar1 = 0x04, + cudaResViewFormatSignedChar2 = 0x05, + cudaResViewFormatSignedChar4 = 0x06, + cudaResViewFormatUnsignedShort1 = 0x07, + cudaResViewFormatUnsignedShort2 = 0x08, + cudaResViewFormatUnsignedShort4 = 0x09, + cudaResViewFormatSignedShort1 = 0x0a, + cudaResViewFormatSignedShort2 = 0x0b, + cudaResViewFormatSignedShort4 = 0x0c, + cudaResViewFormatUnsignedInt1 = 0x0d, + cudaResViewFormatUnsignedInt2 = 0x0e, + cudaResViewFormatUnsignedInt4 = 0x0f, + cudaResViewFormatSignedInt1 = 0x10, + cudaResViewFormatSignedInt2 = 0x11, + cudaResViewFormatSignedInt4 = 0x12, + cudaResViewFormatHalf1 = 0x13, + cudaResViewFormatHalf2 = 0x14, + cudaResViewFormatHalf4 = 0x15, + cudaResViewFormatFloat1 = 0x16, + cudaResViewFormatFloat2 = 0x17, + cudaResViewFormatFloat4 = 0x18, + cudaResViewFormatUnsignedBlockCompressed1 = 0x19, + cudaResViewFormatUnsignedBlockCompressed2 = 0x1a, + cudaResViewFormatUnsignedBlockCompressed3 = 0x1b, + cudaResViewFormatUnsignedBlockCompressed4 = 0x1c, + cudaResViewFormatSignedBlockCompressed4 = 0x1d, + cudaResViewFormatUnsignedBlockCompressed5 = 0x1e, + cudaResViewFormatSignedBlockCompressed5 = 0x1f, + cudaResViewFormatUnsignedBlockCompressed6H = 0x20, + cudaResViewFormatSignedBlockCompressed6H = 0x21, + cudaResViewFormatUnsignedBlockCompressed7 = 0x22 +}; + + + + +struct __attribute__((device_builtin)) cudaResourceDesc { + enum cudaResourceType resType; + + union { + struct { + cudaArray_t array; + } array; + struct { + cudaMipmappedArray_t mipmap; + } mipmap; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t sizeInBytes; + } linear; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t width; + size_t height; + size_t pitchInBytes; + } pitch2D; + } res; +}; + + + + +struct __attribute__((device_builtin)) cudaResourceViewDesc +{ + enum cudaResourceViewFormat format; + size_t width; + size_t height; + size_t depth; + unsigned int firstMipmapLevel; + unsigned int lastMipmapLevel; + unsigned int firstLayer; + unsigned int lastLayer; +}; + + + + +struct __attribute__((device_builtin)) cudaPointerAttributes +{ + + + + + enum cudaMemoryType type; +# 1642 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int device; + + + + + + void *devicePointer; +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + void *hostPointer; +}; + + + + +struct __attribute__((device_builtin)) cudaFuncAttributes +{ + + + + + + size_t sharedSizeBytes; + + + + + + size_t constSizeBytes; + + + + + size_t localSizeBytes; + + + + + + + int maxThreadsPerBlock; + + + + + int numRegs; + + + + + + + int ptxVersion; + + + + + + + int binaryVersion; + + + + + + int cacheModeCA; + + + + + + + int maxDynamicSharedSizeBytes; +# 1729 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int preferredShmemCarveout; + + + + + + int clusterDimMustBeSet; +# 1746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int requiredClusterWidth; + int requiredClusterHeight; + int requiredClusterDepth; + + + + + + int clusterSchedulingPolicyPreference; +# 1776 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int nonPortableClusterSizeAllowed; + + + + + int reserved[16]; +}; + + + + +enum __attribute__((device_builtin)) cudaFuncAttribute +{ + cudaFuncAttributeMaxDynamicSharedMemorySize = 8, + cudaFuncAttributePreferredSharedMemoryCarveout = 9, + cudaFuncAttributeClusterDimMustBeSet = 10, + cudaFuncAttributeRequiredClusterWidth = 11, + cudaFuncAttributeRequiredClusterHeight = 12, + cudaFuncAttributeRequiredClusterDepth = 13, + cudaFuncAttributeNonPortableClusterSizeAllowed = 14, + cudaFuncAttributeClusterSchedulingPolicyPreference = 15, + cudaFuncAttributeMax +}; + + + + +enum __attribute__((device_builtin)) cudaFuncCache +{ + cudaFuncCachePreferNone = 0, + cudaFuncCachePreferShared = 1, + cudaFuncCachePreferL1 = 2, + cudaFuncCachePreferEqual = 3 +}; + + + + + +enum __attribute__((device_builtin)) cudaSharedMemConfig +{ + cudaSharedMemBankSizeDefault = 0, + cudaSharedMemBankSizeFourByte = 1, + cudaSharedMemBankSizeEightByte = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSharedCarveout { + cudaSharedmemCarveoutDefault = -1, + cudaSharedmemCarveoutMaxShared = 100, + cudaSharedmemCarveoutMaxL1 = 0 +}; + + + + +enum __attribute__((device_builtin)) cudaComputeMode +{ + cudaComputeModeDefault = 0, + cudaComputeModeExclusive = 1, + cudaComputeModeProhibited = 2, + cudaComputeModeExclusiveProcess = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaLimit +{ + cudaLimitStackSize = 0x00, + cudaLimitPrintfFifoSize = 0x01, + cudaLimitMallocHeapSize = 0x02, + cudaLimitDevRuntimeSyncDepth = 0x03, + cudaLimitDevRuntimePendingLaunchCount = 0x04, + cudaLimitMaxL2FetchGranularity = 0x05, + cudaLimitPersistingL2CacheSize = 0x06 +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryAdvise +{ + cudaMemAdviseSetReadMostly = 1, + cudaMemAdviseUnsetReadMostly = 2, + cudaMemAdviseSetPreferredLocation = 3, + cudaMemAdviseUnsetPreferredLocation = 4, + cudaMemAdviseSetAccessedBy = 5, + cudaMemAdviseUnsetAccessedBy = 6 +}; + + + + +enum __attribute__((device_builtin)) cudaMemRangeAttribute +{ + cudaMemRangeAttributeReadMostly = 1, + cudaMemRangeAttributePreferredLocation = 2, + cudaMemRangeAttributeAccessedBy = 3, + cudaMemRangeAttributeLastPrefetchLocation = 4 + , cudaMemRangeAttributePreferredLocationType = 5 + , cudaMemRangeAttributePreferredLocationId = 6 + , cudaMemRangeAttributeLastPrefetchLocationType = 7 + , cudaMemRangeAttributeLastPrefetchLocationId = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesOptions { + cudaFlushGPUDirectRDMAWritesOptionHost = 1<<0, + cudaFlushGPUDirectRDMAWritesOptionMemOps = 1<<1 +}; + + + + +enum __attribute__((device_builtin)) cudaGPUDirectRDMAWritesOrdering { + cudaGPUDirectRDMAWritesOrderingNone = 0, + cudaGPUDirectRDMAWritesOrderingOwner = 100, + cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesScope { + cudaFlushGPUDirectRDMAWritesToOwner = 100, + cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesTarget { + cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceAttr +{ + cudaDevAttrMaxThreadsPerBlock = 1, + cudaDevAttrMaxBlockDimX = 2, + cudaDevAttrMaxBlockDimY = 3, + cudaDevAttrMaxBlockDimZ = 4, + cudaDevAttrMaxGridDimX = 5, + cudaDevAttrMaxGridDimY = 6, + cudaDevAttrMaxGridDimZ = 7, + cudaDevAttrMaxSharedMemoryPerBlock = 8, + cudaDevAttrTotalConstantMemory = 9, + cudaDevAttrWarpSize = 10, + cudaDevAttrMaxPitch = 11, + cudaDevAttrMaxRegistersPerBlock = 12, + cudaDevAttrClockRate = 13, + cudaDevAttrTextureAlignment = 14, + cudaDevAttrGpuOverlap = 15, + cudaDevAttrMultiProcessorCount = 16, + cudaDevAttrKernelExecTimeout = 17, + cudaDevAttrIntegrated = 18, + cudaDevAttrCanMapHostMemory = 19, + cudaDevAttrComputeMode = 20, + cudaDevAttrMaxTexture1DWidth = 21, + cudaDevAttrMaxTexture2DWidth = 22, + cudaDevAttrMaxTexture2DHeight = 23, + cudaDevAttrMaxTexture3DWidth = 24, + cudaDevAttrMaxTexture3DHeight = 25, + cudaDevAttrMaxTexture3DDepth = 26, + cudaDevAttrMaxTexture2DLayeredWidth = 27, + cudaDevAttrMaxTexture2DLayeredHeight = 28, + cudaDevAttrMaxTexture2DLayeredLayers = 29, + cudaDevAttrSurfaceAlignment = 30, + cudaDevAttrConcurrentKernels = 31, + cudaDevAttrEccEnabled = 32, + cudaDevAttrPciBusId = 33, + cudaDevAttrPciDeviceId = 34, + cudaDevAttrTccDriver = 35, + cudaDevAttrMemoryClockRate = 36, + cudaDevAttrGlobalMemoryBusWidth = 37, + cudaDevAttrL2CacheSize = 38, + cudaDevAttrMaxThreadsPerMultiProcessor = 39, + cudaDevAttrAsyncEngineCount = 40, + cudaDevAttrUnifiedAddressing = 41, + cudaDevAttrMaxTexture1DLayeredWidth = 42, + cudaDevAttrMaxTexture1DLayeredLayers = 43, + cudaDevAttrMaxTexture2DGatherWidth = 45, + cudaDevAttrMaxTexture2DGatherHeight = 46, + cudaDevAttrMaxTexture3DWidthAlt = 47, + cudaDevAttrMaxTexture3DHeightAlt = 48, + cudaDevAttrMaxTexture3DDepthAlt = 49, + cudaDevAttrPciDomainId = 50, + cudaDevAttrTexturePitchAlignment = 51, + cudaDevAttrMaxTextureCubemapWidth = 52, + cudaDevAttrMaxTextureCubemapLayeredWidth = 53, + cudaDevAttrMaxTextureCubemapLayeredLayers = 54, + cudaDevAttrMaxSurface1DWidth = 55, + cudaDevAttrMaxSurface2DWidth = 56, + cudaDevAttrMaxSurface2DHeight = 57, + cudaDevAttrMaxSurface3DWidth = 58, + cudaDevAttrMaxSurface3DHeight = 59, + cudaDevAttrMaxSurface3DDepth = 60, + cudaDevAttrMaxSurface1DLayeredWidth = 61, + cudaDevAttrMaxSurface1DLayeredLayers = 62, + cudaDevAttrMaxSurface2DLayeredWidth = 63, + cudaDevAttrMaxSurface2DLayeredHeight = 64, + cudaDevAttrMaxSurface2DLayeredLayers = 65, + cudaDevAttrMaxSurfaceCubemapWidth = 66, + cudaDevAttrMaxSurfaceCubemapLayeredWidth = 67, + cudaDevAttrMaxSurfaceCubemapLayeredLayers = 68, + cudaDevAttrMaxTexture1DLinearWidth = 69, + cudaDevAttrMaxTexture2DLinearWidth = 70, + cudaDevAttrMaxTexture2DLinearHeight = 71, + cudaDevAttrMaxTexture2DLinearPitch = 72, + cudaDevAttrMaxTexture2DMipmappedWidth = 73, + cudaDevAttrMaxTexture2DMipmappedHeight = 74, + cudaDevAttrComputeCapabilityMajor = 75, + cudaDevAttrComputeCapabilityMinor = 76, + cudaDevAttrMaxTexture1DMipmappedWidth = 77, + cudaDevAttrStreamPrioritiesSupported = 78, + cudaDevAttrGlobalL1CacheSupported = 79, + cudaDevAttrLocalL1CacheSupported = 80, + cudaDevAttrMaxSharedMemoryPerMultiprocessor = 81, + cudaDevAttrMaxRegistersPerMultiprocessor = 82, + cudaDevAttrManagedMemory = 83, + cudaDevAttrIsMultiGpuBoard = 84, + cudaDevAttrMultiGpuBoardGroupID = 85, + cudaDevAttrHostNativeAtomicSupported = 86, + cudaDevAttrSingleToDoublePrecisionPerfRatio = 87, + cudaDevAttrPageableMemoryAccess = 88, + cudaDevAttrConcurrentManagedAccess = 89, + cudaDevAttrComputePreemptionSupported = 90, + cudaDevAttrCanUseHostPointerForRegisteredMem = 91, + cudaDevAttrReserved92 = 92, + cudaDevAttrReserved93 = 93, + cudaDevAttrReserved94 = 94, + cudaDevAttrCooperativeLaunch = 95, + cudaDevAttrCooperativeMultiDeviceLaunch = 96, + cudaDevAttrMaxSharedMemoryPerBlockOptin = 97, + cudaDevAttrCanFlushRemoteWrites = 98, + cudaDevAttrHostRegisterSupported = 99, + cudaDevAttrPageableMemoryAccessUsesHostPageTables = 100, + cudaDevAttrDirectManagedMemAccessFromHost = 101, + cudaDevAttrMaxBlocksPerMultiprocessor = 106, + cudaDevAttrMaxPersistingL2CacheSize = 108, + cudaDevAttrMaxAccessPolicyWindowSize = 109, + cudaDevAttrReservedSharedMemoryPerBlock = 111, + cudaDevAttrSparseCudaArraySupported = 112, + cudaDevAttrHostRegisterReadOnlySupported = 113, + cudaDevAttrTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMemoryPoolsSupported = 115, + cudaDevAttrGPUDirectRDMASupported = 116, + cudaDevAttrGPUDirectRDMAFlushWritesOptions = 117, + cudaDevAttrGPUDirectRDMAWritesOrdering = 118, + cudaDevAttrMemoryPoolSupportedHandleTypes = 119, + cudaDevAttrClusterLaunch = 120, + cudaDevAttrDeferredMappingCudaArraySupported = 121, + cudaDevAttrReserved122 = 122, + cudaDevAttrReserved123 = 123, + cudaDevAttrReserved124 = 124, + cudaDevAttrIpcEventSupport = 125, + cudaDevAttrMemSyncDomainCount = 126, + cudaDevAttrReserved127 = 127, + cudaDevAttrReserved128 = 128, + cudaDevAttrReserved129 = 129, + cudaDevAttrNumaConfig = 130, + cudaDevAttrNumaId = 131, + cudaDevAttrReserved132 = 132, + cudaDevAttrMpsEnabled = 133, + cudaDevAttrHostNumaId = 134, + cudaDevAttrD3D12CigSupported = 135, + cudaDevAttrGpuPciDeviceId = 139, + cudaDevAttrGpuPciSubsystemId = 140, + cudaDevAttrHostNumaMultinodeIpcSupported = 143, + cudaDevAttrMax +}; + + + + +enum __attribute__((device_builtin)) cudaMemPoolAttr +{ +# 2070 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemPoolReuseFollowEventDependencies = 0x1, + + + + + + + cudaMemPoolReuseAllowOpportunistic = 0x2, + + + + + + + + cudaMemPoolReuseAllowInternalDependencies = 0x3, +# 2096 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemPoolAttrReleaseThreshold = 0x4, + + + + + + cudaMemPoolAttrReservedMemCurrent = 0x5, + + + + + + + cudaMemPoolAttrReservedMemHigh = 0x6, + + + + + + cudaMemPoolAttrUsedMemCurrent = 0x7, + + + + + + + cudaMemPoolAttrUsedMemHigh = 0x8 +}; + + + + +enum __attribute__((device_builtin)) cudaMemLocationType { + cudaMemLocationTypeInvalid = 0, + cudaMemLocationTypeDevice = 1 + , cudaMemLocationTypeHost = 2 + , cudaMemLocationTypeHostNuma = 3 + , cudaMemLocationTypeHostNumaCurrent = 4 +}; + + + + + + + +struct __attribute__((device_builtin)) cudaMemLocation { + enum cudaMemLocationType type; + int id; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAccessFlags { + cudaMemAccessFlagsProtNone = 0, + cudaMemAccessFlagsProtRead = 1, + cudaMemAccessFlagsProtReadWrite = 3 +}; + + + + +struct __attribute__((device_builtin)) cudaMemAccessDesc { + struct cudaMemLocation location; + enum cudaMemAccessFlags flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationType { + cudaMemAllocationTypeInvalid = 0x0, + + + + cudaMemAllocationTypePinned = 0x1, + cudaMemAllocationTypeMax = 0x7FFFFFFF +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationHandleType { + cudaMemHandleTypeNone = 0x0, + cudaMemHandleTypePosixFileDescriptor = 0x1, + cudaMemHandleTypeWin32 = 0x2, + cudaMemHandleTypeWin32Kmt = 0x4, + cudaMemHandleTypeFabric = 0x8 +}; +# 2196 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaMemPoolProps { + enum cudaMemAllocationType allocType; + enum cudaMemAllocationHandleType handleTypes; + struct cudaMemLocation location; + + + + + + + void *win32SecurityAttributes; + size_t maxSize; + unsigned short usage; + unsigned char reserved[54]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolPtrExportData { + unsigned char reserved[64]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParams { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParamsV2 { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +struct __attribute__((device_builtin)) cudaMemFreeNodeParams { + void *dptr; +}; + + + + +enum __attribute__((device_builtin)) cudaGraphMemAttributeType { + + + + + cudaGraphMemAttrUsedMemCurrent = 0x0, + + + + + + + cudaGraphMemAttrUsedMemHigh = 0x1, + + + + + + + cudaGraphMemAttrReservedMemCurrent = 0x2, + + + + + + + cudaGraphMemAttrReservedMemHigh = 0x3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyFlags { + cudaMemcpyFlagDefault = 0x0, + + + + + cudaMemcpyFlagPreferOverlapWithCompute = 0x1 +}; + +enum __attribute__((device_builtin)) cudaMemcpySrcAccessOrder { + + + + cudaMemcpySrcAccessOrderInvalid = 0x0, + + + + + cudaMemcpySrcAccessOrderStream = 0x1, +# 2320 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemcpySrcAccessOrderDuringApiCall = 0x2, +# 2329 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemcpySrcAccessOrderAny = 0x3, + + cudaMemcpySrcAccessOrderMax = 0x7FFFFFFF +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpyAttributes { + enum cudaMemcpySrcAccessOrder srcAccessOrder; + struct cudaMemLocation srcLocHint; + struct cudaMemLocation dstLocHint; + unsigned int flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpy3DOperandType { + cudaMemcpyOperandTypePointer = 0x1, + cudaMemcpyOperandTypeArray = 0x2, + cudaMemcpyOperandTypeMax = 0x7FFFFFFF +}; + + + + +struct __attribute__((device_builtin)) cudaOffset3D { + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DOperand { + enum cudaMemcpy3DOperandType type; + union { + + + + struct { + void *ptr; + size_t rowLength; + size_t layerHeight; + struct cudaMemLocation locHint; + } ptr; + + + + + struct { + cudaArray_t array; + struct cudaOffset3D offset; + } array; + } op; +}; + +struct __attribute__((device_builtin)) cudaMemcpy3DBatchOp { + struct cudaMemcpy3DOperand src; + struct cudaMemcpy3DOperand dst; + struct cudaExtent extent; + enum cudaMemcpySrcAccessOrder srcAccessOrder; + unsigned int flags; +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceP2PAttr { + cudaDevP2PAttrPerformanceRank = 1, + cudaDevP2PAttrAccessSupported = 2, + cudaDevP2PAttrNativeAtomicSupported = 3, + cudaDevP2PAttrCudaArrayAccessSupported = 4 +}; + + + + + + +struct __attribute__((device_builtin)) CUuuid_st { + char bytes[16]; +}; +typedef __attribute__((device_builtin)) struct CUuuid_st CUuuid; + +typedef __attribute__((device_builtin)) struct CUuuid_st cudaUUID_t; + + + + +struct __attribute__((device_builtin)) cudaDeviceProp +{ + char name[256]; + cudaUUID_t uuid; + char luid[8]; + unsigned int luidDeviceNodeMask; + size_t totalGlobalMem; + size_t sharedMemPerBlock; + int regsPerBlock; + int warpSize; + size_t memPitch; + int maxThreadsPerBlock; + int maxThreadsDim[3]; + int maxGridSize[3]; + int clockRate; + size_t totalConstMem; + int major; + int minor; + size_t textureAlignment; + size_t texturePitchAlignment; + int deviceOverlap; + int multiProcessorCount; + int kernelExecTimeoutEnabled; + int integrated; + int canMapHostMemory; + int computeMode; + int maxTexture1D; + int maxTexture1DMipmap; + int maxTexture1DLinear; + int maxTexture2D[2]; + int maxTexture2DMipmap[2]; + int maxTexture2DLinear[3]; + int maxTexture2DGather[2]; + int maxTexture3D[3]; + int maxTexture3DAlt[3]; + int maxTextureCubemap; + int maxTexture1DLayered[2]; + int maxTexture2DLayered[3]; + int maxTextureCubemapLayered[2]; + int maxSurface1D; + int maxSurface2D[2]; + int maxSurface3D[3]; + int maxSurface1DLayered[2]; + int maxSurface2DLayered[3]; + int maxSurfaceCubemap; + int maxSurfaceCubemapLayered[2]; + size_t surfaceAlignment; + int concurrentKernels; + int ECCEnabled; + int pciBusID; + int pciDeviceID; + int pciDomainID; + int tccDriver; + int asyncEngineCount; + int unifiedAddressing; + int memoryClockRate; + int memoryBusWidth; + int l2CacheSize; + int persistingL2CacheMaxSize; + int maxThreadsPerMultiProcessor; + int streamPrioritiesSupported; + int globalL1CacheSupported; + int localL1CacheSupported; + size_t sharedMemPerMultiprocessor; + int regsPerMultiprocessor; + int managedMemory; + int isMultiGpuBoard; + int multiGpuBoardGroupID; + int hostNativeAtomicSupported; + int singleToDoublePrecisionPerfRatio; + int pageableMemoryAccess; + int concurrentManagedAccess; + int computePreemptionSupported; + int canUseHostPointerForRegisteredMem; + int cooperativeLaunch; + int cooperativeMultiDeviceLaunch; + size_t sharedMemPerBlockOptin; + int pageableMemoryAccessUsesHostPageTables; + int directManagedMemAccessFromHost; + int maxBlocksPerMultiProcessor; + int accessPolicyMaxWindowSize; + size_t reservedSharedMemPerBlock; + int hostRegisterSupported; + int sparseCudaArraySupported; + int hostRegisterReadOnlySupported; + int timelineSemaphoreInteropSupported; + int memoryPoolsSupported; + int gpuDirectRDMASupported; + unsigned int gpuDirectRDMAFlushWritesOptions; + int gpuDirectRDMAWritesOrdering; + unsigned int memoryPoolSupportedHandleTypes; + int deferredMappingCudaArraySupported; + int ipcEventSupported; + int clusterLaunch; + int unifiedFunctionPointers; + int reserved[63]; +}; +# 2528 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcEventHandle_st +{ + char reserved[64]; +}cudaIpcEventHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcMemHandle_st +{ + char reserved[64]; +}cudaIpcMemHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaMemFabricHandle_st +{ + char reserved[64]; +}cudaMemFabricHandle_t; + + + + +enum __attribute__((device_builtin)) cudaExternalMemoryHandleType { + + + + cudaExternalMemoryHandleTypeOpaqueFd = 1, + + + + cudaExternalMemoryHandleTypeOpaqueWin32 = 2, + + + + cudaExternalMemoryHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalMemoryHandleTypeD3D12Heap = 4, + + + + cudaExternalMemoryHandleTypeD3D12Resource = 5, + + + + cudaExternalMemoryHandleTypeD3D11Resource = 6, + + + + cudaExternalMemoryHandleTypeD3D11ResourceKmt = 7, + + + + cudaExternalMemoryHandleTypeNvSciBuf = 8 +}; +# 2627 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaExternalMemoryHandleDesc { + + + + enum cudaExternalMemoryHandleType type; + union { + + + + + + int fd; +# 2654 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + + const void *nvSciBufObject; + } handle; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryBufferDesc { + + + + unsigned long long offset; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryMipmappedArrayDesc { + + + + + unsigned long long offset; + + + + struct cudaChannelFormatDesc formatDesc; + + + + struct cudaExtent extent; + + + + + unsigned int flags; + + + + unsigned int numLevels; +}; + + + + +enum __attribute__((device_builtin)) cudaExternalSemaphoreHandleType { + + + + cudaExternalSemaphoreHandleTypeOpaqueFd = 1, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32 = 2, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalSemaphoreHandleTypeD3D12Fence = 4, + + + + cudaExternalSemaphoreHandleTypeD3D11Fence = 5, + + + + cudaExternalSemaphoreHandleTypeNvSciSync = 6, + + + + cudaExternalSemaphoreHandleTypeKeyedMutex = 7, + + + + cudaExternalSemaphoreHandleTypeKeyedMutexKmt = 8, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd = 9, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 = 10 +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreHandleDesc { + + + + enum cudaExternalSemaphoreHandleType type; + union { + + + + + + + int fd; +# 2804 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + const void* nvSciSyncObj; + } handle; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + } params; +# 2868 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + } params; +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams{ + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + unsigned int reserved[12]; + } params; +# 2963 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + unsigned int reserved[10]; + } params; +# 3014 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; +# 3027 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaError cudaError_t; + + + + +typedef __attribute__((device_builtin)) struct CUstream_st *cudaStream_t; + + + + +typedef __attribute__((device_builtin)) struct CUevent_st *cudaEvent_t; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphicsResource *cudaGraphicsResource_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalMemory_st *cudaExternalMemory_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalSemaphore_st *cudaExternalSemaphore_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraph_st *cudaGraph_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraphNode_st *cudaGraphNode_t; + + + + +typedef __attribute__((device_builtin)) struct CUuserObject_st *cudaUserObject_t; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaGraphConditionalHandle; + + + + +typedef __attribute__((device_builtin)) struct CUfunc_st *cudaFunction_t; + + + + +typedef __attribute__((device_builtin)) struct CUkern_st *cudaKernel_t; + + + + +enum __attribute__((device_builtin)) cudaJitOption +{ + + + + + + cudaJitMaxRegisters = 0, +# 3108 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitThreadsPerBlock = 1, + + + + + + + + cudaJitWallTime = 2, +# 3125 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitInfoLogBuffer = 3, +# 3134 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitInfoLogBufferSizeBytes = 4, +# 3143 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitErrorLogBuffer = 5, +# 3152 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitErrorLogBufferSizeBytes = 6, + + + + + + + + cudaJitOptimizationLevel = 7, + + + + + + + + cudaJitFallbackStrategy = 10, + + + + + + + + cudaJitGenerateDebugInfo = 11, + + + + + + + cudaJitLogVerbose = 12, + + + + + + + cudaJitGenerateLineInfo = 13, + + + + + + + + cudaJitCacheMode = 14, + + + + + + + cudaJitPositionIndependentCode = 30, +# 3218 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitMinCtaPerSm = 31, +# 3231 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitMaxThreadsPerBlock = 32, +# 3241 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitOverrideDirectiveValues = 33, +}; + + + + + +enum __attribute__((device_builtin)) cudaLibraryOption +{ + cudaLibraryHostUniversalFunctionAndDataTable = 0, +# 3261 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaLibraryBinaryIsPreserved = 1, +}; + +struct __attribute__((device_builtin)) cudalibraryHostUniversalFunctionAndDataTable +{ + void *functionTable; + size_t functionWindowSize; + void *dataTable; + size_t dataWindowSize; +}; + + + + +enum __attribute__((device_builtin)) cudaJit_CacheMode +{ + cudaJitCacheOptionNone = 0, + cudaJitCacheOptionCG, + cudaJitCacheOptionCA +}; + + + + +enum __attribute__((device_builtin)) cudaJit_Fallback +{ + cudaPreferPtx = 0, + + cudaPreferBinary +}; + + + + +typedef __attribute__((device_builtin)) struct CUlib_st *cudaLibrary_t; + + + + +typedef __attribute__((device_builtin)) struct CUmemPoolHandle_st *cudaMemPool_t; + + + + +enum __attribute__((device_builtin)) cudaCGScope { + cudaCGScopeInvalid = 0, + cudaCGScopeGrid = 1, + cudaCGScopeMultiGrid = 2 +}; + + + + +struct __attribute__((device_builtin)) cudaLaunchParams +{ + void *func; + dim3 gridDim; + dim3 blockDim; + void **args; + size_t sharedMem; + cudaStream_t stream; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParams { + void* func; + dim3 gridDim; + dim3 blockDim; + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParamsV2 { + void* func; + + dim3 gridDim; + dim3 blockDim; + + + + + + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParamsV2 { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParamsV2 { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + +enum __attribute__((device_builtin)) cudaGraphConditionalHandleFlags { + cudaGraphCondAssignDefault = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphConditionalNodeType { + cudaGraphCondTypeIf = 0, + cudaGraphCondTypeWhile = 1, + cudaGraphCondTypeSwitch = 2, +}; + + + + +struct __attribute__((device_builtin)) cudaConditionalNodeParams { + cudaGraphConditionalHandle handle; + + + enum cudaGraphConditionalNodeType type; + unsigned int size; + + cudaGraph_t *phGraph_out; +# 3432 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +}; + + + + +enum __attribute__((device_builtin)) cudaGraphNodeType { + cudaGraphNodeTypeKernel = 0x00, + cudaGraphNodeTypeMemcpy = 0x01, + cudaGraphNodeTypeMemset = 0x02, + cudaGraphNodeTypeHost = 0x03, + cudaGraphNodeTypeGraph = 0x04, + cudaGraphNodeTypeEmpty = 0x05, + cudaGraphNodeTypeWaitEvent = 0x06, + cudaGraphNodeTypeEventRecord = 0x07, + cudaGraphNodeTypeExtSemaphoreSignal = 0x08, + cudaGraphNodeTypeExtSemaphoreWait = 0x09, + cudaGraphNodeTypeMemAlloc = 0x0a, + cudaGraphNodeTypeMemFree = 0x0b, + cudaGraphNodeTypeConditional = 0x0d, +# 3467 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaGraphNodeTypeCount +}; + + + + +struct __attribute__((device_builtin)) cudaChildGraphNodeParams { + cudaGraph_t graph; + +}; + + + + +struct __attribute__((device_builtin)) cudaEventRecordNodeParams { + cudaEvent_t event; +}; + + + + +struct __attribute__((device_builtin)) cudaEventWaitNodeParams { + cudaEvent_t event; +}; + + + + +struct __attribute__((device_builtin)) cudaGraphNodeParams { + enum cudaGraphNodeType type; + int reserved0[3]; + + union { + long long reserved1[29]; + struct cudaKernelNodeParamsV2 kernel; + struct cudaMemcpyNodeParams memcpy; + struct cudaMemsetParamsV2 memset; + struct cudaHostNodeParamsV2 host; + struct cudaChildGraphNodeParams graph; + struct cudaEventWaitNodeParams eventWait; + struct cudaEventRecordNodeParams eventRecord; + struct cudaExternalSemaphoreSignalNodeParamsV2 extSemSignal; + struct cudaExternalSemaphoreWaitNodeParamsV2 extSemWait; + struct cudaMemAllocNodeParamsV2 alloc; + struct cudaMemFreeNodeParams free; + struct cudaConditionalNodeParams conditional; + }; + + long long reserved2; +}; + + + + +typedef __attribute__((device_builtin)) enum cudaGraphDependencyType_enum { + cudaGraphDependencyTypeDefault = 0, + cudaGraphDependencyTypeProgrammatic = 1 + + + + +} cudaGraphDependencyType; + + + + + + +typedef __attribute__((device_builtin)) struct cudaGraphEdgeData_st { + unsigned char from_port; +# 3546 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned char to_port; + + + + + + + unsigned char type; + + + unsigned char reserved[5]; + +} cudaGraphEdgeData; +# 3579 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct CUgraphExec_st* cudaGraphExec_t; + + + + +enum __attribute__((device_builtin)) cudaGraphExecUpdateResult { + cudaGraphExecUpdateSuccess = 0x0, + cudaGraphExecUpdateError = 0x1, + cudaGraphExecUpdateErrorTopologyChanged = 0x2, + cudaGraphExecUpdateErrorNodeTypeChanged = 0x3, + cudaGraphExecUpdateErrorFunctionChanged = 0x4, + cudaGraphExecUpdateErrorParametersChanged = 0x5, + cudaGraphExecUpdateErrorNotSupported = 0x6, + cudaGraphExecUpdateErrorUnsupportedFunctionChange = 0x7, + cudaGraphExecUpdateErrorAttributesChanged = 0x8 +}; + + + + +typedef __attribute__((device_builtin)) enum cudaGraphInstantiateResult { + cudaGraphInstantiateSuccess = 0, + cudaGraphInstantiateError = 1, + cudaGraphInstantiateInvalidStructure = 2, + cudaGraphInstantiateNodeOperationNotSupported = 3, + cudaGraphInstantiateMultipleDevicesNotSupported = 4, + cudaGraphInstantiateConditionalHandleUnused = 5 +} cudaGraphInstantiateResult; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphInstantiateParams_st +{ + unsigned long long flags; + cudaStream_t uploadStream; + cudaGraphNode_t errNode_out; + cudaGraphInstantiateResult result_out; +} cudaGraphInstantiateParams; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphExecUpdateResultInfo_st { + + + + enum cudaGraphExecUpdateResult result; + + + + + + + cudaGraphNode_t errorNode; + + + + + cudaGraphNode_t errorFromNode; +} cudaGraphExecUpdateResultInfo; + + + + +typedef struct CUgraphDeviceUpdatableNode_st* cudaGraphDeviceNode_t; + + + + +enum __attribute__((device_builtin)) cudaGraphKernelNodeField +{ + cudaGraphKernelNodeFieldInvalid = 0, + cudaGraphKernelNodeFieldGridDim, + cudaGraphKernelNodeFieldParam, + cudaGraphKernelNodeFieldEnabled +}; + + + + +struct __attribute__((device_builtin)) cudaGraphKernelNodeUpdate { + cudaGraphDeviceNode_t node; + enum cudaGraphKernelNodeField field; + union { + + dim3 gridDim; + + + + + struct { + const void *pValue; + size_t offset; + size_t size; + } param; + unsigned int isEnabled; + } updateData; +}; + + + + + +enum __attribute__((device_builtin)) cudaGetDriverEntryPointFlags { + cudaEnableDefault = 0x0, + cudaEnableLegacyStream = 0x1, + cudaEnablePerThreadDefaultStream = 0x2 +}; + + + + +enum __attribute__((device_builtin)) cudaDriverEntryPointQueryResult { + cudaDriverEntryPointSuccess = 0, + cudaDriverEntryPointSymbolNotFound = 1, + cudaDriverEntryPointVersionNotSufficent = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphDebugDotFlags { + cudaGraphDebugDotFlagsVerbose = 1<<0, + cudaGraphDebugDotFlagsKernelNodeParams = 1<<2, + cudaGraphDebugDotFlagsMemcpyNodeParams = 1<<3, + cudaGraphDebugDotFlagsMemsetNodeParams = 1<<4, + cudaGraphDebugDotFlagsHostNodeParams = 1<<5, + cudaGraphDebugDotFlagsEventNodeParams = 1<<6, + cudaGraphDebugDotFlagsExtSemasSignalNodeParams = 1<<7, + cudaGraphDebugDotFlagsExtSemasWaitNodeParams = 1<<8, + cudaGraphDebugDotFlagsKernelNodeAttributes = 1<<9, + cudaGraphDebugDotFlagsHandles = 1<<10, + cudaGraphDebugDotFlagsConditionalNodeParams = 1<<15, +}; + + + + +enum __attribute__((device_builtin)) cudaGraphInstantiateFlags { + cudaGraphInstantiateFlagAutoFreeOnLaunch = 1 + , cudaGraphInstantiateFlagUpload = 2 + + + , cudaGraphInstantiateFlagDeviceLaunch = 4 + + + , cudaGraphInstantiateFlagUseNodePriority = 8 + +}; +# 3746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaLaunchMemSyncDomain { + cudaLaunchMemSyncDomainDefault = 0, + cudaLaunchMemSyncDomainRemote = 1 +} cudaLaunchMemSyncDomain; +# 3762 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) struct cudaLaunchMemSyncDomainMap_st { + unsigned char default_; + unsigned char remote; +} cudaLaunchMemSyncDomainMap; + + + + +typedef __attribute__((device_builtin)) enum cudaLaunchAttributeID { + cudaLaunchAttributeIgnore = 0 + , cudaLaunchAttributeAccessPolicyWindow = 1 + + , cudaLaunchAttributeCooperative = 2 + + , cudaLaunchAttributeSynchronizationPolicy = 3 + , cudaLaunchAttributeClusterDimension = 4 + + , cudaLaunchAttributeClusterSchedulingPolicyPreference = 5 + + , cudaLaunchAttributeProgrammaticStreamSerialization = 6 +# 3792 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeProgrammaticEvent = 7 +# 3818 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributePriority = 8 + + , cudaLaunchAttributeMemSyncDomainMap = 9 + + , cudaLaunchAttributeMemSyncDomain = 10 + + , cudaLaunchAttributePreferredClusterDimension = 11 +# 3860 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeLaunchCompletionEvent = 12 +# 3882 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeDeviceUpdatableKernelNode = 13 +# 3910 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributePreferredSharedMemoryCarveout = 14 + + + + + + +} cudaLaunchAttributeID; + + + + +typedef __attribute__((device_builtin)) union cudaLaunchAttributeValue { + char pad[64]; + struct cudaAccessPolicyWindow accessPolicyWindow; + int cooperative; + + enum cudaSynchronizationPolicy syncPolicy; +# 3941 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } clusterDim; + enum cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; + + + int programmaticStreamSerializationAllowed; +# 3960 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + cudaEvent_t event; + int flags; + int triggerAtBlockStart; + } programmaticEvent; + int priority; + cudaLaunchMemSyncDomainMap memSyncDomainMap; + + + cudaLaunchMemSyncDomain memSyncDomain; +# 3984 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } preferredClusterDim; +# 3997 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + cudaEvent_t event; + int flags; + } launchCompletionEvent; + + + + + + + + struct { + int deviceUpdatable; + cudaGraphDeviceNode_t devNode; + } deviceUpdatableKernelNode; + unsigned int sharedMemCarveout; +} cudaLaunchAttributeValue; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchAttribute_st { + cudaLaunchAttributeID id; + char pad[8 - sizeof(cudaLaunchAttributeID)]; + cudaLaunchAttributeValue val; +} cudaLaunchAttribute; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchConfig_st { + dim3 gridDim; + dim3 blockDim; + size_t dynamicSmemBytes; + cudaStream_t stream; + cudaLaunchAttribute *attrs; + unsigned int numAttrs; +} cudaLaunchConfig_t; +# 4061 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum __attribute__((device_builtin)) cudaDeviceNumaConfig { + cudaDeviceNumaConfigNone = 0, + cudaDeviceNumaConfigNumaNode, +}; + + + + +typedef struct cudaAsyncCallbackEntry* cudaAsyncCallbackHandle_t; + +struct cudaAsyncCallbackEntry; + + + + +typedef __attribute__((device_builtin)) enum cudaAsyncNotificationType_enum { + cudaAsyncNotificationTypeOverBudget = 0x1 +} cudaAsyncNotificationType; + + + + +typedef __attribute__((device_builtin)) struct cudaAsyncNotificationInfo +{ + cudaAsyncNotificationType type; + union { + struct { + unsigned long long bytesOverBudget; + } overBudget; + } info; +} cudaAsyncNotificationInfo_t; + +typedef void (*cudaAsyncCallback)(cudaAsyncNotificationInfo_t*, void*, cudaAsyncCallbackHandle_t); +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +enum __attribute__((device_builtin)) cudaSurfaceBoundaryMode +{ + cudaBoundaryModeZero = 0, + cudaBoundaryModeClamp = 1, + cudaBoundaryModeTrap = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSurfaceFormatMode +{ + cudaFormatModeForced = 0, + cudaFormatModeAuto = 1 +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaSurfaceObject_t; +# 63 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +enum __attribute__((device_builtin)) cudaTextureAddressMode +{ + cudaAddressModeWrap = 0, + cudaAddressModeClamp = 1, + cudaAddressModeMirror = 2, + cudaAddressModeBorder = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureFilterMode +{ + cudaFilterModePoint = 0, + cudaFilterModeLinear = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureReadMode +{ + cudaReadModeElementType = 0, + cudaReadModeNormalizedFloat = 1 +}; + + + + +struct __attribute__((device_builtin)) cudaTextureDesc +{ + + + + enum cudaTextureAddressMode addressMode[3]; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureReadMode readMode; + + + + int sRGB; + + + + float borderColor[4]; + + + + int normalizedCoords; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; + + + + int seamlessCubemap; +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaTextureObject_t; +# 64 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" 1 +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" +typedef enum cudaDataType_t +{ + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, + CUDA_R_8F_E4M3 = 28, + CUDA_R_8F_UE4M3 = CUDA_R_8F_E4M3, + CUDA_R_8F_E5M2 = 29, + CUDA_R_8F_UE8M0 = 30, + CUDA_R_6F_E2M3 = 31, + CUDA_R_6F_E3M2 = 32, + CUDA_R_4F_E2M1 = 33, +} cudaDataType; + + +typedef enum libraryPropertyType_t +{ + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 1 +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 151 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 + +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + + +#pragma GCC visibility push(default) + + + extern "C++" __attribute__ ((__noreturn__, __always_inline__)) + inline void __terminate() noexcept + { + void terminate() noexcept __attribute__ ((__noreturn__,__cold__)); + terminate(); + } +#pragma GCC visibility pop +} +# 341 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 534 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ +#pragma GCC visibility push(default) + + + + + __attribute__((__always_inline__)) + constexpr inline bool + __is_constant_evaluated() noexcept + { + + + + + + return __builtin_is_constant_evaluated(); + + + + } +#pragma GCC visibility pop +} +# 573 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ +#pragma GCC visibility push(default) + + extern "C++" __attribute__ ((__noreturn__)) + void + __glibcxx_assert_fail + (const char* __file, int __line, const char* __function, + const char* __condition) + noexcept; +#pragma GCC visibility pop +} +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + __attribute__((__always_inline__,__visibility__("default"))) + inline void + __glibcxx_assert_fail() + { } +} +# 683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/os_defines.h" 1 3 +# 684 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/cpu_defines.h" 1 3 +# 687 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 +# 828 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace __gnu_cxx +{ + typedef __decltype(0.0bf16) __bfloat16_t; +} +# 890 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/pstl/pstl_config.h" 1 3 +# 891 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +# 1 "/usr/include/stdlib.h" 1 3 4 +# 26 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/stdlib.h" 2 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 33 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + +# 1 "/usr/include/bits/waitflags.h" 1 3 4 +# 41 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/bits/waitstatus.h" 1 3 4 +# 42 "/usr/include/stdlib.h" 2 3 4 +# 56 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/floatn.h" 1 3 4 +# 131 "/usr/include/bits/floatn.h" 3 4 +# 1 "/usr/include/bits/floatn-common.h" 1 3 4 +# 24 "/usr/include/bits/floatn-common.h" 3 4 +# 1 "/usr/include/bits/long-double.h" 1 3 4 +# 25 "/usr/include/bits/floatn-common.h" 2 3 4 +# 132 "/usr/include/bits/floatn.h" 2 3 4 +# 57 "/usr/include/stdlib.h" 2 3 4 + + +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; +# 98 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) noexcept (true) ; + + + +extern double atof (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern int atoi (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern long int atol (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +__extension__ extern long long int atoll (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern double strtod (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern float strtof (const char *__restrict __nptr, + char **__restrict __endptr) noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern long double strtold (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 141 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float64 strtof64 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float128 strtof128 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float32x strtof32x (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float64x strtof64x (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 177 "/usr/include/stdlib.h" 3 4 +extern long int strtol (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern unsigned long int strtoul (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + +extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtol") + + + __attribute__ ((__nonnull__ (1))); +extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoul") + + + + __attribute__ ((__nonnull__ (1))); + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") + + + __attribute__ ((__nonnull__ (1))); +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") + + + + __attribute__ ((__nonnull__ (1))); + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") + + + __attribute__ ((__nonnull__ (1))); +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") + + + + __attribute__ ((__nonnull__ (1))); +# 278 "/usr/include/stdlib.h" 3 4 +extern int strfromd (char *__dest, size_t __size, const char *__format, + double __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + +extern int strfromf (char *__dest, size_t __size, const char *__format, + float __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + +extern int strfroml (char *__dest, size_t __size, const char *__format, + long double __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); +# 298 "/usr/include/stdlib.h" 3 4 +extern int strfromf32 (char *__dest, size_t __size, const char * __format, + _Float32 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64 (char *__dest, size_t __size, const char * __format, + _Float64 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf128 (char *__dest, size_t __size, const char * __format, + _Float128 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf32x (char *__dest, size_t __size, const char * __format, + _Float32x __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64x (char *__dest, size_t __size, const char * __format, + _Float64x __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); +# 340 "/usr/include/stdlib.h" 3 4 +extern long int strtol_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +extern unsigned long int strtoul_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + + + + + +extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtol_l") + + + + __attribute__ ((__nonnull__ (1, 4))); +extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoul_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoll_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoull_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +# 415 "/usr/include/stdlib.h" 3 4 +extern double strtod_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + +extern float strtof_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + +extern long double strtold_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); +# 436 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64 strtof64_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float128 strtof128_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float32x strtof32x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64x strtof64x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); +# 505 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) noexcept (true) ; + + +extern long int a64l (const char *__s) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + +# 1 "/usr/include/sys/types.h" 1 3 4 +# 27 "/usr/include/sys/types.h" 3 4 +extern "C" { + + + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + +typedef __loff_t loff_t; + + + + +typedef __ino_t ino_t; + + + + + + +typedef __ino64_t ino64_t; + + + + +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; + + + + + +typedef __off_t off_t; + + + + + + +typedef __off64_t off64_t; + + + + +typedef __pid_t pid_t; + + + + + +typedef __id_t id_t; + + + + +typedef __ssize_t ssize_t; + + + + + +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; + + + + +# 1 "/usr/include/bits/types/clock_t.h" 1 3 4 + + + + + + +typedef __clock_t clock_t; +# 127 "/usr/include/sys/types.h" 2 3 4 + +# 1 "/usr/include/bits/types/clockid_t.h" 1 3 4 + + + + + + +typedef __clockid_t clockid_t; +# 129 "/usr/include/sys/types.h" 2 3 4 +# 1 "/usr/include/bits/types/time_t.h" 1 3 4 +# 10 "/usr/include/bits/types/time_t.h" 3 4 +typedef __time_t time_t; +# 130 "/usr/include/sys/types.h" 2 3 4 +# 1 "/usr/include/bits/types/timer_t.h" 1 3 4 + + + + + + +typedef __timer_t timer_t; +# 131 "/usr/include/sys/types.h" 2 3 4 + + + +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 145 "/usr/include/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; + + + + +# 1 "/usr/include/bits/stdint-intn.h" 1 3 4 +# 24 "/usr/include/bits/stdint-intn.h" 3 4 +typedef __int8_t int8_t; +typedef __int16_t int16_t; +typedef __int32_t int32_t; +typedef __int64_t int64_t; +# 156 "/usr/include/sys/types.h" 2 3 4 + + +typedef __uint8_t u_int8_t; +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; + + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 176 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 35 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/bits/byteswap.h" 1 3 4 +# 33 "/usr/include/bits/byteswap.h" 3 4 +static __inline __uint16_t +__bswap_16 (__uint16_t __bsx) +{ + + return __builtin_bswap16 (__bsx); + + + +} + + + + + + +static __inline __uint32_t +__bswap_32 (__uint32_t __bsx) +{ + + return __builtin_bswap32 (__bsx); + + + +} +# 69 "/usr/include/bits/byteswap.h" 3 4 +__extension__ static __inline __uint64_t +__bswap_64 (__uint64_t __bsx) +{ + + return __builtin_bswap64 (__bsx); + + + +} +# 36 "/usr/include/endian.h" 2 3 4 +# 1 "/usr/include/bits/uintn-identity.h" 1 3 4 +# 32 "/usr/include/bits/uintn-identity.h" 3 4 +static __inline __uint16_t +__uint16_identity (__uint16_t __x) +{ + return __x; +} + +static __inline __uint32_t +__uint32_identity (__uint32_t __x) +{ + return __x; +} + +static __inline __uint64_t +__uint64_identity (__uint64_t __x) +{ + return __x; +} +# 37 "/usr/include/endian.h" 2 3 4 +# 177 "/usr/include/sys/types.h" 2 3 4 + + +# 1 "/usr/include/sys/select.h" 1 3 4 +# 30 "/usr/include/sys/select.h" 3 4 +# 1 "/usr/include/bits/select.h" 1 3 4 +# 31 "/usr/include/sys/select.h" 2 3 4 + + +# 1 "/usr/include/bits/types/sigset_t.h" 1 3 4 + + + +# 1 "/usr/include/bits/types/__sigset_t.h" 1 3 4 + + + + +typedef struct +{ + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; +} __sigset_t; +# 5 "/usr/include/bits/types/sigset_t.h" 2 3 4 + + +typedef __sigset_t sigset_t; +# 34 "/usr/include/sys/select.h" 2 3 4 + + + +# 1 "/usr/include/bits/types/struct_timeval.h" 1 3 4 + + + + + + + +struct timeval +{ + + + + + __time_t tv_sec; + __suseconds_t tv_usec; + +}; +# 38 "/usr/include/sys/select.h" 2 3 4 + +# 1 "/usr/include/bits/types/struct_timespec.h" 1 3 4 +# 11 "/usr/include/bits/types/struct_timespec.h" 3 4 +struct timespec +{ + + + + __time_t tv_sec; + + + + + __syscall_slong_t tv_nsec; +# 31 "/usr/include/bits/types/struct_timespec.h" 3 4 +}; +# 40 "/usr/include/sys/select.h" 2 3 4 +# 49 "/usr/include/sys/select.h" 3 4 +typedef long int __fd_mask; +# 59 "/usr/include/sys/select.h" 3 4 +typedef struct + { + + + + __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 91 "/usr/include/sys/select.h" 3 4 +extern "C" { +# 102 "/usr/include/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 127 "/usr/include/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); +# 153 "/usr/include/sys/select.h" 3 4 +} +# 180 "/usr/include/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; + + + + + + +typedef __blkcnt_t blkcnt_t; + + + +typedef __fsblkcnt_t fsblkcnt_t; + + + +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/bits/thread-shared-types.h" 1 3 4 +# 44 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/pthreadtypes-arch.h" 1 3 4 +# 21 "/usr/include/bits/pthreadtypes-arch.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/bits/pthreadtypes-arch.h" 2 3 4 +# 45 "/usr/include/bits/thread-shared-types.h" 2 3 4 + +# 1 "/usr/include/bits/atomic_wide_counter.h" 1 3 4 +# 25 "/usr/include/bits/atomic_wide_counter.h" 3 4 +typedef union +{ + __extension__ unsigned long long int __value64; + struct + { + unsigned int __low; + unsigned int __high; + } __value32; +} __atomic_wide_counter; +# 47 "/usr/include/bits/thread-shared-types.h" 2 3 4 + + + + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; + +typedef struct __pthread_internal_slist +{ + struct __pthread_internal_slist *__next; +} __pthread_slist_t; +# 76 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/struct_mutex.h" 1 3 4 +# 22 "/usr/include/bits/struct_mutex.h" 3 4 +struct __pthread_mutex_s +{ + int __lock; + unsigned int __count; + int __owner; + + unsigned int __nusers; + + + + int __kind; + + short __spins; + short __elision; + __pthread_list_t __list; +# 53 "/usr/include/bits/struct_mutex.h" 3 4 +}; +# 77 "/usr/include/bits/thread-shared-types.h" 2 3 4 +# 89 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/struct_rwlock.h" 1 3 4 +# 23 "/usr/include/bits/struct_rwlock.h" 3 4 +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + + int __cur_writer; + int __shared; + signed char __rwelision; + + + + + unsigned char __pad1[7]; + + + unsigned long int __pad2; + + + unsigned int __flags; +# 55 "/usr/include/bits/struct_rwlock.h" 3 4 +}; +# 90 "/usr/include/bits/thread-shared-types.h" 2 3 4 + + + + +struct __pthread_cond_s +{ + __atomic_wide_counter __wseq; + __atomic_wide_counter __g1_start; + unsigned int __g_size[2] ; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; + unsigned int __unused_initialized_1; + unsigned int __unused_initialized_2; +}; + +typedef unsigned int __tss_t; +typedef unsigned long int __thrd_t; + +typedef struct +{ + int __data ; +} __once_flag; +# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 + + + +typedef unsigned long int pthread_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + +union pthread_attr_t +{ + char __size[56]; + long int __align; +}; + +typedef union pthread_attr_t pthread_attr_t; + + + + +typedef union +{ + struct __pthread_mutex_s __data; + char __size[40]; + long int __align; +} pthread_mutex_t; + + +typedef union +{ + struct __pthread_cond_s __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + + + + + +typedef union +{ + struct __pthread_rwlock_arch_t __data; + char __size[56]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[32]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 228 "/usr/include/sys/types.h" 2 3 4 + + +} +# 515 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) noexcept (true); + + +extern void srandom (unsigned int __seed) noexcept (true); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + noexcept (true) __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + noexcept (true) __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int rand (void) noexcept (true); + +extern void srand (unsigned int __seed) noexcept (true); + + + +extern int rand_r (unsigned int *__seed) noexcept (true); + + + + + + + +extern double drand48 (void) noexcept (true); +extern double erand48 (unsigned short int __xsubi[3]) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) noexcept (true); +extern long int nrand48 (unsigned short int __xsubi[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) noexcept (true); +extern long int jrand48 (unsigned short int __xsubi[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) noexcept (true); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + __extension__ unsigned long long int __a; + + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + noexcept (true) __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern __uint32_t arc4random (void) + noexcept (true) ; + + +extern void arc4random_buf (void *__buf, size_t __size) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) + noexcept (true) ; + + + + +extern void *malloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + +extern void *calloc (size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ; + + + + + + +extern void *realloc (void *__ptr, size_t __size) + noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); + + +extern void free (void *__ptr) noexcept (true); + + + + + + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__warn_unused_result__)) + __attribute__ ((__alloc_size__ (2, 3))) + __attribute__ ((__malloc__ (__builtin_free, 1))); + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__malloc__ (reallocarray, 1))); + + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 24 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) noexcept (true); + + + + + +} +# 707 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + +extern void *aligned_alloc (size_t __alignment, size_t __size) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1))) + __attribute__ ((__alloc_size__ (2))) ; + + + +extern void abort (void) noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + + +extern int atexit (void (*__func) (void)) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +extern "C++" int at_quick_exit (void (*__func) (void)) + noexcept (true) __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); +# 749 "/usr/include/stdlib.h" 3 4 +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +extern void exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + + +extern void quick_exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + + +extern void _Exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + +extern char *getenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + +extern char *secure_getenv (const char *__name) + noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + + + +extern int putenv (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (const char *__name, const char *__value, int __replace) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) noexcept (true); +# 814 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 827 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 837 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 849 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 859 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 870 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 881 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 891 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 901 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 913 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 923 "/usr/include/stdlib.h" 3 4 +extern int system (const char *__command) ; + + + + + +extern char *canonicalize_file_name (const char *__name) + noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__malloc__)) + __attribute__ ((__malloc__ (__builtin_free, 1))) ; +# 940 "/usr/include/stdlib.h" 3 4 +extern char *realpath (const char *__restrict __name, + char *__restrict __resolved) noexcept (true) ; + + + + + + +typedef int (*__compar_fn_t) (const void *, const void *); + + +typedef __compar_fn_t comparison_fn_t; + + + +typedef int (*__compar_d_fn_t) (const void *, const void *, void *); + + + + +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; + + + + + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); + +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __attribute__ ((__nonnull__ (1, 4))); + + + + +extern int abs (int __x) noexcept (true) __attribute__ ((__const__)) ; +extern long int labs (long int __x) noexcept (true) __attribute__ ((__const__)) ; + + +__extension__ extern long long int llabs (long long int __x) + noexcept (true) __attribute__ ((__const__)) ; + + + + + + +extern div_t div (int __numer, int __denom) + noexcept (true) __attribute__ ((__const__)) ; +extern ldiv_t ldiv (long int __numer, long int __denom) + noexcept (true) __attribute__ ((__const__)) ; + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + noexcept (true) __attribute__ ((__const__)) ; +# 1012 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + noexcept (true) __attribute__ ((__nonnull__ (3))) ; + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + noexcept (true) __attribute__ ((__nonnull__ (3))) ; + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + +extern int mblen (const char *__s, size_t __n) noexcept (true); + + +extern int mbtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n) noexcept (true); + + +extern int wctomb (char *__s, wchar_t __wchar) noexcept (true); + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + const char *__restrict __s, size_t __n) noexcept (true) + __attribute__ ((__access__ (__read_only__, 2))); + +extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + noexcept (true) + __attribute__ ((__access__ (__write_only__, 1, 3))) + __attribute__ ((__access__ (__read_only__, 2))); + + + + + + +extern int rpmatch (const char *__response) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 1099 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *const *__restrict __tokens, + char **__restrict __valuep) + noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))) ; + + + + + + + +extern int posix_openpt (int __oflag) ; + + + + + + + +extern int grantpt (int __fd) noexcept (true); + + + +extern int unlockpt (int __fd) noexcept (true); + + + + +extern char *ptsname (int __fd) noexcept (true) ; + + + + + + +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); + + +extern int getpt (void); + + + + + + +extern int getloadavg (double __loadavg[], int __nelem) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 1155 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/stdlib-float.h" 1 3 4 +# 1156 "/usr/include/stdlib.h" 2 3 4 +# 1167 "/usr/include/stdlib.h" 3 4 +} +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::abs; + + + inline long + abs(long __i) { return __builtin_labs(__i); } + + + + inline long long + abs(long long __x) { return __builtin_llabs (__x); } +# 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + inline constexpr double + abs(double __x) + { return __builtin_fabs(__x); } + + inline constexpr float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + + + __extension__ inline constexpr __int128 + abs(__int128 __x) { return __x >= 0 ? __x : -__x; } +# 135 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + __extension__ inline constexpr + __float128 + abs(__float128 __x) + { + + + + return __builtin_fabsf128(__x); + + + + + } + + + +} +} +# 82 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::div_t; + using ::ldiv_t; + + using ::abort; + + using ::aligned_alloc; + + using ::atexit; + + + using ::at_quick_exit; + + + using ::atof; + using ::atoi; + using ::atol; + using ::bsearch; + using ::calloc; + using ::div; + using ::exit; + using ::free; + using ::getenv; + using ::labs; + using ::ldiv; + using ::malloc; + + using ::mblen; + using ::mbstowcs; + using ::mbtowc; + + using ::qsort; + + + using ::quick_exit; + + + using ::rand; + using ::realloc; + using ::srand; + using ::strtod; + using ::strtol; + using ::strtoul; + using ::system; + + using ::wcstombs; + using ::wctomb; + + + + inline ldiv_t + div(long __i, long __j) noexcept { return ldiv(__i, __j); } + + + + +} +# 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" + using ::llabs; + + inline lldiv_t + div(long long __n, long long __d) + { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } + + using ::lldiv; +#pragma GCC diagnostic pop +# 234 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + using ::atoll; + using ::strtoll; + using ::strtoull; + + using ::strtof; + using ::strtold; + + +} + +namespace std +{ + + using ::__gnu_cxx::lldiv_t; + + using ::__gnu_cxx::_Exit; + + using ::__gnu_cxx::llabs; + using ::__gnu_cxx::div; + using ::__gnu_cxx::lldiv; + + using ::__gnu_cxx::atoll; + using ::__gnu_cxx::strtof; + using ::__gnu_cxx::strtoll; + using ::__gnu_cxx::strtoull; + using ::__gnu_cxx::strtold; +} +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 2 3 + +using std::abort; +using std::atexit; +using std::exit; + + + using std::at_quick_exit; + + + using std::quick_exit; + + + using std::_Exit; + + + + +using std::div_t; +using std::ldiv_t; + +using std::abs; +using std::atof; +using std::atoi; +using std::atol; +using std::bsearch; +using std::calloc; +using std::div; +using std::free; +using std::getenv; +using std::labs; +using std::ldiv; +using std::malloc; + +using std::mblen; +using std::mbstowcs; +using std::mbtowc; + +using std::qsort; +using std::rand; +using std::realloc; +using std::srand; +using std::strtod; +using std::strtol; +using std::strtoul; +using std::system; + +using std::wcstombs; +using std::wctomb; +# 55 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 2 +# 72 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" + +# 72 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern "C" { + + +struct cudaFuncAttributes; +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +inline __attribute__((device)) cudaError_t __cudaCDP2Malloc(void **p, size_t s) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2FuncGetAttributes(struct cudaFuncAttributes *p, const void *c) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2DeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2GetDevice(int *device) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags) +{ + return cudaErrorUnknown; +} + + + + + +} +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 2 +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern "C" +{ + + + + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(void); +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetLimit(size_t *pValue, enum cudaLimit limit); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2PeekAtLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* __cudaCDP2GetErrorString(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* __cudaCDP2GetErrorName(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetDeviceCount(int *count); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetDevice(int *device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamDestroy(cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecord(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventDestroy(cudaEvent_t event); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2FuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Free(void *devPtr); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Malloc(void **devPtr, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemcpyAsync_ptsz(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy2DAsync_ptsz(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy3DAsync_ptsz(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemsetAsync_ptsz(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset2DAsync_ptsz(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset3DAsync_ptsz(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2RuntimeGetVersion(int *runtimeVersion); +extern __attribute__((device)) __attribute__((cudart_builtin)) void * __cudaCDP2GetParameterBuffer(size_t alignment, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) void * __cudaCDP2GetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDeviceV2(void *parameterBuffer, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 311 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) cudaGraphExec_t cudaGetCurrentGraphExec(void) +{ + unsigned long long current_graph_exec; + asm ("mov.u64 %0, %%current_graph_exec;" : "=l"(current_graph_exec)); + return (cudaGraphExec_t)current_graph_exec; +} +# 346 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const void *value , size_t size); +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 430 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate *updates, size_t updateCount); +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaTriggerProgrammaticLaunchCompletion(void) +{ + asm volatile("griddepcontrol.launch_dependents;":::); +} +# 464 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaGridDependencySynchronize(void) +{ + asm volatile("griddepcontrol.wait;":::"memory"); +} +# 479 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) void cudaGraphSetConditional(cudaGraphConditionalHandle handle, unsigned int value); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long cudaCGGetIntrinsicHandle(enum cudaCGScope scope); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetSize(unsigned int *numThreads, unsigned int *numGrids, unsigned long long handle); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetRank(unsigned int *threadRank, unsigned int *gridRank, unsigned long long handle); +# 498 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device) +{ + return __cudaCDP2DeviceGetAttribute(value, attr, device); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit) +{ + return __cudaCDP2DeviceGetLimit(pValue, limit); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig) +{ + return __cudaCDP2DeviceGetCacheConfig(pCacheConfig); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig) +{ + return __cudaCDP2DeviceGetSharedMemConfig(pConfig); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void) +{ + return __cudaCDP2GetLastError(); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void) +{ + return __cudaCDP2PeekAtLastError(); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error) +{ + return __cudaCDP2GetErrorString(error); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error) +{ + return __cudaCDP2GetErrorName(error); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count) +{ + return __cudaCDP2GetDeviceCount(count); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device) +{ + return __cudaCDP2GetDevice(device); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags) +{ + return __cudaCDP2StreamCreateWithFlags(pStream, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream) +{ + return __cudaCDP2StreamDestroy(stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags) +{ + return __cudaCDP2StreamWaitEvent(stream, event, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned int flags) +{ + return __cudaCDP2StreamWaitEvent_ptsz(stream, event, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags) +{ + return __cudaCDP2EventCreateWithFlags(event, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream) +{ + return __cudaCDP2EventRecord(event, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord_ptsz(cudaEvent_t event, cudaStream_t stream) +{ + return __cudaCDP2EventRecord_ptsz(event, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned int flags) +{ + return __cudaCDP2EventRecordWithFlags(event, stream, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned int flags) +{ + return __cudaCDP2EventRecordWithFlags_ptsz(event, stream, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event) +{ + return __cudaCDP2EventDestroy(event); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func) +{ + return __cudaCDP2FuncGetAttributes(attr, func); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr) +{ + return __cudaCDP2Free(devPtr); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size) +{ + return __cudaCDP2Malloc(devPtr, size); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream) +{ + return __cudaCDP2MemcpyAsync(dst, src, count, kind, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync_ptsz(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream) +{ + return __cudaCDP2MemcpyAsync_ptsz(dst, src, count, kind, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream) +{ + return __cudaCDP2Memcpy2DAsync(dst, dpitch, src, spitch, width, height, kind, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync_ptsz(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream) +{ + return __cudaCDP2Memcpy2DAsync_ptsz(dst, dpitch, src, spitch, width, height, kind, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream) +{ + return __cudaCDP2Memcpy3DAsync(p, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync_ptsz(const struct cudaMemcpy3DParms *p, cudaStream_t stream) +{ + return __cudaCDP2Memcpy3DAsync_ptsz(p, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream) +{ + return __cudaCDP2MemsetAsync(devPtr, value, count, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync_ptsz(void *devPtr, int value, size_t count, cudaStream_t stream) +{ + return __cudaCDP2MemsetAsync_ptsz(devPtr, value, count, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream) +{ + return __cudaCDP2Memset2DAsync(devPtr, pitch, value, width, height, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync_ptsz(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream) +{ + return __cudaCDP2Memset2DAsync_ptsz(devPtr, pitch, value, width, height, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream) +{ + return __cudaCDP2Memset3DAsync(pitchedDevPtr, value, extent, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync_ptsz(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream) +{ + return __cudaCDP2Memset3DAsync_ptsz(pitchedDevPtr, value, extent, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion) +{ + return __cudaCDP2RuntimeGetVersion(runtimeVersion); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize) +{ + return __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(numBlocks, func, blockSize, dynamicSmemSize); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags) +{ + return __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, func, blockSize, dynamicSmemSize, flags); +} +# 714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBuffer(size_t alignment, size_t size) +{ + return __cudaCDP2GetParameterBuffer(alignment, size); +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize) +{ + return __cudaCDP2GetParameterBufferV2(func, gridDimension, blockDimension, sharedMemSize); +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream) +{ + return __cudaCDP2LaunchDevice_ptsz(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream) +{ + return __cudaCDP2LaunchDeviceV2_ptsz(parameterBuffer, stream); +} +# 800 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" + static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream) + { + return __cudaCDP2LaunchDevice(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); + } + + static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream) + { + return __cudaCDP2LaunchDeviceV2(parameterBuffer, stream); + } +# 862 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +} + + + + + +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(T **devPtr, size_t size); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, T *entry); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned int flags); +# 901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +template +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const T &value) +{ + return cudaGraphKernelNodeSetParam(node, offset, &value, sizeof(T)); +} +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 +# 287 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern "C" { +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceReset(void); +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetLimit(enum cudaLimit limit, size_t value); +# 478 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +# 501 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t *maxWidthInElements, const struct cudaChannelFormatDesc *fmtDesc, int device); +# 535 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 572 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority); +# 616 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetCacheConfig(enum cudaFuncCache cacheConfig); +# 643 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetByPCIBusId(int *device, const char *pciBusId); +# 673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetPCIBusId(char *pciBusId, int len, int device); +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t *handle, cudaEvent_t event); +# 768 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenEventHandle(cudaEvent_t *event, cudaIpcEventHandle_t handle); +# 813 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t *handle, void *devPtr); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenMemHandle(void **devPtr, cudaIpcMemHandle_t handle, unsigned int flags); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcCloseMemHandle(void *devPtr); +# 951 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(enum cudaFlushGPUDirectRDMAWritesTarget target, enum cudaFlushGPUDirectRDMAWritesScope scope); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void* userData, cudaAsyncCallbackHandle_t* callback); +# 1012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +# 1105 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaDeviceSetSharedMemConfig(enum cudaSharedMemConfig config); +# 1146 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadExit(void); +# 1172 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSynchronize(void); +# 1221 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetLimit(enum cudaLimit limit, size_t value); +# 1254 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetLimit(size_t *pValue, enum cudaLimit limit); +# 1290 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 1337 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetCacheConfig(enum cudaFuncCache cacheConfig); +# 1402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +# 1453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +# 1469 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +# 1485 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +# 1514 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +# 1818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceProperties_v2(struct cudaDeviceProp *prop, int device); +# 2024 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +# 2042 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t *memPool, int device); +# 2066 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetMemPool(cudaMemPool_t *memPool, int device); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetNvSciSyncAttributes(void *nvSciSyncAttrList, int device, int flags); +# 2188 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetP2PAttribute(int *value, enum cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2210 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaChooseDevice(int *device, const struct cudaDeviceProp *prop); +# 2239 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaInitDevice(int device, unsigned int deviceFlags, unsigned int flags); +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDevice(int device); +# 2307 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +# 2338 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetValidDevices(int *device_arr, int len); +# 2408 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDeviceFlags( unsigned int flags ); +# 2453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDeviceFlags( unsigned int *flags ); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamCreate(cudaStream_t *pStream); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +# 2585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithPriority(cudaStream_t *pStream, unsigned int flags, int priority); +# 2613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int *priority); +# 2639 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned int *flags); +# 2676 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long *streamId); +# 2702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetDevice(cudaStream_t hStream, int *device); +# 2717 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCtxResetPersistingL2Cache(void); +# 2737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2758 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 2782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamSetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2847 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags = 0); + + + + + + + +typedef void ( *cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void *userData); +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamAddCallback(cudaStream_t stream, + cudaStreamCallback_t callback, void *userData, unsigned int flags); +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamQuery(cudaStream_t stream); +# 3055 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void *devPtr, size_t length = 0, unsigned int flags = 0x04); +# 3094 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode); +# 3135 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCaptureToGraph(cudaStream_t stream, cudaGraph_t graph, const cudaGraphNode_t *dependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, enum cudaStreamCaptureMode mode); +# 3186 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode); +# 3215 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph); +# 3253 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus); +# 3303 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, size_t *numDependencies_out = 0); +# 3362 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v3(cudaStream_t stream, + enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, + cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, + const cudaGraphEdgeData **edgeData_out = 0, size_t *numDependencies_out = 0); +# 3402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t *dependencies, size_t numDependencies, unsigned int flags = 0); +# 3437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies_v2(cudaStream_t stream, cudaGraphNode_t *dependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, unsigned int flags = 0); +# 3474 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventCreate(cudaEvent_t *event); +# 3511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +# 3552 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3600 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned int flags = 0); +# 3633 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventQuery(cudaEvent_t event); +# 3664 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3694 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3787 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime_v2(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc); +# 4023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedBuffer(void **devPtr, cudaExternalMemory_t extMem, const struct cudaExternalMemoryBufferDesc *bufferDesc); +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t *mipmap, cudaExternalMemory_t extMem, const struct cudaExternalMemoryMipmappedArrayDesc *mipmapDesc); +# 4107 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t *extSem_out, const struct cudaExternalSemaphoreHandleDesc *semHandleDesc); +# 4344 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreSignalParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 4420 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreWaitParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 4443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t *config, const void *func, void **args); +# 4632 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4733 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaLaunchCooperativeKernelMultiDevice(struct cudaLaunchParams *launchParamsList, unsigned int numDevices, unsigned int flags = 0); +# 4783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFuncSetCacheConfig(const void *func, enum cudaFuncCache cacheConfig); +# 4818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +# 4877 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncSetAttribute(const void *func, enum cudaFuncAttribute attr, int value); +# 4903 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetName(const char **name, const void *func); +# 4926 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetParamInfo(const void *func, size_t paramIndex, size_t *paramOffset, size_t *paramSize); +# 4950 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForDevice(double *d); +# 4974 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForHost(double *d); +# 5040 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void *userData); +# 5114 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig(const void *func, enum cudaSharedMemConfig config); +# 5171 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize); +# 5201 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t *dynamicSmemSize, const void *func, int numBlocks, int blockSize); +# 5247 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize, unsigned int flags); +# 5283 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxPotentialClusterSize(int *clusterSize, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5323 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveClusters(int *numClusters, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags = 0x01); +# 5476 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +# 5513 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocHost(void **ptr, size_t size); +# 5556 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height); +# 5608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocArray(cudaArray_t *array, const struct cudaChannelFormatDesc *desc, size_t width, size_t height = 0, unsigned int flags = 0); +# 5647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +# 5670 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeHost(void *ptr); +# 5693 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeArray(cudaArray_t array); +# 5716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostAlloc(void **pHost, size_t size, unsigned int flags); +# 5879 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostRegister(void *ptr, size_t size, unsigned int flags); +# 5902 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostUnregister(void *ptr); +# 5947 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags); +# 5969 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetFlags(unsigned int *pFlags, void *pHost); +# 6008 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3D(struct cudaPitchedPtr* pitchedDevPtr, struct cudaExtent extent); +# 6153 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3DArray(cudaArray_t *array, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int flags = 0); +# 6298 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t *mipmappedArray, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int numLevels, unsigned int flags = 0); +# 6331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t *levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned int level); +# 6436 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3D(const struct cudaMemcpy3DParms *p); +# 6468 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p); +# 6586 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream = 0); +# 6613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeerAsync(const struct cudaMemcpy3DPeerParms *p, cudaStream_t stream = 0); +# 6647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemGetInfo(size_t *free, size_t *total); +# 6673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetInfo(struct cudaChannelFormatDesc *desc, struct cudaExtent *extent, unsigned int *flags, cudaArray_t array); +# 6702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetPlane(cudaArray_t *pPlaneArray, cudaArray_t hArray, unsigned int planeIdx); +# 6725 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaArray_t array, int device); +# 6749 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6777 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaArray_t array); +# 6807 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaMipmappedArray_t mipmap); +# 6852 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind); +# 6887 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count); +# 6936 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6986 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 7036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArray(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind); +# 7083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbol(const void *symbol, const void *src, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 7170 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbol(void *dst, const void *symbol, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 7227 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7262 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeerAsync(void *dst, int dstDevice, const void *src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 7334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyBatchAsync(void **dsts, void **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes *attrs, size_t *attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t stream); +# 7402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DBatchAsync(size_t numOps, struct cudaMemcpy3DBatchOp *opList, size_t *failIdx, unsigned long long flags, cudaStream_t stream); +# 7465 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7523 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7580 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArrayAsync(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync(const void *symbol, const void *src, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7682 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync(void *dst, const void *symbol, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7711 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset(void *devPtr, int value, size_t count); +# 7745 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height); +# 7791 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent); +# 7827 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7868 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7921 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream = 0); +# 7949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolAddress(void **devPtr, const void *symbol); +# 7976 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolSize(size_t *size, const void *symbol); +# 8048 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync(const void *devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 8129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync_v2(const void *devPtr, size_t count, struct cudaMemLocation location, unsigned int flags, cudaStream_t stream = 0); +# 8243 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, int device); +# 8366 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise_v2(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, struct cudaMemLocation location); +# 8448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttribute(void *data, size_t dataSize, enum cudaMemRangeAttribute attribute, const void *devPtr, size_t count); +# 8491 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttributes(void **data, size_t *dataSizes, enum cudaMemRangeAttribute *attributes, size_t numAttributes, const void *devPtr, size_t count); +# 8551 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind); +# 8593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArray(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind); +# 8636 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 8687 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArrayAsync(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8806 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocAsync(void **devPtr, size_t size, cudaStream_t hStream); +# 8832 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeAsync(void *devPtr, cudaStream_t hStream); +# 8857 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8964 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const struct cudaMemAccessDesc *descList, size_t count); +# 8977 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAccess(enum cudaMemAccessFlags *flags, cudaMemPool_t memPool, struct cudaMemLocation *location); +# 9021 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolCreate(cudaMemPool_t *memPool, const struct cudaMemPoolProps *poolProps); +# 9043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 9079 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocFromPoolAsync(void **ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 9104 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportToShareableHandle( + void *shareableHandle, + cudaMemPool_t memPool, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 9131 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportFromShareableHandle( + cudaMemPool_t *memPool, + void *shareableHandle, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 9154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportPointer(struct cudaMemPoolPtrExportData *exportData, void *ptr); +# 9183 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportPointer(void **ptr, cudaMemPool_t memPool, struct cudaMemPoolPtrExportData *exportData); +# 9336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr); +# 9377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice); +# 9419 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags); +# 9441 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9505 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9540 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned int flags); +# 9579 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9646 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, cudaGraphicsResource_t resource); +# 9684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t *array, cudaGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel); +# 9713 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t *mipmappedArray, cudaGraphicsResource_t resource); +# 9748 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetChannelDesc(struct cudaChannelFormatDesc *desc, cudaArray_const_t array); +# 9778 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) struct cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, enum cudaChannelFormatKind f); +# 10003 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateTextureObject(cudaTextureObject_t *pTexObject, const struct cudaResourceDesc *pResDesc, const struct cudaTextureDesc *pTexDesc, const struct cudaResourceViewDesc *pResViewDesc); +# 10023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 10043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaTextureObject_t texObject); +# 10063 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc(struct cudaTextureDesc *pTexDesc, cudaTextureObject_t texObject); +# 10084 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceViewDesc(struct cudaResourceViewDesc *pResViewDesc, cudaTextureObject_t texObject); +# 10129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t *pSurfObject, const struct cudaResourceDesc *pResDesc); +# 10149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 10168 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSurfaceObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaSurfaceObject_t surfObject); +# 10202 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDriverGetVersion(int *driverVersion); +# 10231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 10278 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphCreate(cudaGraph_t *pGraph, unsigned int flags); +# 10377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaKernelNodeParams *pNodeParams); +# 10410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, struct cudaKernelNodeParams *pNodeParams); +# 10437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 10457 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeCopyAttributes( + cudaGraphNode_t hSrc, + cudaGraphNode_t hDst); +# 10480 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 10504 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 10555 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemcpy3DParms *pCopyParams); +# 10614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10751 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode1D( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, struct cudaMemcpy3DParms *pNodeParams); +# 10810 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 10849 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10895 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10941 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams1D( + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemsetParams *pMemsetParams); +# 11012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, struct cudaMemsetParams *pNodeParams); +# 11036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 11078 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddHostNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaHostNodeParams *pNodeParams); +# 11101 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, struct cudaHostNodeParams *pNodeParams); +# 11125 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 11166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 11193 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t *pGraph); +# 11231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies); +# 11275 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11302 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11330 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11404 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11432 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11482 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11515 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreSignalNodeParams *params_out); +# 11543 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11626 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreWaitNodeParams *params_out); +# 11654 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11732 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaMemAllocNodeParams *nodeParams); +# 11759 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, struct cudaMemAllocNodeParams *params_out); +# 11820 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, void *dptr); +# 11844 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void *dptr_out); +# 11872 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGraphMemTrim(int device); +# 11909 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11943 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphClone(cudaGraph_t *pGraphClone, cudaGraph_t originalGraph); +# 11999 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t *pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 12030 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, enum cudaGraphNodeType *pType); +# 12061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t *nodes, size_t *numNodes); +# 12092 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t *pRootNodes, size_t *pNumRootNodes); +# 12126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, size_t *numEdges); +# 12166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges_v2(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, cudaGraphEdgeData *edgeData, size_t *numEdges); +# 12197 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, size_t *pNumDependencies); +# 12234 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, cudaGraphEdgeData *edgeData, size_t *pNumDependencies); +# 12266 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, size_t *pNumDependentNodes); +# 12304 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, cudaGraphEdgeData *edgeData, size_t *pNumDependentNodes); +# 12335 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 12367 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, const cudaGraphEdgeData *edgeData, size_t numDependencies); +# 12398 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 12433 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, const cudaGraphEdgeData *edgeData, size_t numDependencies); +# 12463 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12534 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiate(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12607 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams *instantiateParams); +# 12739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long *flags); +# 12799 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 12850 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 12905 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 12968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 13029 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams1D( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 13088 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 13128 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 13175 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 13220 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13265 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13313 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 13361 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 13401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int isEnabled); +# 13435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int *isEnabled); +# 13529 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo *resultInfo); +# 13554 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13629 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13648 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char *path, unsigned int flags); +# 13684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectCreate(cudaUserObject_t *object_out, void *ptr, cudaHostFn_t destroy, unsigned int initialRefcount, unsigned int flags); +# 13708 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned int count = 1); +# 13736 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned int count = 1); +# 13764 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1, unsigned int flags = 0); +# 13789 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1); +# 13831 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaGraphNodeParams *nodeParams); +# 13875 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddNode_v2(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, struct cudaGraphNodeParams *nodeParams); +# 13904 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13953 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13980 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphConditionalHandleCreate(cudaGraphConditionalHandle *pHandle_out, cudaGraph_t graph, unsigned int defaultLaunchValue = 0, unsigned int flags = 0); +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPoint(const char *symbol, void **funcPtr, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 3 4 + __null +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + ); +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPointByVersion(const char *symbol, void **funcPtr, unsigned int cudaVersion, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 3 4 + __null +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + ); +# 14212 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryLoadData(cudaLibrary_t *library, const void *code, + enum cudaJitOption *jitOptions, void **jitOptionsValues, unsigned int numJitOptions, + enum cudaLibraryOption *libraryOptions, void** libraryOptionValues, unsigned int numLibraryOptions); +# 14272 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryLoadFromFile(cudaLibrary_t *library, const char *fileName, + enum cudaJitOption *jitOptions, void **jitOptionsValues, unsigned int numJitOptions, + enum cudaLibraryOption *libraryOptions, void **libraryOptionValues, unsigned int numLibraryOptions); +# 14293 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryUnload(cudaLibrary_t library); +# 14318 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetKernel(cudaKernel_t *pKernel, cudaLibrary_t library, const char *name); +# 14352 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetGlobal(void **dptr, size_t *bytes, cudaLibrary_t library, const char *name); +# 14385 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetManaged(void **dptr, size_t *bytes, cudaLibrary_t library, const char *name); +# 14412 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetUnifiedFunction(void **fptr, cudaLibrary_t library, const char *symbol); +# 14434 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetKernelCount(unsigned int *count, cudaLibrary_t lib); +# 14456 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryEnumerateKernels(cudaKernel_t *kernels, unsigned int numKernels, cudaLibrary_t lib); +# 14525 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaKernelSetAttributeForDevice(cudaKernel_t kernel, enum cudaFuncAttribute attr, int value, int device); + + + + +extern __attribute__((host)) cudaError_t cudaGetExportTable(const void **ppExportTable, const cudaUUID_t *pExportTableId); +# 14716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetFuncBySymbol(cudaFunction_t* functionPtr, const void* symbolPtr); +# 14740 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetKernel(cudaKernel_t *kernelPtr, const void *entryFuncAddr); +# 14918 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +} +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" 2 +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf1(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf2(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf4(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(char) * 8; + + + + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); + +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescNV12(void) +{ + int e = (int)sizeof(char) * 8; + + return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +} + +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(10, 10, 10, 2, cudaChannelFormatKindUnsignedNormalized1010102); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +} +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 1 +# 53 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 55 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 2 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +{ + struct cudaPitchedPtr s; + + s.ptr = d; + s.pitch = p; + s.xsize = xsz; + s.ysize = ysz; + + return s; +} +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaPos make_cudaPos(size_t x, size_t y, size_t z) +{ + struct cudaPos p; + + p.x = x; + p.y = y; + p.z = z; + + return p; +} +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +{ + struct cudaExtent e; + + e.width = w; + e.height = h; + e.depth = d; + + return e; +} +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x); + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y); + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x); + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y); + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x); + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x); + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y); + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y); + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z); + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z); + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w); + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w); + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x); + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y); + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z); + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x); + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y); + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z); + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w); + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x) +{ + char1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x) +{ + uchar1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y) +{ + char2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y) +{ + uchar2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z) +{ + char3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +{ + uchar3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w) +{ + char4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + uchar4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x) +{ + short1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x) +{ + ushort1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y) +{ + short2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y) +{ + ushort2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z) +{ + short3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +{ + ushort3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w) +{ + short4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +{ + ushort4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x) +{ + int1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x) +{ + uint1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y) +{ + int2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y) +{ + uint2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z) +{ + int3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z) +{ + uint3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w) +{ + int4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w) +{ + uint4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x) +{ + long1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x) +{ + ulong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y) +{ + long2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y) +{ + ulong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z) +{ + long3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z) +{ + ulong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w) +{ + long4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w) +{ + ulong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x) +{ + float1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y) +{ + float2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z) +{ + float3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w) +{ + float4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x) +{ + longlong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x) +{ + ulonglong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y) +{ + longlong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y) +{ + ulonglong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z) +{ + longlong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z) +{ + ulonglong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w) +{ + longlong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w) +{ + ulonglong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x) +{ + double1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y) +{ + double2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z) +{ + double3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w) +{ + double4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" 2 +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 1 +# 71 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 72 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/usr/include/string.h" 1 3 4 +# 26 "/usr/include/string.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/string.h" 2 3 4 + + +# 28 "/usr/include/string.h" 3 4 +extern "C" { + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 34 "/usr/include/string.h" 2 3 4 +# 43 "/usr/include/string.h" 3 4 +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, + size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, const void *__src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memccpy (void *__restrict __dest, const void *__restrict __src, + int __c, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4))); + + + + +extern void *memset (void *__s, int __c, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 80 "/usr/include/string.h" 3 4 +extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern "C++" +{ +extern void *memchr (void *__s, int __c, size_t __n) + noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const void *memchr (const void *__s, int __c, size_t __n) + noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 105 "/usr/include/string.h" 3 4 +} +# 115 "/usr/include/string.h" 3 4 +extern "C++" void *rawmemchr (void *__s, int __c) + noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *rawmemchr (const void *__s, int __c) + noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" void *memrchr (void *__s, int __c, size_t __n) + noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_only__, 1, 3))); +extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) + noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_only__, 1, 3))); +# 141 "/usr/include/string.h" 3 4 +extern char *strcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, const char *__restrict __src, + size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (const char *__s1, const char *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3))); + + + + + + +extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, + locale_t __l) noexcept (true) __attribute__ ((__nonnull__ (2, 4))) + __attribute__ ((__access__ (__write_only__, 1, 3))); + + + + + +extern char *strdup (const char *__s) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (const char *__string, size_t __n) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 224 "/usr/include/string.h" 3 4 +extern "C++" +{ +extern char *strchr (char *__s, int __c) + noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strchr (const char *__s, int __c) + noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 244 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strrchr (char *__s, int __c) + noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strrchr (const char *__s, int __c) + noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 271 "/usr/include/string.h" 3 4 +} +# 281 "/usr/include/string.h" 3 4 +extern "C++" char *strchrnul (char *__s, int __c) + noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const char *strchrnul (const char *__s, int __c) + noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 293 "/usr/include/string.h" 3 4 +extern size_t strcspn (const char *__s, const char *__reject) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (const char *__s, const char *__accept) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern "C++" +{ +extern char *strpbrk (char *__s, const char *__accept) + noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strpbrk (const char *__s, const char *__accept) + noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 321 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strstr (char *__haystack, const char *__needle) + noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strstr (const char *__haystack, const char *__needle) + noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 348 "/usr/include/string.h" 3 4 +} + + + + + + + +extern char *strtok (char *__restrict __s, const char *__restrict __delim) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + + +extern char *__strtok_r (char *__restrict __s, + const char *__restrict __delim, + char **__restrict __save_ptr) + noexcept (true) __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, + char **__restrict __save_ptr) + noexcept (true) __attribute__ ((__nonnull__ (2, 3))); + + + + + +extern "C++" char *strcasestr (char *__haystack, const char *__needle) + noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern "C++" const char *strcasestr (const char *__haystack, + const char *__needle) + noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 389 "/usr/include/string.h" 3 4 +extern void *memmem (const void *__haystack, size_t __haystacklen, + const void *__needle, size_t __needlelen) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))) + __attribute__ ((__access__ (__read_only__, 1, 2))) + __attribute__ ((__access__ (__read_only__, 3, 4))); + + + +extern void *__mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern void *mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlen (const char *__s) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern size_t strnlen (const char *__string, size_t __maxlen) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern char *strerror (int __errnum) noexcept (true); +# 444 "/usr/include/string.h" 3 4 +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); + + + + +extern const char *strerrordesc_np (int __err) noexcept (true); + +extern const char *strerrorname_np (int __err) noexcept (true); + + + + + +extern char *strerror_l (int __errnum, locale_t __l) noexcept (true); + + + +# 1 "/usr/include/strings.h" 1 3 4 +# 23 "/usr/include/strings.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 24 "/usr/include/strings.h" 2 3 4 + + + + + + +extern "C" { + + + +extern int bcmp (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bcopy (const void *__src, void *__dest, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern "C++" +{ +extern char *index (char *__s, int __c) + noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *index (const char *__s, int __c) + noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 66 "/usr/include/strings.h" 3 4 +} + + + + + + + +extern "C++" +{ +extern char *rindex (char *__s, int __c) + noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *rindex (const char *__s, int __c) + noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 94 "/usr/include/strings.h" 3 4 +} +# 104 "/usr/include/strings.h" 3 4 +extern int ffs (int __i) noexcept (true) __attribute__ ((__const__)); + + + + + +extern int ffsl (long int __l) noexcept (true) __attribute__ ((__const__)); +__extension__ extern int ffsll (long long int __ll) + noexcept (true) __attribute__ ((__const__)); + + + +extern int strcasecmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + + +extern int strncasecmp_l (const char *__s1, const char *__s2, + size_t __n, locale_t __loc) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); + + +} +# 463 "/usr/include/string.h" 2 3 4 + + + +extern void explicit_bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__write_only__, 1, 2))); + + + +extern char *strsep (char **__restrict __stringp, + const char *__restrict __delim) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) noexcept (true); + + + +extern const char *sigabbrev_np (int __sig) noexcept (true); + + +extern const char *sigdescr_np (int __sig) noexcept (true); + + + +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlcpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); + + + +extern size_t strlcat (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); + + + + +extern int strverscmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strfry (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void *memfrob (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_write__, 1, 2))); + + + + + + + +extern "C++" char *basename (char *__filename) + noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); +extern "C++" const char *basename (const char *__filename) + noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); +# 552 "/usr/include/string.h" 3 4 +} +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/usr/include/time.h" 1 3 4 +# 29 "/usr/include/time.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 30 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 73 "/usr/include/bits/time.h" 3 4 +# 1 "/usr/include/bits/timex.h" 1 3 4 +# 26 "/usr/include/bits/timex.h" 3 4 +struct timex +{ +# 58 "/usr/include/bits/timex.h" 3 4 + unsigned int modes; + __syscall_slong_t offset; + __syscall_slong_t freq; + __syscall_slong_t maxerror; + __syscall_slong_t esterror; + int status; + __syscall_slong_t constant; + __syscall_slong_t precision; + __syscall_slong_t tolerance; + struct timeval time; + __syscall_slong_t tick; + __syscall_slong_t ppsfreq; + __syscall_slong_t jitter; + int shift; + __syscall_slong_t stabil; + __syscall_slong_t jitcnt; + __syscall_slong_t calcnt; + __syscall_slong_t errcnt; + __syscall_slong_t stbcnt; + + int tai; + + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; + +}; +# 74 "/usr/include/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __attribute__ ((__nonnull__ (2))); +# 90 "/usr/include/bits/time.h" 3 4 +} +# 34 "/usr/include/time.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/types/struct_tm.h" 1 3 4 + + + + + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + const char *tm_zone; + + + + +}; +# 40 "/usr/include/time.h" 2 3 4 +# 48 "/usr/include/time.h" 3 4 +# 1 "/usr/include/bits/types/struct_itimerspec.h" 1 3 4 + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; +# 49 "/usr/include/time.h" 2 3 4 +struct sigevent; +# 68 "/usr/include/time.h" 3 4 +extern "C" { + + + +extern clock_t clock (void) noexcept (true); + + + +extern time_t time (time_t *__timer) noexcept (true); + + +extern double difftime (time_t __time1, time_t __time0); + + +extern time_t mktime (struct tm *__tp) noexcept (true); +# 99 "/usr/include/time.h" 3 4 +extern size_t strftime (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp) + noexcept (true) __attribute__ ((__nonnull__ (1, 3, 4))); + + + + +extern char *strptime (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp) + noexcept (true); + + + + + + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp, + locale_t __loc) noexcept (true); + + + +extern char *strptime_l (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp, + locale_t __loc) noexcept (true); + + + + + + +extern struct tm *gmtime (const time_t *__timer) noexcept (true); + + + +extern struct tm *localtime (const time_t *__timer) noexcept (true); +# 154 "/usr/include/time.h" 3 4 +extern struct tm *gmtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) noexcept (true); + + + +extern struct tm *localtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) noexcept (true); +# 179 "/usr/include/time.h" 3 4 +extern char *asctime (const struct tm *__tp) noexcept (true); + + + +extern char *ctime (const time_t *__timer) noexcept (true); +# 197 "/usr/include/time.h" 3 4 +extern char *asctime_r (const struct tm *__restrict __tp, + char *__restrict __buf) noexcept (true); + + + +extern char *ctime_r (const time_t *__restrict __timer, + char *__restrict __buf) noexcept (true); +# 217 "/usr/include/time.h" 3 4 +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) noexcept (true); + + + +extern int daylight; +extern long int timezone; +# 246 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) noexcept (true); +# 263 "/usr/include/time.h" 3 4 +extern time_t timelocal (struct tm *__tp) noexcept (true); + + + + + + + +extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); +# 281 "/usr/include/time.h" 3 4 +extern int nanosleep (const struct timespec *__requested_time, + struct timespec *__remaining); + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) noexcept (true); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + noexcept (true) __attribute__ ((__nonnull__ (2))); +# 323 "/usr/include/time.h" 3 4 +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); +# 338 "/usr/include/time.h" 3 4 +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) noexcept (true); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) noexcept (true); + + +extern int timer_delete (timer_t __timerid) noexcept (true); + + + +extern int timer_settime (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) noexcept (true); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + noexcept (true); +# 376 "/usr/include/time.h" 3 4 +extern int timer_getoverrun (timer_t __timerid) noexcept (true); + + + + + + +extern int timespec_get (struct timespec *__ts, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 399 "/usr/include/time.h" 3 4 +extern int timespec_getres (struct timespec *__ts, int __base) + noexcept (true); +# 425 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 434 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 448 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 87 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 + + +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" +{ + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) clock_t clock(void) + + + + +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 +noexcept (true) +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memset(void*, int, size_t) +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memcpy(void*, const void*, size_t) +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; + +} +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 1 3 +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 3 + +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 1 3 +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 3 + +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 3 + + + + +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 3 +extern "C++" { + +namespace std __attribute__ ((__visibility__ ("default"))) +{ +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 3 + class exception + { + public: + exception() noexcept { } + virtual ~exception() noexcept; + + exception(const exception&) = default; + exception& operator=(const exception&) = default; + exception(exception&&) = default; + exception& operator=(exception&&) = default; + + + + + virtual const char* + what() const noexcept; + }; + + + +} + +} +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 2 3 + +#pragma GCC visibility push(default) + +extern "C++" { + +namespace std +{ + + + + + + + class bad_alloc : public exception + { + public: + bad_alloc() throw() { } + + + bad_alloc(const bad_alloc&) = default; + bad_alloc& operator=(const bad_alloc&) = default; + + + + + virtual ~bad_alloc() throw(); + + + virtual const char* what() const throw(); + }; + + + class bad_array_new_length : public bad_alloc + { + public: + bad_array_new_length() throw() { } + + + + virtual ~bad_array_new_length() throw(); + + + virtual const char* what() const throw(); + }; + + + + enum class align_val_t: size_t {}; + + + struct nothrow_t + { + + explicit nothrow_t() = default; + + }; + + extern const nothrow_t nothrow; + + + + typedef void (*new_handler)(); + + + + new_handler set_new_handler(new_handler) throw(); + + + + new_handler get_new_handler() noexcept; + +} +# 131 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 3 +[[__nodiscard__]] void* operator new(std::size_t) + __attribute__((__externally_visible__)); +[[__nodiscard__]] void* operator new[](std::size_t) + __attribute__((__externally_visible__)); +void operator delete(void*) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*) noexcept + __attribute__((__externally_visible__)); + +void operator delete(void*, std::size_t) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*, std::size_t) noexcept + __attribute__((__externally_visible__)); + +[[__nodiscard__]] void* operator new(std::size_t, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +[[__nodiscard__]] void* operator new[](std::size_t, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +void operator delete(void*, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); + +[[__nodiscard__]] void* operator new(std::size_t, std::align_val_t) + __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +[[__nodiscard__]] void* operator new(std::size_t, std::align_val_t, const std::nothrow_t&) + noexcept __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +void operator delete(void*, std::align_val_t) + noexcept __attribute__((__externally_visible__)); +void operator delete(void*, std::align_val_t, const std::nothrow_t&) + noexcept __attribute__((__externally_visible__)); +[[__nodiscard__]] void* operator new[](std::size_t, std::align_val_t) + __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +[[__nodiscard__]] void* operator new[](std::size_t, std::align_val_t, const std::nothrow_t&) + noexcept __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +void operator delete[](void*, std::align_val_t) + noexcept __attribute__((__externally_visible__)); +void operator delete[](void*, std::align_val_t, const std::nothrow_t&) + noexcept __attribute__((__externally_visible__)); + +void operator delete(void*, std::size_t, std::align_val_t) + noexcept __attribute__((__externally_visible__)); +void operator delete[](void*, std::size_t, std::align_val_t) + noexcept __attribute__((__externally_visible__)); + + + + +[[__nodiscard__]] inline void* operator new(std::size_t, void* __p) noexcept +{ return __p; } +[[__nodiscard__]] inline void* operator new[](std::size_t, void* __p) noexcept +{ return __p; } + + +inline void operator delete (void*, void*) noexcept { } +inline void operator delete[](void*, void*) noexcept { } + +} + + +namespace std +{ + + + template + [[nodiscard]] constexpr _Tp* + launder(_Tp* __p) noexcept + { return __builtin_launder(__p); } + + + + + template + void launder(_Ret (*)(_Args...) noexcept (_NE)) = delete; + template + void launder(_Ret (*)(_Args......) noexcept (_NE)) = delete; + + void launder(void*) = delete; + void launder(const void*) = delete; + void launder(volatile void*) = delete; + void launder(const volatile void*) = delete; + + + + inline constexpr size_t hardware_destructive_interference_size = 64; + inline constexpr size_t hardware_constructive_interference_size = 64; + +} +# 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 3 +#pragma GCC visibility pop +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new(std:: size_t, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new[](std:: size_t, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, void*) throw(); + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std:: size_t) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std:: size_t) throw(); + + + + +# 1 "/usr/include/stdio.h" 1 3 4 +# 28 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 29 "/usr/include/stdio.h" 2 3 4 + + +# 30 "/usr/include/stdio.h" 3 4 +extern "C" { + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 35 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h" 1 3 4 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h" 3 4 +typedef __builtin_va_list __gnuc_va_list; +# 38 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/bits/types/__fpos_t.h" 1 3 4 + + + + +# 1 "/usr/include/bits/types/__mbstate_t.h" 1 3 4 +# 13 "/usr/include/bits/types/__mbstate_t.h" 3 4 +typedef struct +{ + int __count; + union + { + unsigned int __wch; + char __wchb[4]; + } __value; +} __mbstate_t; +# 6 "/usr/include/bits/types/__fpos_t.h" 2 3 4 + + + + +typedef struct _G_fpos_t +{ + __off_t __pos; + __mbstate_t __state; +} __fpos_t; +# 41 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/bits/types/__fpos64_t.h" 1 3 4 +# 10 "/usr/include/bits/types/__fpos64_t.h" 3 4 +typedef struct _G_fpos64_t +{ + __off64_t __pos; + __mbstate_t __state; +} __fpos64_t; +# 42 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/bits/types/__FILE.h" 1 3 4 + + + +struct _IO_FILE; +typedef struct _IO_FILE __FILE; +# 43 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/bits/types/FILE.h" 1 3 4 + + + +struct _IO_FILE; + + +typedef struct _IO_FILE FILE; +# 44 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/bits/types/struct_FILE.h" 1 3 4 +# 36 "/usr/include/bits/types/struct_FILE.h" 3 4 +struct _IO_FILE; +struct _IO_marker; +struct _IO_codecvt; +struct _IO_wide_data; + + + + +typedef void _IO_lock_t; + + + + + +struct _IO_FILE +{ + int _flags; + + + char *_IO_read_ptr; + char *_IO_read_end; + char *_IO_read_base; + char *_IO_write_base; + char *_IO_write_ptr; + char *_IO_write_end; + char *_IO_buf_base; + char *_IO_buf_end; + + + char *_IO_save_base; + char *_IO_backup_base; + char *_IO_save_end; + + struct _IO_marker *_markers; + + struct _IO_FILE *_chain; + + int _fileno; + int _flags2:24; + + char _short_backupbuf[1]; + __off_t _old_offset; + + + unsigned short _cur_column; + signed char _vtable_offset; + char _shortbuf[1]; + + _IO_lock_t *_lock; + + + + + + + + __off64_t _offset; + + struct _IO_codecvt *_codecvt; + struct _IO_wide_data *_wide_data; + struct _IO_FILE *_freeres_list; + void *_freeres_buf; + struct _IO_FILE **_prevchain; + int _mode; + + char _unused2[15 * sizeof (int) - 5 * sizeof (void *)]; +}; +# 45 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/bits/types/cookie_io_functions_t.h" 1 3 4 +# 27 "/usr/include/bits/types/cookie_io_functions_t.h" 3 4 +typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, + size_t __nbytes); + + + + + + + +typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, + size_t __nbytes); + + + + + + + +typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); + + +typedef int cookie_close_function_t (void *__cookie); + + + + + + +typedef struct _IO_cookie_io_functions_t +{ + cookie_read_function_t *read; + cookie_write_function_t *write; + cookie_seek_function_t *seek; + cookie_close_function_t *close; +} cookie_io_functions_t; +# 48 "/usr/include/stdio.h" 2 3 4 + + + + + +typedef __gnuc_va_list va_list; +# 85 "/usr/include/stdio.h" 3 4 +typedef __fpos_t fpos_t; + + + + +typedef __fpos64_t fpos64_t; +# 129 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/bits/stdio_lim.h" 1 3 4 +# 130 "/usr/include/stdio.h" 2 3 4 +# 149 "/usr/include/stdio.h" 3 4 +extern FILE *stdin; +extern FILE *stdout; +extern FILE *stderr; + + + + + + +extern int remove (const char *__filename) noexcept (true); + +extern int rename (const char *__old, const char *__new) noexcept (true); + + + +extern int renameat (int __oldfd, const char *__old, int __newfd, + const char *__new) noexcept (true); +# 176 "/usr/include/stdio.h" 3 4 +extern int renameat2 (int __oldfd, const char *__old, int __newfd, + const char *__new, unsigned int __flags) noexcept (true); + + + + + + +extern int fclose (FILE *__stream) __attribute__ ((__nonnull__ (1))); +# 194 "/usr/include/stdio.h" 3 4 +extern FILE *tmpfile (void) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; +# 206 "/usr/include/stdio.h" 3 4 +extern FILE *tmpfile64 (void) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + +extern char *tmpnam (char[20]) noexcept (true) ; + + + + +extern char *tmpnam_r (char __s[20]) noexcept (true) ; +# 228 "/usr/include/stdio.h" 3 4 +extern char *tempnam (const char *__dir, const char *__pfx) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1))); + + + + + + +extern int fflush (FILE *__stream); +# 245 "/usr/include/stdio.h" 3 4 +extern int fflush_unlocked (FILE *__stream); +# 255 "/usr/include/stdio.h" 3 4 +extern int fcloseall (void); +# 264 "/usr/include/stdio.h" 3 4 +extern FILE *fopen (const char *__restrict __filename, + const char *__restrict __modes) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + + +extern FILE *freopen (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (3))); +# 289 "/usr/include/stdio.h" 3 4 +extern FILE *fopen64 (const char *__restrict __filename, + const char *__restrict __modes) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; +extern FILE *freopen64 (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (3))); + + + + +extern FILE *fdopen (int __fd, const char *__modes) noexcept (true) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + + + +extern FILE *fopencookie (void *__restrict __magic_cookie, + const char *__restrict __modes, + cookie_io_functions_t __io_funcs) noexcept (true) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + + +extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + + +extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) noexcept (true) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; +# 334 "/usr/include/stdio.h" 3 4 +extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) noexcept (true) + __attribute__ ((__nonnull__ (1))); + + + +extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, + int __modes, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, + size_t __size) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void setlinebuf (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern int fprintf (FILE *__restrict __stream, + const char *__restrict __format, ...) __attribute__ ((__nonnull__ (1))); + + + + +extern int printf (const char *__restrict __format, ...); + +extern int sprintf (char *__restrict __s, + const char *__restrict __format, ...) noexcept (true); + + + + + +extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) __attribute__ ((__nonnull__ (1))); + + + + +extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); + +extern int vsprintf (char *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) noexcept (true); + + + +extern int snprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, ...) + noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))); + +extern int vsnprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, __gnuc_va_list __arg) + noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))); + + + + + +extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, + __gnuc_va_list __arg) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))) ; +extern int __asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) ; +extern int asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) ; + + + + +extern int vdprintf (int __fd, const char *__restrict __fmt, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__printf__, 2, 0))); +extern int dprintf (int __fd, const char *__restrict __fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); + + + + + + + +extern int fscanf (FILE *__restrict __stream, + const char *__restrict __format, ...) __attribute__ ((__nonnull__ (1))); + + + + +extern int scanf (const char *__restrict __format, ...) ; + +extern int sscanf (const char *__restrict __s, + const char *__restrict __format, ...) noexcept (true); +# 442 "/usr/include/stdio.h" 3 4 +extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc23_fscanf") + + __attribute__ ((__nonnull__ (1))); +extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc23_scanf") + ; +extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc23_sscanf") + + ; +# 490 "/usr/include/stdio.h" 3 4 +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__nonnull__ (1))); + + + + + +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 1, 0))) ; + + +extern int vsscanf (const char *__restrict __s, + const char *__restrict __format, __gnuc_va_list __arg) + noexcept (true) __attribute__ ((__format__ (__scanf__, 2, 0))); + + + + + + +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vfscanf") + + + + __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__nonnull__ (1))); +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vscanf") + + __attribute__ ((__format__ (__scanf__, 1, 0))) ; +extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc23_vsscanf") + + + + __attribute__ ((__format__ (__scanf__, 2, 0))); +# 575 "/usr/include/stdio.h" 3 4 +extern int fgetc (FILE *__stream) __attribute__ ((__nonnull__ (1))); +extern int getc (FILE *__stream) __attribute__ ((__nonnull__ (1))); + + + + + +extern int getchar (void); + + + + + + +extern int getc_unlocked (FILE *__stream) __attribute__ ((__nonnull__ (1))); +extern int getchar_unlocked (void); +# 600 "/usr/include/stdio.h" 3 4 +extern int fgetc_unlocked (FILE *__stream) __attribute__ ((__nonnull__ (1))); +# 611 "/usr/include/stdio.h" 3 4 +extern int fputc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); +extern int putc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); + + + + + +extern int putchar (int __c); +# 627 "/usr/include/stdio.h" 3 4 +extern int fputc_unlocked (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); + + + + + + + +extern int putc_unlocked (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); +extern int putchar_unlocked (int __c); + + + + + + +extern int getw (FILE *__stream) __attribute__ ((__nonnull__ (1))); + + +extern int putw (int __w, FILE *__stream) __attribute__ ((__nonnull__ (2))); + + + + + + + +extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + __attribute__ ((__access__ (__write_only__, 1, 2))) __attribute__ ((__nonnull__ (3))); +# 677 "/usr/include/stdio.h" 3 4 +extern char *fgets_unlocked (char *__restrict __s, int __n, + FILE *__restrict __stream) + __attribute__ ((__access__ (__write_only__, 1, 2))) __attribute__ ((__nonnull__ (3))); +# 689 "/usr/include/stdio.h" 3 4 +extern __ssize_t __getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (4))); +extern __ssize_t getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (4))); + + +extern __ssize_t getline (char **__restrict __lineptr, + size_t *__restrict __n, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (3))); + + + + + + + +extern int fputs (const char *__restrict __s, FILE *__restrict __stream) + __attribute__ ((__nonnull__ (2))); + + + + + +extern int puts (const char *__s); + + + + + + +extern int ungetc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); + + + + + + +extern size_t fread (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) + __attribute__ ((__nonnull__ (4))); + + + + +extern size_t fwrite (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __s) __attribute__ ((__nonnull__ (4))); +# 745 "/usr/include/stdio.h" 3 4 +extern int fputs_unlocked (const char *__restrict __s, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (2))); +# 756 "/usr/include/stdio.h" 3 4 +extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) + __attribute__ ((__nonnull__ (4))); +extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) + __attribute__ ((__nonnull__ (4))); + + + + + + + +extern int fseek (FILE *__stream, long int __off, int __whence) + __attribute__ ((__nonnull__ (1))); + + + + +extern long int ftell (FILE *__stream) __attribute__ ((__nonnull__ (1))); + + + + +extern void rewind (FILE *__stream) __attribute__ ((__nonnull__ (1))); +# 793 "/usr/include/stdio.h" 3 4 +extern int fseeko (FILE *__stream, __off_t __off, int __whence) + __attribute__ ((__nonnull__ (1))); + + + + +extern __off_t ftello (FILE *__stream) __attribute__ ((__nonnull__ (1))); +# 819 "/usr/include/stdio.h" 3 4 +extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) + __attribute__ ((__nonnull__ (1))); + + + + +extern int fsetpos (FILE *__stream, const fpos_t *__pos) __attribute__ ((__nonnull__ (1))); +# 841 "/usr/include/stdio.h" 3 4 +extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) + __attribute__ ((__nonnull__ (1))); +extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__nonnull__ (1))); +extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos) + __attribute__ ((__nonnull__ (1))); +extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos) __attribute__ ((__nonnull__ (1))); + + + +extern void clearerr (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern int feof (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern int ferror (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern void clearerr_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); +extern int feof_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); +extern int ferror_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern void perror (const char *__s) __attribute__ ((__cold__)); + + + + +extern int fileno (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +extern int fileno_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 887 "/usr/include/stdio.h" 3 4 +extern int pclose (FILE *__stream) __attribute__ ((__nonnull__ (1))); + + + + + +extern FILE *popen (const char *__command, const char *__modes) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ; + + + + + + +extern char *ctermid (char *__s) noexcept (true) + __attribute__ ((__access__ (__write_only__, 1))); + + + + + +extern char *cuserid (char *__s) + __attribute__ ((__access__ (__write_only__, 1))); + + + + +struct obstack; + + +extern int obstack_printf (struct obstack *__restrict __obstack, + const char *__restrict __format, ...) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))); +extern int obstack_vprintf (struct obstack *__restrict __obstack, + const char *__restrict __format, + __gnuc_va_list __args) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))); + + + + + + + +extern void flockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern int ftrylockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void funlockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 949 "/usr/include/stdio.h" 3 4 +extern int __uflow (FILE *); +extern int __overflow (FILE *, int); +# 973 "/usr/include/stdio.h" 3 4 +} +# 137 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 + + + + + + +# 143 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" +{ +extern + + + + + + + +__attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int printf(const char*, ...); + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* malloc(size_t) +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void free(void*) +# 158 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 158 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +# 168 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +} + + + + + +# 1 "/usr/include/assert.h" 1 3 4 +# 64 "/usr/include/assert.h" 3 4 + +# 64 "/usr/include/assert.h" 3 4 +extern "C" { + + +extern void __assert_fail (const char *__assertion, const char *__file, + unsigned int __line, const char *__function) + noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + +extern void __assert_perror_fail (int __errnum, const char *__file, + unsigned int __line, const char *__function) + noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + + + +extern void __assert (const char *__assertion, const char *__file, int __line) + noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + +} +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 + + + +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" +{ +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void __assert_fail( + const char *, const char *, unsigned int, const char *) + +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; + + + + +} +# 267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new(std:: size_t) ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new[](std:: size_t) ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*) throw(); + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std:: size_t) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std:: size_t) throw(); + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new(std:: size_t, std::align_val_t); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new[](std:: size_t, std::align_val_t); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std::align_val_t) noexcept; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std::align_val_t) noexcept; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std:: size_t, std::align_val_t) noexcept; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std:: size_t, std::align_val_t) noexcept; +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 1 +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C" +{ +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int abs(int a) +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long int labs(long int a) +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long long int llabs(long long int a) +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fabs(double x) +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fabsf(float x) +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int min(const int a, const int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umin(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmin(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmin(const unsigned long long int a, const unsigned long long int b); +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fminf(float x, float y) +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmin(double x, double y) +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int max(const int a, const int b); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umax(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmax(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmax(const unsigned long long int a, const unsigned long long int b); +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaxf(float x, float y) +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmax(double, double) +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sin(double x) +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cos(double x) +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincos(double x, double *sptr, double *cptr) +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincosf(float x, float *sptr, float *cptr) +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tan(double x) +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sqrt(double x) +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rsqrt(double x); +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rsqrtf(float x); +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log2(double x) +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp2(double x) +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp2f(float x) +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp10(double x) +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp10f(float x) +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double expm1(double x) +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expm1f(float x) +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log2f(float x) +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log10(double x) +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log(double x) +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log1p(double x) +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log1pf(float x) +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double floor(double x) +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp(double x) +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cosh(double x) +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinh(double x) +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tanh(double x) +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acosh(double x) +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acoshf(float x) +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asinh(double x) +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinhf(float x) +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atanh(double x) +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanhf(float x) +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ldexp(double x, int exp) +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ldexpf(float x, int exp) +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double logb(double x) +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logbf(float x) +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogb(double x) +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogbf(float x) +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbn(double x, int n) +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalbnf(float x, int n) +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbln(double x, long int n) +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalblnf(float x, long int n) +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double frexp(double x, int *nptr) +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float frexpf(float x, int *nptr) +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double round(double x) +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float roundf(float x) +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lround(double x) +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lroundf(float x) +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llround(double x) +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llroundf(float x) +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1694 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rint(double x) +# 1694 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1694 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rintf(float x) +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrint(double x) +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrintf(float x) +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrint(double x) +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrintf(float x) +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nearbyint(double x) +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nearbyintf(float x) +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ceil(double x) +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double trunc(double x) +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float truncf(float x) +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fdim(double x, double y) +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fdimf(float x, float y) +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan2(double y, double x) +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan(double x) +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acos(double x) +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asin(double x) +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double hypot(double x, double y) +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rhypot(double x, double y) +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float hypotf(float x, float y) +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rhypotf(float x, float y) +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm3d(double a, double b, double c) +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm3d(double a, double b, double c) +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm4d(double a, double b, double c, double d) +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm4d(double a, double b, double c, double d) +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +__attribute__((device)) __attribute__((device_builtin)) double norm(int dim, double const * p) +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm(int dim, double const * p) +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnormf(int dim, float const * p) +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +__attribute__((device)) __attribute__((device_builtin)) float normf(int dim, float const * p) +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm3df(float a, float b, float c) +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm3df(float a, float b, float c) +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm4df(float a, float b, float c, float d) +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm4df(float a, float b, float c, float d) +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cbrt(double x) +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cbrtf(float x) +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2512 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rcbrt(double x); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rcbrtf(float x); +# 2556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinpi(double x) noexcept (true); +# 2579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinpif(float x) noexcept (true); +# 2601 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cospi(double x) noexcept (true); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cospif(float x) noexcept (true); +# 2636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospi(double x, double *sptr, double *cptr); +# 2649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospif(float x, float *sptr, float *cptr); +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double pow(double x, double y) +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double modf(double x, double *iptr) +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmod(double x, double y) +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remainder(double x, double y) +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remainderf(float x, float y) +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remquo(double x, double y, int *quo) +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remquof(float x, float y, int *quo) +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j0(double x) +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j0f(float x) +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j1(double x) +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j1f(float x) +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double jn(int n, double x) +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float jnf(int n, float x) +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y0(double x) +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y0f(float x) +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y1(double x) +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y1f(float x) +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double yn(int n, double x) +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ynf(int n, float x) +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i0(double x) +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i0f(float x) +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i1(double x) +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i1f(float x) +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erf(double x) +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erff(float x) +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfinv(double x); +# 3406 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfinvf(float x); +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfc(double x) +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcf(float x) +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double lgamma(double x) +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcinv(double x); +# 3534 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcinvf(float x); +# 3556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdfinv(double x); +# 3578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdfinvf(float x); +# 3597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdf(double x); +# 3616 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdff(float x); +# 3636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcx(double x); +# 3656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcxf(float x); +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float lgammaf(float x) +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tgamma(double x) +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tgammaf(float x) +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double copysign(double x, double y) +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float copysignf(float x, float y) +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nextafter(double x, double y) +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nextafterf(float x, float y) +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nan(const char *tagp) +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nanf(const char *tagp) +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinff(float) +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanf(float) +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finite(double) +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitef(float) +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbit(double) +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnan(double) +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinf(double) +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitf(float) +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fma(double x, double y, double z) +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaf(float x, float y, float z) +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitl(long double) +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitel(long double) +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinfl(long double) +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanl(long double) +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acosf(float x) +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinf(float x) +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanf(float x) +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atan2f(float y, float x) +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cosf(float x) +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinf(float x) +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanf(float x) +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float coshf(float x) +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinhf(float x) +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanhf(float x) +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logf(float x) +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expf(float x) +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log10f(float x) +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float modff(float x, float *iptr) +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float powf(float x, float y) +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sqrtf(float x) +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ceilf(float x) +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float floorf(float x) +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmodf(float x, float y) +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/requires_hosted.h" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 2 3 +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +extern "C++" { + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + struct __true_type { }; + struct __false_type { }; + + template + struct __truth_type + { typedef __false_type __type; }; + + template<> + struct __truth_type + { typedef __true_type __type; }; + + + + template + struct __traitor + { + enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; + typedef typename __truth_type<__value>::__type __type; + }; + + + template + struct __are_same + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __are_same<_Tp, _Tp> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_void + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_void + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_integer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 273 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +__extension__ template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; __extension__ template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template + struct __is_floating + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 367 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template + struct __is_pointer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __is_pointer<_Tp*> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_arithmetic + : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > + { }; + + + + + template + struct __is_scalar + : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > + { }; + + + + + template + struct __is_char + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_byte + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + enum class byte : unsigned char; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 471 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template struct iterator_traits; + + + template + struct __is_nonvolatile_trivially_copyable + { + enum { __value = __is_trivially_copyable(_Tp) }; + }; + + + + + template + struct __is_nonvolatile_trivially_copyable + { + enum { __value = 0 }; + }; + + + template + struct __memcpyable + { + enum { __value = 0 }; + }; + + template + struct __memcpyable<_Tp*, _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcpyable<_Tp*, const _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + + + + + + template + struct __memcmpable + { + enum { __value = 0 }; + }; + + + template + struct __memcmpable<_Tp*, _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcmpable + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcmpable<_Tp*, const _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + + + + + + + template::__value + + > + struct __is_memcmp_ordered + { + static const bool __value = _Tp(-1) > _Tp(1); + }; + + template + struct __is_memcmp_ordered<_Tp, false> + { + static const bool __value = false; + }; + + + template + struct __is_memcmp_ordered_with + { + static const bool __value = __is_memcmp_ordered<_Tp>::__value + && __is_memcmp_ordered<_Up>::__value; + }; + + template + struct __is_memcmp_ordered_with<_Tp, _Up, false> + { + static const bool __value = false; + }; +# 580 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template<> + struct __is_memcmp_ordered_with + { static constexpr bool __value = true; }; + + template + struct __is_memcmp_ordered_with<_Tp, std::byte, _SameSize> + { static constexpr bool __value = false; }; + + template + struct __is_memcmp_ordered_with + { static constexpr bool __value = false; }; + + + + + + template + struct __is_move_iterator + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + template + + inline _Iterator + __miter_base(_Iterator __it) + { return __it; } + + +} +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + + + + +extern "C++" { + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct __enable_if + { }; + + template + struct __enable_if + { typedef _Tp __type; }; + + + + template + struct __conditional_type + { typedef _Iftrue __type; }; + + template + struct __conditional_type + { typedef _Iffalse __type; }; + + + + template + struct __add_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned short __type; }; + + template<> + struct __add_unsigned + { typedef unsigned int __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __add_unsigned; + + template<> + struct __add_unsigned; + + + + template + struct __remove_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef short __type; }; + + template<> + struct __remove_unsigned + { typedef int __type; }; + + template<> + struct __remove_unsigned + { typedef long __type; }; + + template<> + struct __remove_unsigned + { typedef long long __type; }; + + + template<> + struct __remove_unsigned; + + template<> + struct __remove_unsigned; + + + + template + constexpr + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + constexpr + inline bool + __is_null_pointer(_Type) + { return false; } + + + constexpr bool + __is_null_pointer(std::nullptr_t) + { return true; } + + + + + template::__value> + struct __promote + { typedef double __type; }; + + + + + template + struct __promote<_Tp, false> + { }; + + template<> + struct __promote + { typedef long double __type; }; + + template<> + struct __promote + { typedef double __type; }; + + template<> + struct __promote + { typedef float __type; }; +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + template + using __promoted_t = decltype((typename __promote<_Tp>::__type(0) + ...)); + + + + template + using __promote_2 = __promote<__promoted_t<_Tp, _Up>>; + + template + using __promote_3 = __promote<__promoted_t<_Tp, _Up, _Vp>>; + + template + using __promote_4 = __promote<__promoted_t<_Tp, _Up, _Vp, _Wp>>; +# 269 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + +} +} +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + +# 1 "/usr/include/math.h" 1 3 4 +# 27 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/math.h" 2 3 4 + + + + + + +extern "C" { + + + + + +# 1 "/usr/include/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/bits/math-vector.h" 3 4 +# 1 "/usr/include/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/bits/math-vector.h" 2 3 4 +# 41 "/usr/include/math.h" 2 3 4 +# 156 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/flt-eval-method.h" 1 3 4 +# 157 "/usr/include/math.h" 2 3 4 +# 167 "/usr/include/math.h" 3 4 +typedef float float_t; +typedef double double_t; +# 208 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/fp-logb.h" 1 3 4 +# 209 "/usr/include/math.h" 2 3 4 +# 251 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/fp-fast.h" 1 3 4 +# 252 "/usr/include/math.h" 2 3 4 + + + +enum + { + FP_INT_UPWARD = + + 0, + FP_INT_DOWNWARD = + + 1, + FP_INT_TOWARDZERO = + + 2, + FP_INT_TONEARESTFROMZERO = + + 3, + FP_INT_TONEAREST = + + 4, + }; + + +# 1 "/usr/include/bits/mathcalls-macros.h" 1 3 4 +# 276 "/usr/include/math.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassify (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbit (double __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinf (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finite (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnan (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsig (double __x, double __y) noexcept (true); + + +extern int __issignaling (double __value) noexcept (true) + __attribute__ ((__const__)); +# 282 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern double acos (double __x) noexcept (true); extern double __acos (double __x) noexcept (true); + + extern double asin (double __x) noexcept (true); extern double __asin (double __x) noexcept (true); + + extern double atan (double __x) noexcept (true); extern double __atan (double __x) noexcept (true); + + extern double atan2 (double __y, double __x) noexcept (true); extern double __atan2 (double __y, double __x) noexcept (true); + + + extern double cos (double __x) noexcept (true); extern double __cos (double __x) noexcept (true); + + extern double sin (double __x) noexcept (true); extern double __sin (double __x) noexcept (true); + + extern double tan (double __x) noexcept (true); extern double __tan (double __x) noexcept (true); + + + +extern double acospi (double __x) noexcept (true); extern double __acospi (double __x) noexcept (true); + +extern double asinpi (double __x) noexcept (true); extern double __asinpi (double __x) noexcept (true); + +extern double atanpi (double __x) noexcept (true); extern double __atanpi (double __x) noexcept (true); + +extern double atan2pi (double __y, double __x) noexcept (true); extern double __atan2pi (double __y, double __x) noexcept (true); + + + extern double cospi (double __x) noexcept (true); extern double __cospi (double __x) noexcept (true); + + extern double sinpi (double __x) noexcept (true); extern double __sinpi (double __x) noexcept (true); + + extern double tanpi (double __x) noexcept (true); extern double __tanpi (double __x) noexcept (true); + + + + + + extern double cosh (double __x) noexcept (true); extern double __cosh (double __x) noexcept (true); + + extern double sinh (double __x) noexcept (true); extern double __sinh (double __x) noexcept (true); + + extern double tanh (double __x) noexcept (true); extern double __tanh (double __x) noexcept (true); + + + + extern void sincos (double __x, double *__sinx, double *__cosx) noexcept (true); extern void __sincos (double __x, double *__sinx, double *__cosx) noexcept (true) + ; + + + + + extern double acosh (double __x) noexcept (true); extern double __acosh (double __x) noexcept (true); + + extern double asinh (double __x) noexcept (true); extern double __asinh (double __x) noexcept (true); + + extern double atanh (double __x) noexcept (true); extern double __atanh (double __x) noexcept (true); + + + + + + extern double exp (double __x) noexcept (true); extern double __exp (double __x) noexcept (true); + + +extern double frexp (double __x, int *__exponent) noexcept (true); extern double __frexp (double __x, int *__exponent) noexcept (true); + + +extern double ldexp (double __x, int __exponent) noexcept (true); extern double __ldexp (double __x, int __exponent) noexcept (true); + + + extern double log (double __x) noexcept (true); extern double __log (double __x) noexcept (true); + + + extern double log10 (double __x) noexcept (true); extern double __log10 (double __x) noexcept (true); + + +extern double modf (double __x, double *__iptr) noexcept (true); extern double __modf (double __x, double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern double exp10 (double __x) noexcept (true); extern double __exp10 (double __x) noexcept (true); + + +extern double exp2m1 (double __x) noexcept (true); extern double __exp2m1 (double __x) noexcept (true); + + +extern double exp10m1 (double __x) noexcept (true); extern double __exp10m1 (double __x) noexcept (true); + + +extern double log2p1 (double __x) noexcept (true); extern double __log2p1 (double __x) noexcept (true); + + +extern double log10p1 (double __x) noexcept (true); extern double __log10p1 (double __x) noexcept (true); + + + extern double logp1 (double __x) noexcept (true); extern double __logp1 (double __x) noexcept (true); + + + + + extern double expm1 (double __x) noexcept (true); extern double __expm1 (double __x) noexcept (true); + + + extern double log1p (double __x) noexcept (true); extern double __log1p (double __x) noexcept (true); + + +extern double logb (double __x) noexcept (true); extern double __logb (double __x) noexcept (true); + + + + + extern double exp2 (double __x) noexcept (true); extern double __exp2 (double __x) noexcept (true); + + + extern double log2 (double __x) noexcept (true); extern double __log2 (double __x) noexcept (true); + + + + + + + extern double pow (double __x, double __y) noexcept (true); extern double __pow (double __x, double __y) noexcept (true); + + +extern double sqrt (double __x) noexcept (true); extern double __sqrt (double __x) noexcept (true); + + + + extern double hypot (double __x, double __y) noexcept (true); extern double __hypot (double __x, double __y) noexcept (true); + + + + + extern double cbrt (double __x) noexcept (true); extern double __cbrt (double __x) noexcept (true); + + + + + + +extern double ceil (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fabs (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double floor (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fmod (double __x, double __y) noexcept (true); extern double __fmod (double __x, double __y) noexcept (true); +# 216 "/usr/include/bits/mathcalls.h" 3 4 +extern int finite (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern double drem (double __x, double __y) noexcept (true); extern double __drem (double __x, double __y) noexcept (true); + + + +extern double significand (double __x) noexcept (true); extern double __significand (double __x) noexcept (true); + + + + + + +extern double copysign (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern double nan (const char *__tagb) noexcept (true); extern double __nan (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern double j0 (double) noexcept (true); extern double __j0 (double) noexcept (true); +extern double j1 (double) noexcept (true); extern double __j1 (double) noexcept (true); +extern double jn (int, double) noexcept (true); extern double __jn (int, double) noexcept (true); +extern double y0 (double) noexcept (true); extern double __y0 (double) noexcept (true); +extern double y1 (double) noexcept (true); extern double __y1 (double) noexcept (true); +extern double yn (int, double) noexcept (true); extern double __yn (int, double) noexcept (true); + + + + + + extern double erf (double) noexcept (true); extern double __erf (double) noexcept (true); + extern double erfc (double) noexcept (true); extern double __erfc (double) noexcept (true); +extern double lgamma (double) noexcept (true); extern double __lgamma (double) noexcept (true); + + + + +extern double tgamma (double) noexcept (true); extern double __tgamma (double) noexcept (true); + + + + + +extern double gamma (double) noexcept (true); extern double __gamma (double) noexcept (true); + + + + + + + +extern double lgamma_r (double, int *__signgamp) noexcept (true); extern double __lgamma_r (double, int *__signgamp) noexcept (true); + + + + + + +extern double rint (double __x) noexcept (true); extern double __rint (double __x) noexcept (true); + + +extern double nextafter (double __x, double __y) noexcept (true); extern double __nextafter (double __x, double __y) noexcept (true); + +extern double nexttoward (double __x, long double __y) noexcept (true); extern double __nexttoward (double __x, long double __y) noexcept (true); + + + + +extern double nextdown (double __x) noexcept (true); extern double __nextdown (double __x) noexcept (true); + +extern double nextup (double __x) noexcept (true); extern double __nextup (double __x) noexcept (true); + + + +extern double remainder (double __x, double __y) noexcept (true); extern double __remainder (double __x, double __y) noexcept (true); + + + +extern double scalbn (double __x, int __n) noexcept (true); extern double __scalbn (double __x, int __n) noexcept (true); + + + +extern int ilogb (double __x) noexcept (true); extern int __ilogb (double __x) noexcept (true); + + + + +extern long int llogb (double __x) noexcept (true); extern long int __llogb (double __x) noexcept (true); + + + + +extern double scalbln (double __x, long int __n) noexcept (true); extern double __scalbln (double __x, long int __n) noexcept (true); + + + +extern double nearbyint (double __x) noexcept (true); extern double __nearbyint (double __x) noexcept (true); + + + +extern double round (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern double trunc (double __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern double remquo (double __x, double __y, int *__quo) noexcept (true); extern double __remquo (double __x, double __y, int *__quo) noexcept (true); + + + + + + +extern long int lrint (double __x) noexcept (true); extern long int __lrint (double __x) noexcept (true); +__extension__ +extern long long int llrint (double __x) noexcept (true); extern long long int __llrint (double __x) noexcept (true); + + + +extern long int lround (double __x) noexcept (true); extern long int __lround (double __x) noexcept (true); +__extension__ +extern long long int llround (double __x) noexcept (true); extern long long int __llround (double __x) noexcept (true); + + + +extern double fdim (double __x, double __y) noexcept (true); extern double __fdim (double __x, double __y) noexcept (true); + + + +extern double fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmin (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + +extern double fma (double __x, double __y, double __z) noexcept (true); extern double __fma (double __x, double __y, double __z) noexcept (true); + + + + +extern double roundeven (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalize (double *__cx, const double *__x) noexcept (true); + + + + + + +extern double fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern double fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorder (const double *__x, const double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermag (const double *__x, const double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern double getpayload (const double *__x) noexcept (true); extern double __getpayload (const double *__x) noexcept (true); + + +extern int setpayload (double *__x, double __payload) noexcept (true); + + +extern int setpayloadsig (double *__x, double __payload) noexcept (true); + + + + + + + +extern double scalb (double __x, double __n) noexcept (true); extern double __scalb (double __x, double __n) noexcept (true); +# 283 "/usr/include/math.h" 2 3 4 +# 298 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitf (float __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinff (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitef (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanf (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigf (float __x, float __y) noexcept (true); + + +extern int __issignalingf (float __value) noexcept (true) + __attribute__ ((__const__)); +# 299 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern float acosf (float __x) noexcept (true); extern float __acosf (float __x) noexcept (true); + + extern float asinf (float __x) noexcept (true); extern float __asinf (float __x) noexcept (true); + + extern float atanf (float __x) noexcept (true); extern float __atanf (float __x) noexcept (true); + + extern float atan2f (float __y, float __x) noexcept (true); extern float __atan2f (float __y, float __x) noexcept (true); + + + extern float cosf (float __x) noexcept (true); extern float __cosf (float __x) noexcept (true); + + extern float sinf (float __x) noexcept (true); extern float __sinf (float __x) noexcept (true); + + extern float tanf (float __x) noexcept (true); extern float __tanf (float __x) noexcept (true); + + + +extern float acospif (float __x) noexcept (true); extern float __acospif (float __x) noexcept (true); + +extern float asinpif (float __x) noexcept (true); extern float __asinpif (float __x) noexcept (true); + +extern float atanpif (float __x) noexcept (true); extern float __atanpif (float __x) noexcept (true); + +extern float atan2pif (float __y, float __x) noexcept (true); extern float __atan2pif (float __y, float __x) noexcept (true); + + + extern float cospif (float __x) noexcept (true); extern float __cospif (float __x) noexcept (true); + + extern float sinpif (float __x) noexcept (true); extern float __sinpif (float __x) noexcept (true); + + extern float tanpif (float __x) noexcept (true); extern float __tanpif (float __x) noexcept (true); + + + + + + extern float coshf (float __x) noexcept (true); extern float __coshf (float __x) noexcept (true); + + extern float sinhf (float __x) noexcept (true); extern float __sinhf (float __x) noexcept (true); + + extern float tanhf (float __x) noexcept (true); extern float __tanhf (float __x) noexcept (true); + + + + extern void sincosf (float __x, float *__sinx, float *__cosx) noexcept (true); extern void __sincosf (float __x, float *__sinx, float *__cosx) noexcept (true) + ; + + + + + extern float acoshf (float __x) noexcept (true); extern float __acoshf (float __x) noexcept (true); + + extern float asinhf (float __x) noexcept (true); extern float __asinhf (float __x) noexcept (true); + + extern float atanhf (float __x) noexcept (true); extern float __atanhf (float __x) noexcept (true); + + + + + + extern float expf (float __x) noexcept (true); extern float __expf (float __x) noexcept (true); + + +extern float frexpf (float __x, int *__exponent) noexcept (true); extern float __frexpf (float __x, int *__exponent) noexcept (true); + + +extern float ldexpf (float __x, int __exponent) noexcept (true); extern float __ldexpf (float __x, int __exponent) noexcept (true); + + + extern float logf (float __x) noexcept (true); extern float __logf (float __x) noexcept (true); + + + extern float log10f (float __x) noexcept (true); extern float __log10f (float __x) noexcept (true); + + +extern float modff (float __x, float *__iptr) noexcept (true); extern float __modff (float __x, float *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern float exp10f (float __x) noexcept (true); extern float __exp10f (float __x) noexcept (true); + + +extern float exp2m1f (float __x) noexcept (true); extern float __exp2m1f (float __x) noexcept (true); + + +extern float exp10m1f (float __x) noexcept (true); extern float __exp10m1f (float __x) noexcept (true); + + +extern float log2p1f (float __x) noexcept (true); extern float __log2p1f (float __x) noexcept (true); + + +extern float log10p1f (float __x) noexcept (true); extern float __log10p1f (float __x) noexcept (true); + + + extern float logp1f (float __x) noexcept (true); extern float __logp1f (float __x) noexcept (true); + + + + + extern float expm1f (float __x) noexcept (true); extern float __expm1f (float __x) noexcept (true); + + + extern float log1pf (float __x) noexcept (true); extern float __log1pf (float __x) noexcept (true); + + +extern float logbf (float __x) noexcept (true); extern float __logbf (float __x) noexcept (true); + + + + + extern float exp2f (float __x) noexcept (true); extern float __exp2f (float __x) noexcept (true); + + + extern float log2f (float __x) noexcept (true); extern float __log2f (float __x) noexcept (true); + + + + + + + extern float powf (float __x, float __y) noexcept (true); extern float __powf (float __x, float __y) noexcept (true); + + +extern float sqrtf (float __x) noexcept (true); extern float __sqrtf (float __x) noexcept (true); + + + + extern float hypotf (float __x, float __y) noexcept (true); extern float __hypotf (float __x, float __y) noexcept (true); + + + + + extern float cbrtf (float __x) noexcept (true); extern float __cbrtf (float __x) noexcept (true); + + + + + + +extern float ceilf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fabsf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float floorf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fmodf (float __x, float __y) noexcept (true); extern float __fmodf (float __x, float __y) noexcept (true); +# 210 "/usr/include/bits/mathcalls.h" 3 4 +extern int isinff (float __value) noexcept (true) + __attribute__ ((__const__)); + + + + +extern int finitef (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern float dremf (float __x, float __y) noexcept (true); extern float __dremf (float __x, float __y) noexcept (true); + + + +extern float significandf (float __x) noexcept (true); extern float __significandf (float __x) noexcept (true); + + + + + + +extern float copysignf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern float nanf (const char *__tagb) noexcept (true); extern float __nanf (const char *__tagb) noexcept (true); +# 246 "/usr/include/bits/mathcalls.h" 3 4 +extern int isnanf (float __value) noexcept (true) + __attribute__ ((__const__)); + + + + + +extern float j0f (float) noexcept (true); extern float __j0f (float) noexcept (true); +extern float j1f (float) noexcept (true); extern float __j1f (float) noexcept (true); +extern float jnf (int, float) noexcept (true); extern float __jnf (int, float) noexcept (true); +extern float y0f (float) noexcept (true); extern float __y0f (float) noexcept (true); +extern float y1f (float) noexcept (true); extern float __y1f (float) noexcept (true); +extern float ynf (int, float) noexcept (true); extern float __ynf (int, float) noexcept (true); + + + + + + extern float erff (float) noexcept (true); extern float __erff (float) noexcept (true); + extern float erfcf (float) noexcept (true); extern float __erfcf (float) noexcept (true); +extern float lgammaf (float) noexcept (true); extern float __lgammaf (float) noexcept (true); + + + + +extern float tgammaf (float) noexcept (true); extern float __tgammaf (float) noexcept (true); + + + + + +extern float gammaf (float) noexcept (true); extern float __gammaf (float) noexcept (true); + + + + + + + +extern float lgammaf_r (float, int *__signgamp) noexcept (true); extern float __lgammaf_r (float, int *__signgamp) noexcept (true); + + + + + + +extern float rintf (float __x) noexcept (true); extern float __rintf (float __x) noexcept (true); + + +extern float nextafterf (float __x, float __y) noexcept (true); extern float __nextafterf (float __x, float __y) noexcept (true); + +extern float nexttowardf (float __x, long double __y) noexcept (true); extern float __nexttowardf (float __x, long double __y) noexcept (true); + + + + +extern float nextdownf (float __x) noexcept (true); extern float __nextdownf (float __x) noexcept (true); + +extern float nextupf (float __x) noexcept (true); extern float __nextupf (float __x) noexcept (true); + + + +extern float remainderf (float __x, float __y) noexcept (true); extern float __remainderf (float __x, float __y) noexcept (true); + + + +extern float scalbnf (float __x, int __n) noexcept (true); extern float __scalbnf (float __x, int __n) noexcept (true); + + + +extern int ilogbf (float __x) noexcept (true); extern int __ilogbf (float __x) noexcept (true); + + + + +extern long int llogbf (float __x) noexcept (true); extern long int __llogbf (float __x) noexcept (true); + + + + +extern float scalblnf (float __x, long int __n) noexcept (true); extern float __scalblnf (float __x, long int __n) noexcept (true); + + + +extern float nearbyintf (float __x) noexcept (true); extern float __nearbyintf (float __x) noexcept (true); + + + +extern float roundf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern float truncf (float __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern float remquof (float __x, float __y, int *__quo) noexcept (true); extern float __remquof (float __x, float __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf (float __x) noexcept (true); extern long int __lrintf (float __x) noexcept (true); +__extension__ +extern long long int llrintf (float __x) noexcept (true); extern long long int __llrintf (float __x) noexcept (true); + + + +extern long int lroundf (float __x) noexcept (true); extern long int __lroundf (float __x) noexcept (true); +__extension__ +extern long long int llroundf (float __x) noexcept (true); extern long long int __llroundf (float __x) noexcept (true); + + + +extern float fdimf (float __x, float __y) noexcept (true); extern float __fdimf (float __x, float __y) noexcept (true); + + + +extern float fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + +extern float fmaf (float __x, float __y, float __z) noexcept (true); extern float __fmaf (float __x, float __y, float __z) noexcept (true); + + + + +extern float roundevenf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef (float *__cx, const float *__x) noexcept (true); + + + + + + +extern float fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern float fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf (const float *__x, const float *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf (const float *__x, const float *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern float getpayloadf (const float *__x) noexcept (true); extern float __getpayloadf (const float *__x) noexcept (true); + + +extern int setpayloadf (float *__x, float __payload) noexcept (true); + + +extern int setpayloadsigf (float *__x, float __payload) noexcept (true); + + + + + + + +extern float scalbf (float __x, float __n) noexcept (true); extern float __scalbf (float __x, float __n) noexcept (true); +# 300 "/usr/include/math.h" 2 3 4 +# 367 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinfl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitel (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigl (long double __x, long double __y) noexcept (true); + + +extern int __issignalingl (long double __value) noexcept (true) + __attribute__ ((__const__)); +# 368 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern long double acosl (long double __x) noexcept (true); extern long double __acosl (long double __x) noexcept (true); + + extern long double asinl (long double __x) noexcept (true); extern long double __asinl (long double __x) noexcept (true); + + extern long double atanl (long double __x) noexcept (true); extern long double __atanl (long double __x) noexcept (true); + + extern long double atan2l (long double __y, long double __x) noexcept (true); extern long double __atan2l (long double __y, long double __x) noexcept (true); + + + extern long double cosl (long double __x) noexcept (true); extern long double __cosl (long double __x) noexcept (true); + + extern long double sinl (long double __x) noexcept (true); extern long double __sinl (long double __x) noexcept (true); + + extern long double tanl (long double __x) noexcept (true); extern long double __tanl (long double __x) noexcept (true); + + + +extern long double acospil (long double __x) noexcept (true); extern long double __acospil (long double __x) noexcept (true); + +extern long double asinpil (long double __x) noexcept (true); extern long double __asinpil (long double __x) noexcept (true); + +extern long double atanpil (long double __x) noexcept (true); extern long double __atanpil (long double __x) noexcept (true); + +extern long double atan2pil (long double __y, long double __x) noexcept (true); extern long double __atan2pil (long double __y, long double __x) noexcept (true); + + + extern long double cospil (long double __x) noexcept (true); extern long double __cospil (long double __x) noexcept (true); + + extern long double sinpil (long double __x) noexcept (true); extern long double __sinpil (long double __x) noexcept (true); + + extern long double tanpil (long double __x) noexcept (true); extern long double __tanpil (long double __x) noexcept (true); + + + + + + extern long double coshl (long double __x) noexcept (true); extern long double __coshl (long double __x) noexcept (true); + + extern long double sinhl (long double __x) noexcept (true); extern long double __sinhl (long double __x) noexcept (true); + + extern long double tanhl (long double __x) noexcept (true); extern long double __tanhl (long double __x) noexcept (true); + + + + extern void sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true) + ; + + + + + extern long double acoshl (long double __x) noexcept (true); extern long double __acoshl (long double __x) noexcept (true); + + extern long double asinhl (long double __x) noexcept (true); extern long double __asinhl (long double __x) noexcept (true); + + extern long double atanhl (long double __x) noexcept (true); extern long double __atanhl (long double __x) noexcept (true); + + + + + + extern long double expl (long double __x) noexcept (true); extern long double __expl (long double __x) noexcept (true); + + +extern long double frexpl (long double __x, int *__exponent) noexcept (true); extern long double __frexpl (long double __x, int *__exponent) noexcept (true); + + +extern long double ldexpl (long double __x, int __exponent) noexcept (true); extern long double __ldexpl (long double __x, int __exponent) noexcept (true); + + + extern long double logl (long double __x) noexcept (true); extern long double __logl (long double __x) noexcept (true); + + + extern long double log10l (long double __x) noexcept (true); extern long double __log10l (long double __x) noexcept (true); + + +extern long double modfl (long double __x, long double *__iptr) noexcept (true); extern long double __modfl (long double __x, long double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern long double exp10l (long double __x) noexcept (true); extern long double __exp10l (long double __x) noexcept (true); + + +extern long double exp2m1l (long double __x) noexcept (true); extern long double __exp2m1l (long double __x) noexcept (true); + + +extern long double exp10m1l (long double __x) noexcept (true); extern long double __exp10m1l (long double __x) noexcept (true); + + +extern long double log2p1l (long double __x) noexcept (true); extern long double __log2p1l (long double __x) noexcept (true); + + +extern long double log10p1l (long double __x) noexcept (true); extern long double __log10p1l (long double __x) noexcept (true); + + + extern long double logp1l (long double __x) noexcept (true); extern long double __logp1l (long double __x) noexcept (true); + + + + + extern long double expm1l (long double __x) noexcept (true); extern long double __expm1l (long double __x) noexcept (true); + + + extern long double log1pl (long double __x) noexcept (true); extern long double __log1pl (long double __x) noexcept (true); + + +extern long double logbl (long double __x) noexcept (true); extern long double __logbl (long double __x) noexcept (true); + + + + + extern long double exp2l (long double __x) noexcept (true); extern long double __exp2l (long double __x) noexcept (true); + + + extern long double log2l (long double __x) noexcept (true); extern long double __log2l (long double __x) noexcept (true); + + + + + + + extern long double powl (long double __x, long double __y) noexcept (true); extern long double __powl (long double __x, long double __y) noexcept (true); + + +extern long double sqrtl (long double __x) noexcept (true); extern long double __sqrtl (long double __x) noexcept (true); + + + + extern long double hypotl (long double __x, long double __y) noexcept (true); extern long double __hypotl (long double __x, long double __y) noexcept (true); + + + + + extern long double cbrtl (long double __x) noexcept (true); extern long double __cbrtl (long double __x) noexcept (true); + + + + + + +extern long double ceill (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fabsl (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double floorl (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmodl (long double __x, long double __y) noexcept (true); extern long double __fmodl (long double __x, long double __y) noexcept (true); +# 210 "/usr/include/bits/mathcalls.h" 3 4 +extern int isinfl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + + +extern int finitel (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern long double dreml (long double __x, long double __y) noexcept (true); extern long double __dreml (long double __x, long double __y) noexcept (true); + + + +extern long double significandl (long double __x) noexcept (true); extern long double __significandl (long double __x) noexcept (true); + + + + + + +extern long double copysignl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double nanl (const char *__tagb) noexcept (true); extern long double __nanl (const char *__tagb) noexcept (true); +# 246 "/usr/include/bits/mathcalls.h" 3 4 +extern int isnanl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + + + +extern long double j0l (long double) noexcept (true); extern long double __j0l (long double) noexcept (true); +extern long double j1l (long double) noexcept (true); extern long double __j1l (long double) noexcept (true); +extern long double jnl (int, long double) noexcept (true); extern long double __jnl (int, long double) noexcept (true); +extern long double y0l (long double) noexcept (true); extern long double __y0l (long double) noexcept (true); +extern long double y1l (long double) noexcept (true); extern long double __y1l (long double) noexcept (true); +extern long double ynl (int, long double) noexcept (true); extern long double __ynl (int, long double) noexcept (true); + + + + + + extern long double erfl (long double) noexcept (true); extern long double __erfl (long double) noexcept (true); + extern long double erfcl (long double) noexcept (true); extern long double __erfcl (long double) noexcept (true); +extern long double lgammal (long double) noexcept (true); extern long double __lgammal (long double) noexcept (true); + + + + +extern long double tgammal (long double) noexcept (true); extern long double __tgammal (long double) noexcept (true); + + + + + +extern long double gammal (long double) noexcept (true); extern long double __gammal (long double) noexcept (true); + + + + + + + +extern long double lgammal_r (long double, int *__signgamp) noexcept (true); extern long double __lgammal_r (long double, int *__signgamp) noexcept (true); + + + + + + +extern long double rintl (long double __x) noexcept (true); extern long double __rintl (long double __x) noexcept (true); + + +extern long double nextafterl (long double __x, long double __y) noexcept (true); extern long double __nextafterl (long double __x, long double __y) noexcept (true); + +extern long double nexttowardl (long double __x, long double __y) noexcept (true); extern long double __nexttowardl (long double __x, long double __y) noexcept (true); + + + + +extern long double nextdownl (long double __x) noexcept (true); extern long double __nextdownl (long double __x) noexcept (true); + +extern long double nextupl (long double __x) noexcept (true); extern long double __nextupl (long double __x) noexcept (true); + + + +extern long double remainderl (long double __x, long double __y) noexcept (true); extern long double __remainderl (long double __x, long double __y) noexcept (true); + + + +extern long double scalbnl (long double __x, int __n) noexcept (true); extern long double __scalbnl (long double __x, int __n) noexcept (true); + + + +extern int ilogbl (long double __x) noexcept (true); extern int __ilogbl (long double __x) noexcept (true); + + + + +extern long int llogbl (long double __x) noexcept (true); extern long int __llogbl (long double __x) noexcept (true); + + + + +extern long double scalblnl (long double __x, long int __n) noexcept (true); extern long double __scalblnl (long double __x, long int __n) noexcept (true); + + + +extern long double nearbyintl (long double __x) noexcept (true); extern long double __nearbyintl (long double __x) noexcept (true); + + + +extern long double roundl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern long double truncl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double remquol (long double __x, long double __y, int *__quo) noexcept (true); extern long double __remquol (long double __x, long double __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintl (long double __x) noexcept (true); extern long int __lrintl (long double __x) noexcept (true); +__extension__ +extern long long int llrintl (long double __x) noexcept (true); extern long long int __llrintl (long double __x) noexcept (true); + + + +extern long int lroundl (long double __x) noexcept (true); extern long int __lroundl (long double __x) noexcept (true); +__extension__ +extern long long int llroundl (long double __x) noexcept (true); extern long long int __llroundl (long double __x) noexcept (true); + + + +extern long double fdiml (long double __x, long double __y) noexcept (true); extern long double __fdiml (long double __x, long double __y) noexcept (true); + + + +extern long double fmaxl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + +extern long double fmal (long double __x, long double __y, long double __z) noexcept (true); extern long double __fmal (long double __x, long double __y, long double __z) noexcept (true); + + + + +extern long double roundevenl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizel (long double *__cx, const long double *__x) noexcept (true); + + + + + + +extern long double fmaxmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double fmaximuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderl (const long double *__x, const long double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagl (const long double *__x, const long double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern long double getpayloadl (const long double *__x) noexcept (true); extern long double __getpayloadl (const long double *__x) noexcept (true); + + +extern int setpayloadl (long double *__x, long double __payload) noexcept (true); + + +extern int setpayloadsigl (long double *__x, long double __payload) noexcept (true); + + + + + + + +extern long double scalbl (long double __x, long double __n) noexcept (true); extern long double __scalbl (long double __x, long double __n) noexcept (true); +# 369 "/usr/include/math.h" 2 3 4 +# 419 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float32 acosf32 (_Float32 __x) noexcept (true); extern _Float32 __acosf32 (_Float32 __x) noexcept (true); + + extern _Float32 asinf32 (_Float32 __x) noexcept (true); extern _Float32 __asinf32 (_Float32 __x) noexcept (true); + + extern _Float32 atanf32 (_Float32 __x) noexcept (true); extern _Float32 __atanf32 (_Float32 __x) noexcept (true); + + extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); + + + extern _Float32 cosf32 (_Float32 __x) noexcept (true); extern _Float32 __cosf32 (_Float32 __x) noexcept (true); + + extern _Float32 sinf32 (_Float32 __x) noexcept (true); extern _Float32 __sinf32 (_Float32 __x) noexcept (true); + + extern _Float32 tanf32 (_Float32 __x) noexcept (true); extern _Float32 __tanf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 acospif32 (_Float32 __x) noexcept (true); extern _Float32 __acospif32 (_Float32 __x) noexcept (true); + +extern _Float32 asinpif32 (_Float32 __x) noexcept (true); extern _Float32 __asinpif32 (_Float32 __x) noexcept (true); + +extern _Float32 atanpif32 (_Float32 __x) noexcept (true); extern _Float32 __atanpif32 (_Float32 __x) noexcept (true); + +extern _Float32 atan2pif32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2pif32 (_Float32 __y, _Float32 __x) noexcept (true); + + + extern _Float32 cospif32 (_Float32 __x) noexcept (true); extern _Float32 __cospif32 (_Float32 __x) noexcept (true); + + extern _Float32 sinpif32 (_Float32 __x) noexcept (true); extern _Float32 __sinpif32 (_Float32 __x) noexcept (true); + + extern _Float32 tanpif32 (_Float32 __x) noexcept (true); extern _Float32 __tanpif32 (_Float32 __x) noexcept (true); + + + + + + extern _Float32 coshf32 (_Float32 __x) noexcept (true); extern _Float32 __coshf32 (_Float32 __x) noexcept (true); + + extern _Float32 sinhf32 (_Float32 __x) noexcept (true); extern _Float32 __sinhf32 (_Float32 __x) noexcept (true); + + extern _Float32 tanhf32 (_Float32 __x) noexcept (true); extern _Float32 __tanhf32 (_Float32 __x) noexcept (true); + + + + extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true) + ; + + + + + extern _Float32 acoshf32 (_Float32 __x) noexcept (true); extern _Float32 __acoshf32 (_Float32 __x) noexcept (true); + + extern _Float32 asinhf32 (_Float32 __x) noexcept (true); extern _Float32 __asinhf32 (_Float32 __x) noexcept (true); + + extern _Float32 atanhf32 (_Float32 __x) noexcept (true); extern _Float32 __atanhf32 (_Float32 __x) noexcept (true); + + + + + + extern _Float32 expf32 (_Float32 __x) noexcept (true); extern _Float32 __expf32 (_Float32 __x) noexcept (true); + + +extern _Float32 frexpf32 (_Float32 __x, int *__exponent) noexcept (true); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) noexcept (true); + + +extern _Float32 ldexpf32 (_Float32 __x, int __exponent) noexcept (true); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) noexcept (true); + + + extern _Float32 logf32 (_Float32 __x) noexcept (true); extern _Float32 __logf32 (_Float32 __x) noexcept (true); + + + extern _Float32 log10f32 (_Float32 __x) noexcept (true); extern _Float32 __log10f32 (_Float32 __x) noexcept (true); + + +extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float32 exp10f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10f32 (_Float32 __x) noexcept (true); + + +extern _Float32 exp2m1f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2m1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 exp10m1f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10m1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 log2p1f32 (_Float32 __x) noexcept (true); extern _Float32 __log2p1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 log10p1f32 (_Float32 __x) noexcept (true); extern _Float32 __log10p1f32 (_Float32 __x) noexcept (true); + + + extern _Float32 logp1f32 (_Float32 __x) noexcept (true); extern _Float32 __logp1f32 (_Float32 __x) noexcept (true); + + + + + extern _Float32 expm1f32 (_Float32 __x) noexcept (true); extern _Float32 __expm1f32 (_Float32 __x) noexcept (true); + + + extern _Float32 log1pf32 (_Float32 __x) noexcept (true); extern _Float32 __log1pf32 (_Float32 __x) noexcept (true); + + +extern _Float32 logbf32 (_Float32 __x) noexcept (true); extern _Float32 __logbf32 (_Float32 __x) noexcept (true); + + + + + extern _Float32 exp2f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2f32 (_Float32 __x) noexcept (true); + + + extern _Float32 log2f32 (_Float32 __x) noexcept (true); extern _Float32 __log2f32 (_Float32 __x) noexcept (true); + + + + + + + extern _Float32 powf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) noexcept (true); + + +extern _Float32 sqrtf32 (_Float32 __x) noexcept (true); extern _Float32 __sqrtf32 (_Float32 __x) noexcept (true); + + + + extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + + + extern _Float32 cbrtf32 (_Float32 __x) noexcept (true); extern _Float32 __cbrtf32 (_Float32 __x) noexcept (true); + + + + + + +extern _Float32 ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fabsf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 floorf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 nanf32 (const char *__tagb) noexcept (true); extern _Float32 __nanf32 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 j0f32 (_Float32) noexcept (true); extern _Float32 __j0f32 (_Float32) noexcept (true); +extern _Float32 j1f32 (_Float32) noexcept (true); extern _Float32 __j1f32 (_Float32) noexcept (true); +extern _Float32 jnf32 (int, _Float32) noexcept (true); extern _Float32 __jnf32 (int, _Float32) noexcept (true); +extern _Float32 y0f32 (_Float32) noexcept (true); extern _Float32 __y0f32 (_Float32) noexcept (true); +extern _Float32 y1f32 (_Float32) noexcept (true); extern _Float32 __y1f32 (_Float32) noexcept (true); +extern _Float32 ynf32 (int, _Float32) noexcept (true); extern _Float32 __ynf32 (int, _Float32) noexcept (true); + + + + + + extern _Float32 erff32 (_Float32) noexcept (true); extern _Float32 __erff32 (_Float32) noexcept (true); + extern _Float32 erfcf32 (_Float32) noexcept (true); extern _Float32 __erfcf32 (_Float32) noexcept (true); +extern _Float32 lgammaf32 (_Float32) noexcept (true); extern _Float32 __lgammaf32 (_Float32) noexcept (true); + + + + +extern _Float32 tgammaf32 (_Float32) noexcept (true); extern _Float32 __tgammaf32 (_Float32) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 lgammaf32_r (_Float32, int *__signgamp) noexcept (true); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) noexcept (true); + + + + + + +extern _Float32 rintf32 (_Float32 __x) noexcept (true); extern _Float32 __rintf32 (_Float32 __x) noexcept (true); + + +extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + + + + +extern _Float32 nextdownf32 (_Float32 __x) noexcept (true); extern _Float32 __nextdownf32 (_Float32 __x) noexcept (true); + +extern _Float32 nextupf32 (_Float32 __x) noexcept (true); extern _Float32 __nextupf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + +extern _Float32 scalbnf32 (_Float32 __x, int __n) noexcept (true); extern _Float32 __scalbnf32 (_Float32 __x, int __n) noexcept (true); + + + +extern int ilogbf32 (_Float32 __x) noexcept (true); extern int __ilogbf32 (_Float32 __x) noexcept (true); + + + + +extern long int llogbf32 (_Float32 __x) noexcept (true); extern long int __llogbf32 (_Float32 __x) noexcept (true); + + + + +extern _Float32 scalblnf32 (_Float32 __x, long int __n) noexcept (true); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) noexcept (true); + + + +extern _Float32 nearbyintf32 (_Float32 __x) noexcept (true); extern _Float32 __nearbyintf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 truncf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf32 (_Float32 __x) noexcept (true); extern long int __lrintf32 (_Float32 __x) noexcept (true); +__extension__ +extern long long int llrintf32 (_Float32 __x) noexcept (true); extern long long int __llrintf32 (_Float32 __x) noexcept (true); + + + +extern long int lroundf32 (_Float32 __x) noexcept (true); extern long int __lroundf32 (_Float32 __x) noexcept (true); +__extension__ +extern long long int llroundf32 (_Float32 __x) noexcept (true); extern long long int __llroundf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + +extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); + + + + +extern _Float32 roundevenf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) noexcept (true); + + + + + + +extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float32 getpayloadf32 (const _Float32 *__x) noexcept (true); extern _Float32 __getpayloadf32 (const _Float32 *__x) noexcept (true); + + +extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) noexcept (true); + + +extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) noexcept (true); +# 420 "/usr/include/math.h" 2 3 4 +# 436 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float64 acosf64 (_Float64 __x) noexcept (true); extern _Float64 __acosf64 (_Float64 __x) noexcept (true); + + extern _Float64 asinf64 (_Float64 __x) noexcept (true); extern _Float64 __asinf64 (_Float64 __x) noexcept (true); + + extern _Float64 atanf64 (_Float64 __x) noexcept (true); extern _Float64 __atanf64 (_Float64 __x) noexcept (true); + + extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); + + + extern _Float64 cosf64 (_Float64 __x) noexcept (true); extern _Float64 __cosf64 (_Float64 __x) noexcept (true); + + extern _Float64 sinf64 (_Float64 __x) noexcept (true); extern _Float64 __sinf64 (_Float64 __x) noexcept (true); + + extern _Float64 tanf64 (_Float64 __x) noexcept (true); extern _Float64 __tanf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 acospif64 (_Float64 __x) noexcept (true); extern _Float64 __acospif64 (_Float64 __x) noexcept (true); + +extern _Float64 asinpif64 (_Float64 __x) noexcept (true); extern _Float64 __asinpif64 (_Float64 __x) noexcept (true); + +extern _Float64 atanpif64 (_Float64 __x) noexcept (true); extern _Float64 __atanpif64 (_Float64 __x) noexcept (true); + +extern _Float64 atan2pif64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2pif64 (_Float64 __y, _Float64 __x) noexcept (true); + + + extern _Float64 cospif64 (_Float64 __x) noexcept (true); extern _Float64 __cospif64 (_Float64 __x) noexcept (true); + + extern _Float64 sinpif64 (_Float64 __x) noexcept (true); extern _Float64 __sinpif64 (_Float64 __x) noexcept (true); + + extern _Float64 tanpif64 (_Float64 __x) noexcept (true); extern _Float64 __tanpif64 (_Float64 __x) noexcept (true); + + + + + + extern _Float64 coshf64 (_Float64 __x) noexcept (true); extern _Float64 __coshf64 (_Float64 __x) noexcept (true); + + extern _Float64 sinhf64 (_Float64 __x) noexcept (true); extern _Float64 __sinhf64 (_Float64 __x) noexcept (true); + + extern _Float64 tanhf64 (_Float64 __x) noexcept (true); extern _Float64 __tanhf64 (_Float64 __x) noexcept (true); + + + + extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true) + ; + + + + + extern _Float64 acoshf64 (_Float64 __x) noexcept (true); extern _Float64 __acoshf64 (_Float64 __x) noexcept (true); + + extern _Float64 asinhf64 (_Float64 __x) noexcept (true); extern _Float64 __asinhf64 (_Float64 __x) noexcept (true); + + extern _Float64 atanhf64 (_Float64 __x) noexcept (true); extern _Float64 __atanhf64 (_Float64 __x) noexcept (true); + + + + + + extern _Float64 expf64 (_Float64 __x) noexcept (true); extern _Float64 __expf64 (_Float64 __x) noexcept (true); + + +extern _Float64 frexpf64 (_Float64 __x, int *__exponent) noexcept (true); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) noexcept (true); + + +extern _Float64 ldexpf64 (_Float64 __x, int __exponent) noexcept (true); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) noexcept (true); + + + extern _Float64 logf64 (_Float64 __x) noexcept (true); extern _Float64 __logf64 (_Float64 __x) noexcept (true); + + + extern _Float64 log10f64 (_Float64 __x) noexcept (true); extern _Float64 __log10f64 (_Float64 __x) noexcept (true); + + +extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float64 exp10f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10f64 (_Float64 __x) noexcept (true); + + +extern _Float64 exp2m1f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2m1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 exp10m1f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10m1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 log2p1f64 (_Float64 __x) noexcept (true); extern _Float64 __log2p1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 log10p1f64 (_Float64 __x) noexcept (true); extern _Float64 __log10p1f64 (_Float64 __x) noexcept (true); + + + extern _Float64 logp1f64 (_Float64 __x) noexcept (true); extern _Float64 __logp1f64 (_Float64 __x) noexcept (true); + + + + + extern _Float64 expm1f64 (_Float64 __x) noexcept (true); extern _Float64 __expm1f64 (_Float64 __x) noexcept (true); + + + extern _Float64 log1pf64 (_Float64 __x) noexcept (true); extern _Float64 __log1pf64 (_Float64 __x) noexcept (true); + + +extern _Float64 logbf64 (_Float64 __x) noexcept (true); extern _Float64 __logbf64 (_Float64 __x) noexcept (true); + + + + + extern _Float64 exp2f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2f64 (_Float64 __x) noexcept (true); + + + extern _Float64 log2f64 (_Float64 __x) noexcept (true); extern _Float64 __log2f64 (_Float64 __x) noexcept (true); + + + + + + + extern _Float64 powf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float64 sqrtf64 (_Float64 __x) noexcept (true); extern _Float64 __sqrtf64 (_Float64 __x) noexcept (true); + + + + extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + + + extern _Float64 cbrtf64 (_Float64 __x) noexcept (true); extern _Float64 __cbrtf64 (_Float64 __x) noexcept (true); + + + + + + +extern _Float64 ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fabsf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 floorf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 nanf64 (const char *__tagb) noexcept (true); extern _Float64 __nanf64 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 j0f64 (_Float64) noexcept (true); extern _Float64 __j0f64 (_Float64) noexcept (true); +extern _Float64 j1f64 (_Float64) noexcept (true); extern _Float64 __j1f64 (_Float64) noexcept (true); +extern _Float64 jnf64 (int, _Float64) noexcept (true); extern _Float64 __jnf64 (int, _Float64) noexcept (true); +extern _Float64 y0f64 (_Float64) noexcept (true); extern _Float64 __y0f64 (_Float64) noexcept (true); +extern _Float64 y1f64 (_Float64) noexcept (true); extern _Float64 __y1f64 (_Float64) noexcept (true); +extern _Float64 ynf64 (int, _Float64) noexcept (true); extern _Float64 __ynf64 (int, _Float64) noexcept (true); + + + + + + extern _Float64 erff64 (_Float64) noexcept (true); extern _Float64 __erff64 (_Float64) noexcept (true); + extern _Float64 erfcf64 (_Float64) noexcept (true); extern _Float64 __erfcf64 (_Float64) noexcept (true); +extern _Float64 lgammaf64 (_Float64) noexcept (true); extern _Float64 __lgammaf64 (_Float64) noexcept (true); + + + + +extern _Float64 tgammaf64 (_Float64) noexcept (true); extern _Float64 __tgammaf64 (_Float64) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 lgammaf64_r (_Float64, int *__signgamp) noexcept (true); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) noexcept (true); + + + + + + +extern _Float64 rintf64 (_Float64 __x) noexcept (true); extern _Float64 __rintf64 (_Float64 __x) noexcept (true); + + +extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + + + + +extern _Float64 nextdownf64 (_Float64 __x) noexcept (true); extern _Float64 __nextdownf64 (_Float64 __x) noexcept (true); + +extern _Float64 nextupf64 (_Float64 __x) noexcept (true); extern _Float64 __nextupf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + +extern _Float64 scalbnf64 (_Float64 __x, int __n) noexcept (true); extern _Float64 __scalbnf64 (_Float64 __x, int __n) noexcept (true); + + + +extern int ilogbf64 (_Float64 __x) noexcept (true); extern int __ilogbf64 (_Float64 __x) noexcept (true); + + + + +extern long int llogbf64 (_Float64 __x) noexcept (true); extern long int __llogbf64 (_Float64 __x) noexcept (true); + + + + +extern _Float64 scalblnf64 (_Float64 __x, long int __n) noexcept (true); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) noexcept (true); + + + +extern _Float64 nearbyintf64 (_Float64 __x) noexcept (true); extern _Float64 __nearbyintf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 truncf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf64 (_Float64 __x) noexcept (true); extern long int __lrintf64 (_Float64 __x) noexcept (true); +__extension__ +extern long long int llrintf64 (_Float64 __x) noexcept (true); extern long long int __llrintf64 (_Float64 __x) noexcept (true); + + + +extern long int lroundf64 (_Float64 __x) noexcept (true); extern long int __lroundf64 (_Float64 __x) noexcept (true); +__extension__ +extern long long int llroundf64 (_Float64 __x) noexcept (true); extern long long int __llroundf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + +extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + + + +extern _Float64 roundevenf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) noexcept (true); + + + + + + +extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float64 getpayloadf64 (const _Float64 *__x) noexcept (true); extern _Float64 __getpayloadf64 (const _Float64 *__x) noexcept (true); + + +extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) noexcept (true); + + +extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) noexcept (true); +# 437 "/usr/include/math.h" 2 3 4 +# 450 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinff128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitef128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern int __issignalingf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); +# 451 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float128 acosf128 (_Float128 __x) noexcept (true); extern _Float128 __acosf128 (_Float128 __x) noexcept (true); + + extern _Float128 asinf128 (_Float128 __x) noexcept (true); extern _Float128 __asinf128 (_Float128 __x) noexcept (true); + + extern _Float128 atanf128 (_Float128 __x) noexcept (true); extern _Float128 __atanf128 (_Float128 __x) noexcept (true); + + extern _Float128 atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); + + + extern _Float128 cosf128 (_Float128 __x) noexcept (true); extern _Float128 __cosf128 (_Float128 __x) noexcept (true); + + extern _Float128 sinf128 (_Float128 __x) noexcept (true); extern _Float128 __sinf128 (_Float128 __x) noexcept (true); + + extern _Float128 tanf128 (_Float128 __x) noexcept (true); extern _Float128 __tanf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 acospif128 (_Float128 __x) noexcept (true); extern _Float128 __acospif128 (_Float128 __x) noexcept (true); + +extern _Float128 asinpif128 (_Float128 __x) noexcept (true); extern _Float128 __asinpif128 (_Float128 __x) noexcept (true); + +extern _Float128 atanpif128 (_Float128 __x) noexcept (true); extern _Float128 __atanpif128 (_Float128 __x) noexcept (true); + +extern _Float128 atan2pif128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2pif128 (_Float128 __y, _Float128 __x) noexcept (true); + + + extern _Float128 cospif128 (_Float128 __x) noexcept (true); extern _Float128 __cospif128 (_Float128 __x) noexcept (true); + + extern _Float128 sinpif128 (_Float128 __x) noexcept (true); extern _Float128 __sinpif128 (_Float128 __x) noexcept (true); + + extern _Float128 tanpif128 (_Float128 __x) noexcept (true); extern _Float128 __tanpif128 (_Float128 __x) noexcept (true); + + + + + + extern _Float128 coshf128 (_Float128 __x) noexcept (true); extern _Float128 __coshf128 (_Float128 __x) noexcept (true); + + extern _Float128 sinhf128 (_Float128 __x) noexcept (true); extern _Float128 __sinhf128 (_Float128 __x) noexcept (true); + + extern _Float128 tanhf128 (_Float128 __x) noexcept (true); extern _Float128 __tanhf128 (_Float128 __x) noexcept (true); + + + + extern void sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true); extern void __sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true) + ; + + + + + extern _Float128 acoshf128 (_Float128 __x) noexcept (true); extern _Float128 __acoshf128 (_Float128 __x) noexcept (true); + + extern _Float128 asinhf128 (_Float128 __x) noexcept (true); extern _Float128 __asinhf128 (_Float128 __x) noexcept (true); + + extern _Float128 atanhf128 (_Float128 __x) noexcept (true); extern _Float128 __atanhf128 (_Float128 __x) noexcept (true); + + + + + + extern _Float128 expf128 (_Float128 __x) noexcept (true); extern _Float128 __expf128 (_Float128 __x) noexcept (true); + + +extern _Float128 frexpf128 (_Float128 __x, int *__exponent) noexcept (true); extern _Float128 __frexpf128 (_Float128 __x, int *__exponent) noexcept (true); + + +extern _Float128 ldexpf128 (_Float128 __x, int __exponent) noexcept (true); extern _Float128 __ldexpf128 (_Float128 __x, int __exponent) noexcept (true); + + + extern _Float128 logf128 (_Float128 __x) noexcept (true); extern _Float128 __logf128 (_Float128 __x) noexcept (true); + + + extern _Float128 log10f128 (_Float128 __x) noexcept (true); extern _Float128 __log10f128 (_Float128 __x) noexcept (true); + + +extern _Float128 modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true); extern _Float128 __modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float128 exp10f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10f128 (_Float128 __x) noexcept (true); + + +extern _Float128 exp2m1f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2m1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 exp10m1f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10m1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 log2p1f128 (_Float128 __x) noexcept (true); extern _Float128 __log2p1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 log10p1f128 (_Float128 __x) noexcept (true); extern _Float128 __log10p1f128 (_Float128 __x) noexcept (true); + + + extern _Float128 logp1f128 (_Float128 __x) noexcept (true); extern _Float128 __logp1f128 (_Float128 __x) noexcept (true); + + + + + extern _Float128 expm1f128 (_Float128 __x) noexcept (true); extern _Float128 __expm1f128 (_Float128 __x) noexcept (true); + + + extern _Float128 log1pf128 (_Float128 __x) noexcept (true); extern _Float128 __log1pf128 (_Float128 __x) noexcept (true); + + +extern _Float128 logbf128 (_Float128 __x) noexcept (true); extern _Float128 __logbf128 (_Float128 __x) noexcept (true); + + + + + extern _Float128 exp2f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2f128 (_Float128 __x) noexcept (true); + + + extern _Float128 log2f128 (_Float128 __x) noexcept (true); extern _Float128 __log2f128 (_Float128 __x) noexcept (true); + + + + + + + extern _Float128 powf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __powf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float128 sqrtf128 (_Float128 __x) noexcept (true); extern _Float128 __sqrtf128 (_Float128 __x) noexcept (true); + + + + extern _Float128 hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + + + extern _Float128 cbrtf128 (_Float128 __x) noexcept (true); extern _Float128 __cbrtf128 (_Float128 __x) noexcept (true); + + + + + + +extern _Float128 ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fabsf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 floorf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 nanf128 (const char *__tagb) noexcept (true); extern _Float128 __nanf128 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 j0f128 (_Float128) noexcept (true); extern _Float128 __j0f128 (_Float128) noexcept (true); +extern _Float128 j1f128 (_Float128) noexcept (true); extern _Float128 __j1f128 (_Float128) noexcept (true); +extern _Float128 jnf128 (int, _Float128) noexcept (true); extern _Float128 __jnf128 (int, _Float128) noexcept (true); +extern _Float128 y0f128 (_Float128) noexcept (true); extern _Float128 __y0f128 (_Float128) noexcept (true); +extern _Float128 y1f128 (_Float128) noexcept (true); extern _Float128 __y1f128 (_Float128) noexcept (true); +extern _Float128 ynf128 (int, _Float128) noexcept (true); extern _Float128 __ynf128 (int, _Float128) noexcept (true); + + + + + + extern _Float128 erff128 (_Float128) noexcept (true); extern _Float128 __erff128 (_Float128) noexcept (true); + extern _Float128 erfcf128 (_Float128) noexcept (true); extern _Float128 __erfcf128 (_Float128) noexcept (true); +extern _Float128 lgammaf128 (_Float128) noexcept (true); extern _Float128 __lgammaf128 (_Float128) noexcept (true); + + + + +extern _Float128 tgammaf128 (_Float128) noexcept (true); extern _Float128 __tgammaf128 (_Float128) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 lgammaf128_r (_Float128, int *__signgamp) noexcept (true); extern _Float128 __lgammaf128_r (_Float128, int *__signgamp) noexcept (true); + + + + + + +extern _Float128 rintf128 (_Float128 __x) noexcept (true); extern _Float128 __rintf128 (_Float128 __x) noexcept (true); + + +extern _Float128 nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + + + + +extern _Float128 nextdownf128 (_Float128 __x) noexcept (true); extern _Float128 __nextdownf128 (_Float128 __x) noexcept (true); + +extern _Float128 nextupf128 (_Float128 __x) noexcept (true); extern _Float128 __nextupf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + +extern _Float128 scalbnf128 (_Float128 __x, int __n) noexcept (true); extern _Float128 __scalbnf128 (_Float128 __x, int __n) noexcept (true); + + + +extern int ilogbf128 (_Float128 __x) noexcept (true); extern int __ilogbf128 (_Float128 __x) noexcept (true); + + + + +extern long int llogbf128 (_Float128 __x) noexcept (true); extern long int __llogbf128 (_Float128 __x) noexcept (true); + + + + +extern _Float128 scalblnf128 (_Float128 __x, long int __n) noexcept (true); extern _Float128 __scalblnf128 (_Float128 __x, long int __n) noexcept (true); + + + +extern _Float128 nearbyintf128 (_Float128 __x) noexcept (true); extern _Float128 __nearbyintf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 truncf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); extern _Float128 __remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf128 (_Float128 __x) noexcept (true); extern long int __lrintf128 (_Float128 __x) noexcept (true); +__extension__ +extern long long int llrintf128 (_Float128 __x) noexcept (true); extern long long int __llrintf128 (_Float128 __x) noexcept (true); + + + +extern long int lroundf128 (_Float128 __x) noexcept (true); extern long int __lroundf128 (_Float128 __x) noexcept (true); +__extension__ +extern long long int llroundf128 (_Float128 __x) noexcept (true); extern long long int __llroundf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + +extern _Float128 fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); extern _Float128 __fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + + + +extern _Float128 roundevenf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef128 (_Float128 *__cx, const _Float128 *__x) noexcept (true); + + + + + + +extern _Float128 fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float128 getpayloadf128 (const _Float128 *__x) noexcept (true); extern _Float128 __getpayloadf128 (const _Float128 *__x) noexcept (true); + + +extern int setpayloadf128 (_Float128 *__x, _Float128 __payload) noexcept (true); + + +extern int setpayloadsigf128 (_Float128 *__x, _Float128 __payload) noexcept (true); +# 454 "/usr/include/math.h" 2 3 4 +# 470 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float32x acosf32x (_Float32x __x) noexcept (true); extern _Float32x __acosf32x (_Float32x __x) noexcept (true); + + extern _Float32x asinf32x (_Float32x __x) noexcept (true); extern _Float32x __asinf32x (_Float32x __x) noexcept (true); + + extern _Float32x atanf32x (_Float32x __x) noexcept (true); extern _Float32x __atanf32x (_Float32x __x) noexcept (true); + + extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); + + + extern _Float32x cosf32x (_Float32x __x) noexcept (true); extern _Float32x __cosf32x (_Float32x __x) noexcept (true); + + extern _Float32x sinf32x (_Float32x __x) noexcept (true); extern _Float32x __sinf32x (_Float32x __x) noexcept (true); + + extern _Float32x tanf32x (_Float32x __x) noexcept (true); extern _Float32x __tanf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x acospif32x (_Float32x __x) noexcept (true); extern _Float32x __acospif32x (_Float32x __x) noexcept (true); + +extern _Float32x asinpif32x (_Float32x __x) noexcept (true); extern _Float32x __asinpif32x (_Float32x __x) noexcept (true); + +extern _Float32x atanpif32x (_Float32x __x) noexcept (true); extern _Float32x __atanpif32x (_Float32x __x) noexcept (true); + +extern _Float32x atan2pif32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2pif32x (_Float32x __y, _Float32x __x) noexcept (true); + + + extern _Float32x cospif32x (_Float32x __x) noexcept (true); extern _Float32x __cospif32x (_Float32x __x) noexcept (true); + + extern _Float32x sinpif32x (_Float32x __x) noexcept (true); extern _Float32x __sinpif32x (_Float32x __x) noexcept (true); + + extern _Float32x tanpif32x (_Float32x __x) noexcept (true); extern _Float32x __tanpif32x (_Float32x __x) noexcept (true); + + + + + + extern _Float32x coshf32x (_Float32x __x) noexcept (true); extern _Float32x __coshf32x (_Float32x __x) noexcept (true); + + extern _Float32x sinhf32x (_Float32x __x) noexcept (true); extern _Float32x __sinhf32x (_Float32x __x) noexcept (true); + + extern _Float32x tanhf32x (_Float32x __x) noexcept (true); extern _Float32x __tanhf32x (_Float32x __x) noexcept (true); + + + + extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true) + ; + + + + + extern _Float32x acoshf32x (_Float32x __x) noexcept (true); extern _Float32x __acoshf32x (_Float32x __x) noexcept (true); + + extern _Float32x asinhf32x (_Float32x __x) noexcept (true); extern _Float32x __asinhf32x (_Float32x __x) noexcept (true); + + extern _Float32x atanhf32x (_Float32x __x) noexcept (true); extern _Float32x __atanhf32x (_Float32x __x) noexcept (true); + + + + + + extern _Float32x expf32x (_Float32x __x) noexcept (true); extern _Float32x __expf32x (_Float32x __x) noexcept (true); + + +extern _Float32x frexpf32x (_Float32x __x, int *__exponent) noexcept (true); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) noexcept (true); + + +extern _Float32x ldexpf32x (_Float32x __x, int __exponent) noexcept (true); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) noexcept (true); + + + extern _Float32x logf32x (_Float32x __x) noexcept (true); extern _Float32x __logf32x (_Float32x __x) noexcept (true); + + + extern _Float32x log10f32x (_Float32x __x) noexcept (true); extern _Float32x __log10f32x (_Float32x __x) noexcept (true); + + +extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float32x exp10f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10f32x (_Float32x __x) noexcept (true); + + +extern _Float32x exp2m1f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2m1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x exp10m1f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10m1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x log2p1f32x (_Float32x __x) noexcept (true); extern _Float32x __log2p1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x log10p1f32x (_Float32x __x) noexcept (true); extern _Float32x __log10p1f32x (_Float32x __x) noexcept (true); + + + extern _Float32x logp1f32x (_Float32x __x) noexcept (true); extern _Float32x __logp1f32x (_Float32x __x) noexcept (true); + + + + + extern _Float32x expm1f32x (_Float32x __x) noexcept (true); extern _Float32x __expm1f32x (_Float32x __x) noexcept (true); + + + extern _Float32x log1pf32x (_Float32x __x) noexcept (true); extern _Float32x __log1pf32x (_Float32x __x) noexcept (true); + + +extern _Float32x logbf32x (_Float32x __x) noexcept (true); extern _Float32x __logbf32x (_Float32x __x) noexcept (true); + + + + + extern _Float32x exp2f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2f32x (_Float32x __x) noexcept (true); + + + extern _Float32x log2f32x (_Float32x __x) noexcept (true); extern _Float32x __log2f32x (_Float32x __x) noexcept (true); + + + + + + + extern _Float32x powf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32x sqrtf32x (_Float32x __x) noexcept (true); extern _Float32x __sqrtf32x (_Float32x __x) noexcept (true); + + + + extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + + + extern _Float32x cbrtf32x (_Float32x __x) noexcept (true); extern _Float32x __cbrtf32x (_Float32x __x) noexcept (true); + + + + + + +extern _Float32x ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fabsf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x floorf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x nanf32x (const char *__tagb) noexcept (true); extern _Float32x __nanf32x (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x j0f32x (_Float32x) noexcept (true); extern _Float32x __j0f32x (_Float32x) noexcept (true); +extern _Float32x j1f32x (_Float32x) noexcept (true); extern _Float32x __j1f32x (_Float32x) noexcept (true); +extern _Float32x jnf32x (int, _Float32x) noexcept (true); extern _Float32x __jnf32x (int, _Float32x) noexcept (true); +extern _Float32x y0f32x (_Float32x) noexcept (true); extern _Float32x __y0f32x (_Float32x) noexcept (true); +extern _Float32x y1f32x (_Float32x) noexcept (true); extern _Float32x __y1f32x (_Float32x) noexcept (true); +extern _Float32x ynf32x (int, _Float32x) noexcept (true); extern _Float32x __ynf32x (int, _Float32x) noexcept (true); + + + + + + extern _Float32x erff32x (_Float32x) noexcept (true); extern _Float32x __erff32x (_Float32x) noexcept (true); + extern _Float32x erfcf32x (_Float32x) noexcept (true); extern _Float32x __erfcf32x (_Float32x) noexcept (true); +extern _Float32x lgammaf32x (_Float32x) noexcept (true); extern _Float32x __lgammaf32x (_Float32x) noexcept (true); + + + + +extern _Float32x tgammaf32x (_Float32x) noexcept (true); extern _Float32x __tgammaf32x (_Float32x) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); + + + + + + +extern _Float32x rintf32x (_Float32x __x) noexcept (true); extern _Float32x __rintf32x (_Float32x __x) noexcept (true); + + +extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + + + + +extern _Float32x nextdownf32x (_Float32x __x) noexcept (true); extern _Float32x __nextdownf32x (_Float32x __x) noexcept (true); + +extern _Float32x nextupf32x (_Float32x __x) noexcept (true); extern _Float32x __nextupf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + +extern _Float32x scalbnf32x (_Float32x __x, int __n) noexcept (true); extern _Float32x __scalbnf32x (_Float32x __x, int __n) noexcept (true); + + + +extern int ilogbf32x (_Float32x __x) noexcept (true); extern int __ilogbf32x (_Float32x __x) noexcept (true); + + + + +extern long int llogbf32x (_Float32x __x) noexcept (true); extern long int __llogbf32x (_Float32x __x) noexcept (true); + + + + +extern _Float32x scalblnf32x (_Float32x __x, long int __n) noexcept (true); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) noexcept (true); + + + +extern _Float32x nearbyintf32x (_Float32x __x) noexcept (true); extern _Float32x __nearbyintf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x truncf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf32x (_Float32x __x) noexcept (true); extern long int __lrintf32x (_Float32x __x) noexcept (true); +__extension__ +extern long long int llrintf32x (_Float32x __x) noexcept (true); extern long long int __llrintf32x (_Float32x __x) noexcept (true); + + + +extern long int lroundf32x (_Float32x __x) noexcept (true); extern long int __lroundf32x (_Float32x __x) noexcept (true); +__extension__ +extern long long int llroundf32x (_Float32x __x) noexcept (true); extern long long int __llroundf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + +extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); + + + + +extern _Float32x roundevenf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) noexcept (true); + + + + + + +extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float32x getpayloadf32x (const _Float32x *__x) noexcept (true); extern _Float32x __getpayloadf32x (const _Float32x *__x) noexcept (true); + + +extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) noexcept (true); + + +extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) noexcept (true); +# 471 "/usr/include/math.h" 2 3 4 +# 487 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float64x acosf64x (_Float64x __x) noexcept (true); extern _Float64x __acosf64x (_Float64x __x) noexcept (true); + + extern _Float64x asinf64x (_Float64x __x) noexcept (true); extern _Float64x __asinf64x (_Float64x __x) noexcept (true); + + extern _Float64x atanf64x (_Float64x __x) noexcept (true); extern _Float64x __atanf64x (_Float64x __x) noexcept (true); + + extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); + + + extern _Float64x cosf64x (_Float64x __x) noexcept (true); extern _Float64x __cosf64x (_Float64x __x) noexcept (true); + + extern _Float64x sinf64x (_Float64x __x) noexcept (true); extern _Float64x __sinf64x (_Float64x __x) noexcept (true); + + extern _Float64x tanf64x (_Float64x __x) noexcept (true); extern _Float64x __tanf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x acospif64x (_Float64x __x) noexcept (true); extern _Float64x __acospif64x (_Float64x __x) noexcept (true); + +extern _Float64x asinpif64x (_Float64x __x) noexcept (true); extern _Float64x __asinpif64x (_Float64x __x) noexcept (true); + +extern _Float64x atanpif64x (_Float64x __x) noexcept (true); extern _Float64x __atanpif64x (_Float64x __x) noexcept (true); + +extern _Float64x atan2pif64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2pif64x (_Float64x __y, _Float64x __x) noexcept (true); + + + extern _Float64x cospif64x (_Float64x __x) noexcept (true); extern _Float64x __cospif64x (_Float64x __x) noexcept (true); + + extern _Float64x sinpif64x (_Float64x __x) noexcept (true); extern _Float64x __sinpif64x (_Float64x __x) noexcept (true); + + extern _Float64x tanpif64x (_Float64x __x) noexcept (true); extern _Float64x __tanpif64x (_Float64x __x) noexcept (true); + + + + + + extern _Float64x coshf64x (_Float64x __x) noexcept (true); extern _Float64x __coshf64x (_Float64x __x) noexcept (true); + + extern _Float64x sinhf64x (_Float64x __x) noexcept (true); extern _Float64x __sinhf64x (_Float64x __x) noexcept (true); + + extern _Float64x tanhf64x (_Float64x __x) noexcept (true); extern _Float64x __tanhf64x (_Float64x __x) noexcept (true); + + + + extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true) + ; + + + + + extern _Float64x acoshf64x (_Float64x __x) noexcept (true); extern _Float64x __acoshf64x (_Float64x __x) noexcept (true); + + extern _Float64x asinhf64x (_Float64x __x) noexcept (true); extern _Float64x __asinhf64x (_Float64x __x) noexcept (true); + + extern _Float64x atanhf64x (_Float64x __x) noexcept (true); extern _Float64x __atanhf64x (_Float64x __x) noexcept (true); + + + + + + extern _Float64x expf64x (_Float64x __x) noexcept (true); extern _Float64x __expf64x (_Float64x __x) noexcept (true); + + +extern _Float64x frexpf64x (_Float64x __x, int *__exponent) noexcept (true); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) noexcept (true); + + +extern _Float64x ldexpf64x (_Float64x __x, int __exponent) noexcept (true); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) noexcept (true); + + + extern _Float64x logf64x (_Float64x __x) noexcept (true); extern _Float64x __logf64x (_Float64x __x) noexcept (true); + + + extern _Float64x log10f64x (_Float64x __x) noexcept (true); extern _Float64x __log10f64x (_Float64x __x) noexcept (true); + + +extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float64x exp10f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10f64x (_Float64x __x) noexcept (true); + + +extern _Float64x exp2m1f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2m1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x exp10m1f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10m1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x log2p1f64x (_Float64x __x) noexcept (true); extern _Float64x __log2p1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x log10p1f64x (_Float64x __x) noexcept (true); extern _Float64x __log10p1f64x (_Float64x __x) noexcept (true); + + + extern _Float64x logp1f64x (_Float64x __x) noexcept (true); extern _Float64x __logp1f64x (_Float64x __x) noexcept (true); + + + + + extern _Float64x expm1f64x (_Float64x __x) noexcept (true); extern _Float64x __expm1f64x (_Float64x __x) noexcept (true); + + + extern _Float64x log1pf64x (_Float64x __x) noexcept (true); extern _Float64x __log1pf64x (_Float64x __x) noexcept (true); + + +extern _Float64x logbf64x (_Float64x __x) noexcept (true); extern _Float64x __logbf64x (_Float64x __x) noexcept (true); + + + + + extern _Float64x exp2f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2f64x (_Float64x __x) noexcept (true); + + + extern _Float64x log2f64x (_Float64x __x) noexcept (true); extern _Float64x __log2f64x (_Float64x __x) noexcept (true); + + + + + + + extern _Float64x powf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64x sqrtf64x (_Float64x __x) noexcept (true); extern _Float64x __sqrtf64x (_Float64x __x) noexcept (true); + + + + extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + + + extern _Float64x cbrtf64x (_Float64x __x) noexcept (true); extern _Float64x __cbrtf64x (_Float64x __x) noexcept (true); + + + + + + +extern _Float64x ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fabsf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x floorf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x nanf64x (const char *__tagb) noexcept (true); extern _Float64x __nanf64x (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x j0f64x (_Float64x) noexcept (true); extern _Float64x __j0f64x (_Float64x) noexcept (true); +extern _Float64x j1f64x (_Float64x) noexcept (true); extern _Float64x __j1f64x (_Float64x) noexcept (true); +extern _Float64x jnf64x (int, _Float64x) noexcept (true); extern _Float64x __jnf64x (int, _Float64x) noexcept (true); +extern _Float64x y0f64x (_Float64x) noexcept (true); extern _Float64x __y0f64x (_Float64x) noexcept (true); +extern _Float64x y1f64x (_Float64x) noexcept (true); extern _Float64x __y1f64x (_Float64x) noexcept (true); +extern _Float64x ynf64x (int, _Float64x) noexcept (true); extern _Float64x __ynf64x (int, _Float64x) noexcept (true); + + + + + + extern _Float64x erff64x (_Float64x) noexcept (true); extern _Float64x __erff64x (_Float64x) noexcept (true); + extern _Float64x erfcf64x (_Float64x) noexcept (true); extern _Float64x __erfcf64x (_Float64x) noexcept (true); +extern _Float64x lgammaf64x (_Float64x) noexcept (true); extern _Float64x __lgammaf64x (_Float64x) noexcept (true); + + + + +extern _Float64x tgammaf64x (_Float64x) noexcept (true); extern _Float64x __tgammaf64x (_Float64x) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); + + + + + + +extern _Float64x rintf64x (_Float64x __x) noexcept (true); extern _Float64x __rintf64x (_Float64x __x) noexcept (true); + + +extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + + + + +extern _Float64x nextdownf64x (_Float64x __x) noexcept (true); extern _Float64x __nextdownf64x (_Float64x __x) noexcept (true); + +extern _Float64x nextupf64x (_Float64x __x) noexcept (true); extern _Float64x __nextupf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + +extern _Float64x scalbnf64x (_Float64x __x, int __n) noexcept (true); extern _Float64x __scalbnf64x (_Float64x __x, int __n) noexcept (true); + + + +extern int ilogbf64x (_Float64x __x) noexcept (true); extern int __ilogbf64x (_Float64x __x) noexcept (true); + + + + +extern long int llogbf64x (_Float64x __x) noexcept (true); extern long int __llogbf64x (_Float64x __x) noexcept (true); + + + + +extern _Float64x scalblnf64x (_Float64x __x, long int __n) noexcept (true); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) noexcept (true); + + + +extern _Float64x nearbyintf64x (_Float64x __x) noexcept (true); extern _Float64x __nearbyintf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x truncf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf64x (_Float64x __x) noexcept (true); extern long int __lrintf64x (_Float64x __x) noexcept (true); +__extension__ +extern long long int llrintf64x (_Float64x __x) noexcept (true); extern long long int __llrintf64x (_Float64x __x) noexcept (true); + + + +extern long int lroundf64x (_Float64x __x) noexcept (true); extern long int __lroundf64x (_Float64x __x) noexcept (true); +__extension__ +extern long long int llroundf64x (_Float64x __x) noexcept (true); extern long long int __llroundf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + +extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + + + +extern _Float64x roundevenf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) noexcept (true); + + + + + + +extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float64x getpayloadf64x (const _Float64x *__x) noexcept (true); extern _Float64x __getpayloadf64x (const _Float64x *__x) noexcept (true); + + +extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) noexcept (true); + + +extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) noexcept (true); +# 488 "/usr/include/math.h" 2 3 4 +# 535 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern float fadd (double __x, double __y) noexcept (true); + + +extern float fdiv (double __x, double __y) noexcept (true); + + +extern float ffma (double __x, double __y, double __z) noexcept (true); + + +extern float fmul (double __x, double __y) noexcept (true); + + +extern float fsqrt (double __x) noexcept (true); + + +extern float fsub (double __x, double __y) noexcept (true); +# 536 "/usr/include/math.h" 2 3 4 +# 556 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern float faddl (long double __x, long double __y) noexcept (true); + + +extern float fdivl (long double __x, long double __y) noexcept (true); + + +extern float ffmal (long double __x, long double __y, long double __z) noexcept (true); + + +extern float fmull (long double __x, long double __y) noexcept (true); + + +extern float fsqrtl (long double __x) noexcept (true); + + +extern float fsubl (long double __x, long double __y) noexcept (true); +# 557 "/usr/include/math.h" 2 3 4 +# 585 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern double daddl (long double __x, long double __y) noexcept (true); + + +extern double ddivl (long double __x, long double __y) noexcept (true); + + +extern double dfmal (long double __x, long double __y, long double __z) noexcept (true); + + +extern double dmull (long double __x, long double __y) noexcept (true); + + +extern double dsqrtl (long double __x) noexcept (true); + + +extern double dsubl (long double __x, long double __y) noexcept (true); +# 586 "/usr/include/math.h" 2 3 4 +# 666 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); + + +extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32sqrtf32x (_Float32x __x) noexcept (true); + + +extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) noexcept (true); +# 667 "/usr/include/math.h" 2 3 4 +# 676 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + +extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32sqrtf64 (_Float64 __x) noexcept (true); + + +extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 677 "/usr/include/math.h" 2 3 4 +# 686 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32sqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 687 "/usr/include/math.h" 2 3 4 +# 696 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32divf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float32 f32mulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32sqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float32 f32subf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 697 "/usr/include/math.h" 2 3 4 +# 716 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xfmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + +extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xsqrtf64 (_Float64 __x) noexcept (true); + + +extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 717 "/usr/include/math.h" 2 3 4 +# 726 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xfmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xsqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 727 "/usr/include/math.h" 2 3 4 +# 736 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float32x f32xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xsqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float32x f32xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 737 "/usr/include/math.h" 2 3 4 +# 756 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64sqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 757 "/usr/include/math.h" 2 3 4 +# 766 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64divf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float64 f64mulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64sqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float64 f64subf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 767 "/usr/include/math.h" 2 3 4 +# 786 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64x f64xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float64x f64xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xsqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float64x f64xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 787 "/usr/include/math.h" 2 3 4 +# 823 "/usr/include/math.h" 3 4 +extern int signgam; +# 903 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 1024 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/iscanonical.h" 1 3 4 +# 23 "/usr/include/bits/iscanonical.h" 3 4 +extern int __iscanonicall (long double __x) + noexcept (true) __attribute__ ((__const__)); +# 46 "/usr/include/bits/iscanonical.h" 3 4 +extern "C++" { +inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (long double __val) { return __iscanonicall (__val); } + +inline int iscanonical (_Float128 __val) { return ((void) (__typeof (__val)) (__val), 1); } + +} +# 1025 "/usr/include/math.h" 2 3 4 +# 1036 "/usr/include/math.h" 3 4 +extern "C++" { +inline int issignaling (float __val) { return __issignalingf (__val); } +inline int issignaling (double __val) { return __issignaling (__val); } +inline int +issignaling (long double __val) +{ + + + + return __issignalingl (__val); + +} + + + +inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } + +} +# 1067 "/usr/include/math.h" 3 4 +extern "C++" { +# 1098 "/usr/include/math.h" 3 4 +template inline bool +iszero (__T __val) +{ + return __val == 0; +} + +} +# 1333 "/usr/include/math.h" 3 4 +extern "C++" { +template struct __iseqsig_type; + +template<> struct __iseqsig_type +{ + static int __call (float __x, float __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (double __x, double __y) throw () + { + return __iseqsig (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (long double __x, long double __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; + + +template<> struct __iseqsig_type<_Float32> +{ + static int __call (_Float32 __x, _Float32 __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + + + +template<> struct __iseqsig_type<_Float64> +{ + static int __call (_Float64 __x, _Float64 __y) throw () + { + return __iseqsig (__x, __y); + } +}; + + + + + +template<> struct __iseqsig_type<_Float128> +{ + static int __call (_Float128 __x, _Float128 __y) throw () + { + + return __iseqsigf128 (__x, __y); + + + + } +}; + + + +template<> struct __iseqsig_type<_Float32x> +{ + static int __call (_Float32x __x, _Float32x __y) throw () + { + return __iseqsig (__x, __y); + } +}; + + + +template<> struct __iseqsig_type<_Float64x> +{ + static int __call (_Float64x __x, _Float64x __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; + + +template +inline int +iseqsig (_T1 __x, _T2 __y) throw () +{ + + typedef decltype (((__x) + (__y) + 0.0f)) _T3; + + + + return __iseqsig_type<_T3>::__call (__x, __y); +} + +} + + + + +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::acos; + + + inline constexpr float + acos(float __x) + { return __builtin_acosf(__x); } + + inline constexpr long double + acos(long double __x) + { return __builtin_acosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acos(_Tp __x) + { return __builtin_acos(__x); } + + using ::asin; + + + inline constexpr float + asin(float __x) + { return __builtin_asinf(__x); } + + inline constexpr long double + asin(long double __x) + { return __builtin_asinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asin(_Tp __x) + { return __builtin_asin(__x); } + + using ::atan; + + + inline constexpr float + atan(float __x) + { return __builtin_atanf(__x); } + + inline constexpr long double + atan(long double __x) + { return __builtin_atanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atan(_Tp __x) + { return __builtin_atan(__x); } + + using ::atan2; + + + inline constexpr float + atan2(float __y, float __x) + { return __builtin_atan2f(__y, __x); } + + inline constexpr long double + atan2(long double __y, long double __x) + { return __builtin_atan2l(__y, __x); } + + + using ::ceil; + + + inline constexpr float + ceil(float __x) + { return __builtin_ceilf(__x); } + + inline constexpr long double + ceil(long double __x) + { return __builtin_ceill(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ceil(_Tp __x) + { return __builtin_ceil(__x); } + + using ::cos; + + + inline constexpr float + cos(float __x) + { return __builtin_cosf(__x); } + + inline constexpr long double + cos(long double __x) + { return __builtin_cosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cos(_Tp __x) + { return __builtin_cos(__x); } + + using ::cosh; + + + inline constexpr float + cosh(float __x) + { return __builtin_coshf(__x); } + + inline constexpr long double + cosh(long double __x) + { return __builtin_coshl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cosh(_Tp __x) + { return __builtin_cosh(__x); } + + using ::exp; + + + inline constexpr float + exp(float __x) + { return __builtin_expf(__x); } + + inline constexpr long double + exp(long double __x) + { return __builtin_expl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp(_Tp __x) + { return __builtin_exp(__x); } + + using ::fabs; + + + inline constexpr float + fabs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + fabs(long double __x) + { return __builtin_fabsl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + fabs(_Tp __x) + { return __builtin_fabs(__x); } + + using ::floor; + + + inline constexpr float + floor(float __x) + { return __builtin_floorf(__x); } + + inline constexpr long double + floor(long double __x) + { return __builtin_floorl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + floor(_Tp __x) + { return __builtin_floor(__x); } + + using ::fmod; + + + inline constexpr float + fmod(float __x, float __y) + { return __builtin_fmodf(__x, __y); } + + inline constexpr long double + fmod(long double __x, long double __y) + { return __builtin_fmodl(__x, __y); } + + + using ::frexp; + + + inline float + frexp(float __x, int* __exp) + { return __builtin_frexpf(__x, __exp); } + + inline long double + frexp(long double __x, int* __exp) + { return __builtin_frexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + frexp(_Tp __x, int* __exp) + { return __builtin_frexp(__x, __exp); } + + using ::ldexp; + + + inline constexpr float + ldexp(float __x, int __exp) + { return __builtin_ldexpf(__x, __exp); } + + inline constexpr long double + ldexp(long double __x, int __exp) + { return __builtin_ldexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ldexp(_Tp __x, int __exp) + { return __builtin_ldexp(__x, __exp); } + + using ::log; + + + inline constexpr float + log(float __x) + { return __builtin_logf(__x); } + + inline constexpr long double + log(long double __x) + { return __builtin_logl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log(_Tp __x) + { return __builtin_log(__x); } + + using ::log10; + + + inline constexpr float + log10(float __x) + { return __builtin_log10f(__x); } + + inline constexpr long double + log10(long double __x) + { return __builtin_log10l(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log10(_Tp __x) + { return __builtin_log10(__x); } + + using ::modf; + + + inline float + modf(float __x, float* __iptr) + { return __builtin_modff(__x, __iptr); } + + inline long double + modf(long double __x, long double* __iptr) + { return __builtin_modfl(__x, __iptr); } + + + using ::pow; + + + inline constexpr float + pow(float __x, float __y) + { return __builtin_powf(__x, __y); } + + inline constexpr long double + pow(long double __x, long double __y) + { return __builtin_powl(__x, __y); } +# 400 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::sin; + + + inline constexpr float + sin(float __x) + { return __builtin_sinf(__x); } + + inline constexpr long double + sin(long double __x) + { return __builtin_sinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sin(_Tp __x) + { return __builtin_sin(__x); } + + using ::sinh; + + + inline constexpr float + sinh(float __x) + { return __builtin_sinhf(__x); } + + inline constexpr long double + sinh(long double __x) + { return __builtin_sinhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sinh(_Tp __x) + { return __builtin_sinh(__x); } + + using ::sqrt; + + + inline constexpr float + sqrt(float __x) + { return __builtin_sqrtf(__x); } + + inline constexpr long double + sqrt(long double __x) + { return __builtin_sqrtl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sqrt(_Tp __x) + { return __builtin_sqrt(__x); } + + using ::tan; + + + inline constexpr float + tan(float __x) + { return __builtin_tanf(__x); } + + inline constexpr long double + tan(long double __x) + { return __builtin_tanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tan(_Tp __x) + { return __builtin_tan(__x); } + + using ::tanh; + + + inline constexpr float + tanh(float __x) + { return __builtin_tanhf(__x); } + + inline constexpr long double + tanh(long double __x) + { return __builtin_tanhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tanh(_Tp __x) + { return __builtin_tanh(__x); } +# 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + atan2(_Tp __y, _Up __x) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return atan2(__type(__y), __type(__x)); + } + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmod(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmod(__type(__x), __type(__y)); + } + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + pow(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return pow(__type(__x), __type(__y)); + } +# 1100 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + constexpr int + fpclassify(float __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(long double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + fpclassify(_Tp __x) + { return __x != 0 ? 4 : 2; } + + + + constexpr bool + isfinite(float __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(double __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(long double __x) + { return __builtin_isfinite(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isfinite(_Tp) + { return true; } + + + + constexpr bool + isinf(float __x) + { return __builtin_isinf(__x); } + + + + + + constexpr bool + isinf(double __x) + { return __builtin_isinf(__x); } + + + constexpr bool + isinf(long double __x) + { return __builtin_isinf(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isinf(_Tp) + { return false; } + + + + constexpr bool + isnan(float __x) + { return __builtin_isnan(__x); } + + + + + + constexpr bool + isnan(double __x) + { return __builtin_isnan(__x); } + + + constexpr bool + isnan(long double __x) + { return __builtin_isnan(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnan(_Tp) + { return false; } + + + + constexpr bool + isnormal(float __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(double __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(long double __x) + { return __builtin_isnormal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnormal(_Tp __x) + { return __x != 0 ? true : false; } + + + + + constexpr bool + signbit(float __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(double __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(long double __x) + { return __builtin_signbit(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + signbit(_Tp __x) + { return __x < 0 ? true : false; } + + + + constexpr bool + isgreater(float __x, float __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(double __x, double __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(long double __x, long double __y) + { return __builtin_isgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isgreaterequal(float __x, float __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(double __x, double __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(long double __x, long double __y) + { return __builtin_isgreaterequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreaterequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreaterequal(__type(__x), __type(__y)); + } + + + + constexpr bool + isless(float __x, float __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(double __x, double __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(long double __x, long double __y) + { return __builtin_isless(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isless(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isless(__type(__x), __type(__y)); + } + + + + constexpr bool + islessequal(float __x, float __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(double __x, double __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(long double __x, long double __y) + { return __builtin_islessequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessequal(__type(__x), __type(__y)); + } + + + + constexpr bool + islessgreater(float __x, float __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(double __x, double __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(long double __x, long double __y) + { return __builtin_islessgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isunordered(float __x, float __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(double __x, double __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(long double __x, long double __y) + { return __builtin_isunordered(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isunordered(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isunordered(__type(__x), __type(__y)); + } +# 1820 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::acosf; + + + using ::acosl; + + + + using ::asinf; + + + using ::asinl; + + + + using ::atanf; + + + using ::atanl; + + + + using ::atan2f; + + + using ::atan2l; + + + + using ::ceilf; + + + using ::ceill; + + + + using ::cosf; + + + using ::cosl; + + + + using ::coshf; + + + using ::coshl; + + + + using ::expf; + + + using ::expl; + + + + using ::fabsf; + + + using ::fabsl; + + + + using ::floorf; + + + using ::floorl; + + + + using ::fmodf; + + + using ::fmodl; + + + + using ::frexpf; + + + using ::frexpl; + + + + using ::ldexpf; + + + using ::ldexpl; + + + + using ::logf; + + + using ::logl; + + + + using ::log10f; + + + using ::log10l; + + + + using ::modff; + + + using ::modfl; + + + + using ::powf; + + + using ::powl; + + + + using ::sinf; + + + using ::sinl; + + + + using ::sinhf; + + + using ::sinhl; + + + + using ::sqrtf; + + + using ::sqrtl; + + + + using ::tanf; + + + using ::tanl; + + + + using ::tanhf; + + + using ::tanhl; +# 2085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::double_t; + using ::float_t; + + + + using ::acosh; + using ::acoshf; + using ::acoshl; + + using ::asinh; + using ::asinhf; + using ::asinhl; + + using ::atanh; + using ::atanhf; + using ::atanhl; + + using ::cbrt; + using ::cbrtf; + using ::cbrtl; + + using ::copysign; + using ::copysignf; + using ::copysignl; + + using ::erf; + using ::erff; + using ::erfl; + + using ::erfc; + using ::erfcf; + using ::erfcl; + + using ::exp2; + using ::exp2f; + using ::exp2l; + + using ::expm1; + using ::expm1f; + using ::expm1l; + + using ::fdim; + using ::fdimf; + using ::fdiml; + + using ::fma; + using ::fmaf; + using ::fmal; + + using ::fmax; + using ::fmaxf; + using ::fmaxl; + + using ::fmin; + using ::fminf; + using ::fminl; + + using ::hypot; + using ::hypotf; + using ::hypotl; + + using ::ilogb; + using ::ilogbf; + using ::ilogbl; + + using ::lgamma; + using ::lgammaf; + using ::lgammal; + + + using ::llrint; + using ::llrintf; + using ::llrintl; + + using ::llround; + using ::llroundf; + using ::llroundl; + + + using ::log1p; + using ::log1pf; + using ::log1pl; + + using ::log2; + using ::log2f; + using ::log2l; + + using ::logb; + using ::logbf; + using ::logbl; + + using ::lrint; + using ::lrintf; + using ::lrintl; + + using ::lround; + using ::lroundf; + using ::lroundl; + + using ::nan; + using ::nanf; + using ::nanl; + + using ::nearbyint; + using ::nearbyintf; + using ::nearbyintl; + + using ::nextafter; + using ::nextafterf; + using ::nextafterl; + + using ::nexttoward; + using ::nexttowardf; + using ::nexttowardl; + + using ::remainder; + using ::remainderf; + using ::remainderl; + + using ::remquo; + using ::remquof; + using ::remquol; + + using ::rint; + using ::rintf; + using ::rintl; + + using ::round; + using ::roundf; + using ::roundl; + + using ::scalbln; + using ::scalblnf; + using ::scalblnl; + + using ::scalbn; + using ::scalbnf; + using ::scalbnl; + + using ::tgamma; + using ::tgammaf; + using ::tgammal; + + using ::trunc; + using ::truncf; + using ::truncl; + + + + constexpr float + acosh(float __x) + { return __builtin_acoshf(__x); } + + constexpr long double + acosh(long double __x) + { return __builtin_acoshl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acosh(_Tp __x) + { return __builtin_acosh(__x); } + + + + constexpr float + asinh(float __x) + { return __builtin_asinhf(__x); } + + constexpr long double + asinh(long double __x) + { return __builtin_asinhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asinh(_Tp __x) + { return __builtin_asinh(__x); } + + + + constexpr float + atanh(float __x) + { return __builtin_atanhf(__x); } + + constexpr long double + atanh(long double __x) + { return __builtin_atanhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atanh(_Tp __x) + { return __builtin_atanh(__x); } + + + + constexpr float + cbrt(float __x) + { return __builtin_cbrtf(__x); } + + constexpr long double + cbrt(long double __x) + { return __builtin_cbrtl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cbrt(_Tp __x) + { return __builtin_cbrt(__x); } + + + + constexpr float + copysign(float __x, float __y) + { return __builtin_copysignf(__x, __y); } + + constexpr long double + copysign(long double __x, long double __y) + { return __builtin_copysignl(__x, __y); } + + + + constexpr float + erf(float __x) + { return __builtin_erff(__x); } + + constexpr long double + erf(long double __x) + { return __builtin_erfl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erf(_Tp __x) + { return __builtin_erf(__x); } + + + + constexpr float + erfc(float __x) + { return __builtin_erfcf(__x); } + + constexpr long double + erfc(long double __x) + { return __builtin_erfcl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erfc(_Tp __x) + { return __builtin_erfc(__x); } + + + + constexpr float + exp2(float __x) + { return __builtin_exp2f(__x); } + + constexpr long double + exp2(long double __x) + { return __builtin_exp2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp2(_Tp __x) + { return __builtin_exp2(__x); } + + + + constexpr float + expm1(float __x) + { return __builtin_expm1f(__x); } + + constexpr long double + expm1(long double __x) + { return __builtin_expm1l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + expm1(_Tp __x) + { return __builtin_expm1(__x); } + + + + constexpr float + fdim(float __x, float __y) + { return __builtin_fdimf(__x, __y); } + + constexpr long double + fdim(long double __x, long double __y) + { return __builtin_fdiml(__x, __y); } + + + + constexpr float + fma(float __x, float __y, float __z) + { return __builtin_fmaf(__x, __y, __z); } + + constexpr long double + fma(long double __x, long double __y, long double __z) + { return __builtin_fmal(__x, __y, __z); } + + + + constexpr float + fmax(float __x, float __y) + { return __builtin_fmaxf(__x, __y); } + + constexpr long double + fmax(long double __x, long double __y) + { return __builtin_fmaxl(__x, __y); } + + + + constexpr float + fmin(float __x, float __y) + { return __builtin_fminf(__x, __y); } + + constexpr long double + fmin(long double __x, long double __y) + { return __builtin_fminl(__x, __y); } + + + + constexpr float + hypot(float __x, float __y) + { return __builtin_hypotf(__x, __y); } + + constexpr long double + hypot(long double __x, long double __y) + { return __builtin_hypotl(__x, __y); } + + + + constexpr int + ilogb(float __x) + { return __builtin_ilogbf(__x); } + + constexpr int + ilogb(long double __x) + { return __builtin_ilogbl(__x); } + + + + template + constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + ilogb(_Tp __x) + { return __builtin_ilogb(__x); } + + + + constexpr float + lgamma(float __x) + { return __builtin_lgammaf(__x); } + + constexpr long double + lgamma(long double __x) + { return __builtin_lgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + lgamma(_Tp __x) + { return __builtin_lgamma(__x); } + + + + constexpr long long + llrint(float __x) + { return __builtin_llrintf(__x); } + + constexpr long long + llrint(long double __x) + { return __builtin_llrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llrint(_Tp __x) + { return __builtin_llrint(__x); } + + + + constexpr long long + llround(float __x) + { return __builtin_llroundf(__x); } + + constexpr long long + llround(long double __x) + { return __builtin_llroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llround(_Tp __x) + { return __builtin_llround(__x); } + + + + constexpr float + log1p(float __x) + { return __builtin_log1pf(__x); } + + constexpr long double + log1p(long double __x) + { return __builtin_log1pl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log1p(_Tp __x) + { return __builtin_log1p(__x); } + + + + + constexpr float + log2(float __x) + { return __builtin_log2f(__x); } + + constexpr long double + log2(long double __x) + { return __builtin_log2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log2(_Tp __x) + { return __builtin_log2(__x); } + + + + constexpr float + logb(float __x) + { return __builtin_logbf(__x); } + + constexpr long double + logb(long double __x) + { return __builtin_logbl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + logb(_Tp __x) + { return __builtin_logb(__x); } + + + + constexpr long + lrint(float __x) + { return __builtin_lrintf(__x); } + + constexpr long + lrint(long double __x) + { return __builtin_lrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lrint(_Tp __x) + { return __builtin_lrint(__x); } + + + + constexpr long + lround(float __x) + { return __builtin_lroundf(__x); } + + constexpr long + lround(long double __x) + { return __builtin_lroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lround(_Tp __x) + { return __builtin_lround(__x); } + + + + constexpr float + nearbyint(float __x) + { return __builtin_nearbyintf(__x); } + + constexpr long double + nearbyint(long double __x) + { return __builtin_nearbyintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nearbyint(_Tp __x) + { return __builtin_nearbyint(__x); } + + + + constexpr float + nextafter(float __x, float __y) + { return __builtin_nextafterf(__x, __y); } + + constexpr long double + nextafter(long double __x, long double __y) + { return __builtin_nextafterl(__x, __y); } + + + + constexpr float + nexttoward(float __x, long double __y) + { return __builtin_nexttowardf(__x, __y); } + + constexpr long double + nexttoward(long double __x, long double __y) + { return __builtin_nexttowardl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nexttoward(_Tp __x, long double __y) + { return __builtin_nexttoward(__x, __y); } + + + + constexpr float + remainder(float __x, float __y) + { return __builtin_remainderf(__x, __y); } + + constexpr long double + remainder(long double __x, long double __y) + { return __builtin_remainderl(__x, __y); } + + + + inline float + remquo(float __x, float __y, int* __pquo) + { return __builtin_remquof(__x, __y, __pquo); } + + inline long double + remquo(long double __x, long double __y, int* __pquo) + { return __builtin_remquol(__x, __y, __pquo); } + + + + constexpr float + rint(float __x) + { return __builtin_rintf(__x); } + + constexpr long double + rint(long double __x) + { return __builtin_rintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + rint(_Tp __x) + { return __builtin_rint(__x); } + + + + constexpr float + round(float __x) + { return __builtin_roundf(__x); } + + constexpr long double + round(long double __x) + { return __builtin_roundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + round(_Tp __x) + { return __builtin_round(__x); } + + + + constexpr float + scalbln(float __x, long __ex) + { return __builtin_scalblnf(__x, __ex); } + + constexpr long double + scalbln(long double __x, long __ex) + { return __builtin_scalblnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbln(_Tp __x, long __ex) + { return __builtin_scalbln(__x, __ex); } + + + + constexpr float + scalbn(float __x, int __ex) + { return __builtin_scalbnf(__x, __ex); } + + constexpr long double + scalbn(long double __x, int __ex) + { return __builtin_scalbnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbn(_Tp __x, int __ex) + { return __builtin_scalbn(__x, __ex); } + + + + constexpr float + tgamma(float __x) + { return __builtin_tgammaf(__x); } + + constexpr long double + tgamma(long double __x) + { return __builtin_tgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tgamma(_Tp __x) + { return __builtin_tgamma(__x); } + + + + constexpr float + trunc(float __x) + { return __builtin_truncf(__x); } + + constexpr long double + trunc(long double __x) + { return __builtin_truncl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + trunc(_Tp __x) + { return __builtin_trunc(__x); } +# 3682 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + copysign(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return copysign(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fdim(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fdim(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmax(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmax(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmin(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmin(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + hypot(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return hypot(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + nextafter(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return nextafter(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remainder(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remainder(__type(__x), __type(__y)); + } + + template + inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remquo(_Tp __x, _Up __y, int* __pquo) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remquo(__type(__x), __type(__y), __pquo); + } + + template + constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type + fma(_Tp __x, _Up __y, _Vp __z) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; + return fma(__type(__x), __type(__y), __type(__z)); + } + + + + + + + + template + inline _Tp + __hypot3(_Tp __x, _Tp __y, _Tp __z) + { + __x = std::abs(__x); + __y = std::abs(__y); + __z = std::abs(__z); + if (_Tp __a = __x < __y ? __y < __z ? __z : __y : __x < __z ? __z : __x) + return __a * std::sqrt((__x / __a) * (__x / __a) + + (__y / __a) * (__y / __a) + + (__z / __a) * (__z / __a)); + else + return {}; + } + + inline float + hypot(float __x, float __y, float __z) + { return std::__hypot3(__x, __y, __z); } + + inline double + hypot(double __x, double __y, double __z) + { return std::__hypot3(__x, __y, __z); } + + inline long double + hypot(long double __x, long double __y, long double __z) + { return std::__hypot3(__x, __y, __z); } + + template + __gnu_cxx::__promoted_t<_Tp, _Up, _Vp> + hypot(_Tp __x, _Up __y, _Vp __z) + { + using __type = __gnu_cxx::__promoted_t<_Tp, _Up, _Vp>; + return std::__hypot3<__type>(__x, __y, __z); + } +# 3902 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +} + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 1 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 1 3 +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_defines.h" 1 3 +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + void + __throw_bad_exception(void) __attribute__((__noreturn__)); + + + void + __throw_bad_alloc(void) __attribute__((__noreturn__)); + + void + __throw_bad_array_new_length(void) __attribute__((__noreturn__)); + + + void + __throw_bad_cast(void) __attribute__((__noreturn__,__cold__)); + + void + __throw_bad_typeid(void) __attribute__((__noreturn__,__cold__)); + + + void + __throw_logic_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_domain_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_invalid_argument(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_length_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_out_of_range(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__,__cold__)) + __attribute__((__format__(__gnu_printf__, 1, 2))); + + void + __throw_runtime_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_range_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_overflow_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_underflow_error(const char*) __attribute__((__noreturn__,__cold__)); + + + void + __throw_ios_failure(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_ios_failure(const char*, int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_system_error(int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_future_error(int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_bad_function_call() __attribute__((__noreturn__,__cold__)); +# 140 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 + +} +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + struct __is_integer_nonstrict + : public std::__is_integer<_Tp> + { + using std::__is_integer<_Tp>::__value; + + + enum { __width = __value ? sizeof(_Tp) * 8 : 0 }; + }; + + template + struct __numeric_traits_integer + { + + static_assert(__is_integer_nonstrict<_Value>::__value, + "invalid specialization"); + + + + + static const bool __is_signed = (_Value)(-1) < 0; + static const int __digits + = __is_integer_nonstrict<_Value>::__width - __is_signed; + + + static const _Value __max = __is_signed + ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1) + : ~(_Value)0; + static const _Value __min = __is_signed ? -__max - 1 : (_Value)0; + }; + + template + const _Value __numeric_traits_integer<_Value>::__min; + + template + const _Value __numeric_traits_integer<_Value>::__max; + + template + const bool __numeric_traits_integer<_Value>::__is_signed; + + template + const int __numeric_traits_integer<_Value>::__digits; +# 137 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + using __int_traits = __numeric_traits_integer<_Tp>; +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + struct __numeric_traits_floating + { + + static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); + + + static const bool __is_signed = true; + static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); + static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); + }; + + template + const int __numeric_traits_floating<_Value>::__max_digits10; + + template + const bool __numeric_traits_floating<_Value>::__is_signed; + + template + const int __numeric_traits_floating<_Value>::__digits10; + + template + const int __numeric_traits_floating<_Value>::__max_exponent10; + + + + + + + template + struct __numeric_traits + : public __numeric_traits_integer<_Value> + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; +# 238 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + +} +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 1 3 +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + class reference_wrapper; +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + using value_type = _Tp; + using type = integral_constant<_Tp, __v>; + constexpr operator value_type() const noexcept { return value; } + + + constexpr value_type operator()() const noexcept { return value; } + + }; +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + using __bool_constant = integral_constant; + + + + using true_type = __bool_constant; + + + using false_type = __bool_constant; + + + + + template + using bool_constant = __bool_constant<__v>; + + + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { using type = _Tp; }; + + + template + using __enable_if_t = typename enable_if<_Cond, _Tp>::type; + + template + struct __conditional + { + template + using type = _Tp; + }; + + template<> + struct __conditional + { + template + using type = _Up; + }; + + + template + using __conditional_t + = typename __conditional<_Cond>::template type<_If, _Else>; + + + template + struct __type_identity + { using type = _Type; }; + + template + using __type_identity_t = typename __type_identity<_Tp>::type; + + namespace __detail + { + + template + using __first_t = _Tp; + + + template + auto __or_fn(int) -> __first_t...>; + + template + auto __or_fn(...) -> true_type; + + template + auto __and_fn(int) -> __first_t...>; + + template + auto __and_fn(...) -> false_type; + } + + + + + template + struct __or_ + : decltype(__detail::__or_fn<_Bn...>(0)) + { }; + + template + struct __and_ + : decltype(__detail::__and_fn<_Bn...>(0)) + { }; + + template + struct __not_ + : __bool_constant + { }; + + + + + + template + inline constexpr bool __or_v = __or_<_Bn...>::value; + template + inline constexpr bool __and_v = __and_<_Bn...>::value; + + namespace __detail + { + template + struct __disjunction_impl + { using type = _B1; }; + + template + struct __disjunction_impl<__enable_if_t, _B1, _B2, _Bn...> + { using type = typename __disjunction_impl::type; }; + + template + struct __conjunction_impl + { using type = _B1; }; + + template + struct __conjunction_impl<__enable_if_t, _B1, _B2, _Bn...> + { using type = typename __conjunction_impl::type; }; + } + + + template + struct conjunction + : __detail::__conjunction_impl::type + { }; + + template<> + struct conjunction<> + : true_type + { }; + + template + struct disjunction + : __detail::__disjunction_impl::type + { }; + + template<> + struct disjunction<> + : false_type + { }; + + template + struct negation + : __not_<_Pp>::type + { }; + + + + + template + inline constexpr bool conjunction_v = conjunction<_Bn...>::value; + + template + inline constexpr bool disjunction_v = disjunction<_Bn...>::value; + + template + inline constexpr bool negation_v = negation<_Pp>::value; + + + + + + template + struct is_reference; + template + struct is_function; + template + struct is_void; + template + struct remove_cv; + template + struct is_const; + + + template + struct __is_array_unknown_bounds; + + + + + template + constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>) + { return {}; } + + template + constexpr typename __or_< + is_reference<_NestedType>, + is_function<_NestedType>, + is_void<_NestedType>, + __is_array_unknown_bounds<_NestedType> + >::type __is_complete_or_unbounded(_TypeIdentity) + { return {}; } + + + template + using __remove_cv_t = typename remove_cv<_Tp>::type; + + + + + + template + struct is_void + : public false_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + + template + struct __is_integral_helper + : public false_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + + + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + __extension__ + template<> + struct __is_integral_helper<__int128> + : public true_type { }; + + __extension__ + template<> + struct __is_integral_helper + : public true_type { }; +# 460 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_integral + : public __is_integral_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct __is_floating_point_helper + : public false_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; +# 513 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __is_floating_point_helper<__float128> + : public true_type { }; + + + + + template + struct is_floating_point + : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type + { }; + + + + template + struct is_array + : public __bool_constant<__is_array(_Tp)> + { }; +# 545 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __is_pointer_helper + : public false_type { }; + + template + struct __is_pointer_helper<_Tp*> + : public true_type { }; + + + template + struct is_pointer + : public __is_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct is_lvalue_reference + : public false_type { }; + + template + struct is_lvalue_reference<_Tp&> + : public true_type { }; + + + template + struct is_rvalue_reference + : public false_type { }; + + template + struct is_rvalue_reference<_Tp&&> + : public true_type { }; + + + + template + struct is_member_object_pointer + : public __bool_constant<__is_member_object_pointer(_Tp)> + { }; +# 601 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_member_function_pointer + : public __bool_constant<__is_member_function_pointer(_Tp)> + { }; +# 622 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_enum + : public __bool_constant<__is_enum(_Tp)> + { }; + + + template + struct is_union + : public __bool_constant<__is_union(_Tp)> + { }; + + + template + struct is_class + : public __bool_constant<__is_class(_Tp)> + { }; + + + + template + struct is_function + : public __bool_constant<__is_function(_Tp)> + { }; +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_null_pointer + : public false_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); + + + + + + + template + struct is_reference + : public __bool_constant<__is_reference(_Tp)> + { }; +# 715 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_arithmetic + : public __or_, is_floating_point<_Tp>>::type + { }; + + + template + struct is_fundamental + : public __or_, is_void<_Tp>, + is_null_pointer<_Tp>>::type + { }; + + + + template + struct is_object + : public __bool_constant<__is_object(_Tp)> + { }; +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_member_pointer; + + + template + struct is_scalar + : public __or_, is_enum<_Tp>, is_pointer<_Tp>, + is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type + { }; + + + template + struct is_compound + : public __bool_constant::value> { }; + + + + template + struct is_member_pointer + : public __bool_constant<__is_member_pointer(_Tp)> + { }; +# 779 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_same; + + + template + using __is_one_of = __or_...>; + + + __extension__ + template + using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>, + signed char, signed short, signed int, signed long, + signed long long + + , signed __int128 +# 804 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + >; + + + __extension__ + template + using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>, + unsigned char, unsigned short, unsigned int, unsigned long, + unsigned long long + + , unsigned __int128 +# 824 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + >; + + + template + using __is_standard_integer + = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>; + + + template using __void_t = void; + + + + + + template + struct is_const + : public false_type { }; + + template + struct is_const<_Tp const> + : public true_type { }; + + + template + struct is_volatile + : public false_type { }; + + template + struct is_volatile<_Tp volatile> + : public true_type { }; + + + template + struct is_trivial + : public __bool_constant<__is_trivial(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_copyable + : public __bool_constant<__is_trivially_copyable(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_standard_layout + : public __bool_constant<__is_standard_layout(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + + template + struct + + is_pod + : public __bool_constant<__is_pod(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + template + struct + [[__deprecated__]] + is_literal_type + : public __bool_constant<__is_literal_type(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_empty + : public __bool_constant<__is_empty(_Tp)> + { }; + + + template + struct is_polymorphic + : public __bool_constant<__is_polymorphic(_Tp)> + { }; + + + + + template + struct is_final + : public __bool_constant<__is_final(_Tp)> + { }; + + + + template + struct is_abstract + : public __bool_constant<__is_abstract(_Tp)> + { }; + + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public __bool_constant<_Tp(-1) < _Tp(0)> + { }; + + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>>::type + { }; + + + template + _Up + __declval(int); + + template + _Tp + __declval(long); + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)); + + template + struct remove_all_extents; + + + template + struct __is_array_known_bounds + : public false_type + { }; + + template + struct __is_array_known_bounds<_Tp[_Size]> + : public true_type + { }; + + template + struct __is_array_unknown_bounds + : public false_type + { }; + + template + struct __is_array_unknown_bounds<_Tp[]> + : public true_type + { }; +# 1006 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + struct __do_is_destructible_impl + { + template().~_Tp())> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_destructible_impl + : public __do_is_destructible_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_destructible_safe; + + template + struct __is_destructible_safe<_Tp, false, false> + : public __is_destructible_impl::type>::type + { }; + + template + struct __is_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_destructible_safe<_Tp, false, true> + : public true_type { }; + + + + template + struct is_destructible + : public __is_destructible_safe<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + + + struct __do_is_nt_destructible_impl + { + template + static __bool_constant().~_Tp())> + __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_nt_destructible_impl + : public __do_is_nt_destructible_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_nt_destructible_safe; + + template + struct __is_nt_destructible_safe<_Tp, false, false> + : public __is_nt_destructible_impl::type>::type + { }; + + template + struct __is_nt_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_nt_destructible_safe<_Tp, false, true> + : public true_type { }; + + + + template + struct is_nothrow_destructible + : public __is_nt_destructible_safe<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_constructible_impl + = __bool_constant<__is_constructible(_Tp, _Args...)>; + + + + template + struct is_constructible + : public __is_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_default_constructible + : public __is_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct __add_lvalue_reference_helper + { using type = _Tp; }; + + template + struct __add_lvalue_reference_helper<_Tp, __void_t<_Tp&>> + { using type = _Tp&; }; + + template + using __add_lval_ref_t = typename __add_lvalue_reference_helper<_Tp>::type; + + + + template + struct is_copy_constructible + : public __is_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct __add_rvalue_reference_helper + { using type = _Tp; }; + + template + struct __add_rvalue_reference_helper<_Tp, __void_t<_Tp&&>> + { using type = _Tp&&; }; + + template + using __add_rval_ref_t = typename __add_rvalue_reference_helper<_Tp>::type; + + + + template + struct is_move_constructible + : public __is_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_nothrow_constructible_impl + = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; + + + + template + struct is_nothrow_constructible + : public __is_nothrow_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_default_constructible + : public __is_nothrow_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_assignable_impl = __bool_constant<__is_assignable(_Tp, _Up)>; + + + + template + struct is_assignable + : public __is_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_copy_assignable + : public __is_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_move_assignable + : public __is_assignable_impl<__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_nothrow_assignable_impl + = __bool_constant<__is_nothrow_assignable(_Tp, _Up)>; + + + + template + struct is_nothrow_assignable + : public __is_nothrow_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_copy_assignable + : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_move_assignable + : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_trivially_constructible_impl + = __bool_constant<__is_trivially_constructible(_Tp, _Args...)>; + + + + template + struct is_trivially_constructible + : public __is_trivially_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_default_constructible + : public __is_trivially_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; +# 1319 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + struct __do_is_implicitly_default_constructible_impl + { + template + static void __helper(const _Tp&); + + template + static true_type __test(const _Tp&, + decltype(__helper({}))* = 0); + + static false_type __test(...); + }; + + template + struct __is_implicitly_default_constructible_impl + : public __do_is_implicitly_default_constructible_impl + { + using type = decltype(__test(declval<_Tp>())); + }; + + template + struct __is_implicitly_default_constructible_safe + : public __is_implicitly_default_constructible_impl<_Tp>::type + { }; + + template + struct __is_implicitly_default_constructible + : public __and_<__is_constructible_impl<_Tp>, + __is_implicitly_default_constructible_safe<_Tp>>::type + { }; + + + + template + struct is_trivially_copy_constructible + : public __is_trivially_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_move_constructible + : public __is_trivially_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_trivially_assignable_impl + = __bool_constant<__is_trivially_assignable(_Tp, _Up)>; + + + + template + struct is_trivially_assignable + : public __is_trivially_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_copy_assignable + : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_move_assignable + : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_destructible + : public __and_<__is_destructible_safe<_Tp>, + __bool_constant<__has_trivial_destructor(_Tp)>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + struct has_virtual_destructor + : public __bool_constant<__has_virtual_destructor(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + template + struct alignment_of + : public integral_constant + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct rank + : public integral_constant { }; + + template + struct rank<_Tp[_Size]> + : public integral_constant::value> { }; + + template + struct rank<_Tp[]> + : public integral_constant::value> { }; + + + template + struct extent + : public integral_constant { }; + + template + struct extent<_Tp[_Size], 0> + : public integral_constant { }; + + template + struct extent<_Tp[_Size], _Uint> + : public extent<_Tp, _Uint - 1>::type { }; + + template + struct extent<_Tp[], 0> + : public integral_constant { }; + + template + struct extent<_Tp[], _Uint> + : public extent<_Tp, _Uint - 1>::type { }; + + + + + + + template + struct is_same + : public __bool_constant<__is_same(_Tp, _Up)> + { }; +# 1491 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_base_of + : public __bool_constant<__is_base_of(_Base, _Derived)> + { }; + + + template + struct is_convertible + : public __bool_constant<__is_convertible(_From, _To)> + { }; +# 1540 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + using __is_array_convertible + = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; +# 1600 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++14-extensions" + template + struct __is_nothrow_new_constructible_impl + : __bool_constant< + noexcept(::new(std::declval()) _Tp(std::declval<_Args>()...)) + > + { }; + + template + inline constexpr bool __is_nothrow_new_constructible + = __and_, + __is_nothrow_new_constructible_impl<_Tp, _Args...>>::value; +#pragma GCC diagnostic pop + + + + + template + struct remove_const + { using type = _Tp; }; + + template + struct remove_const<_Tp const> + { using type = _Tp; }; + + + template + struct remove_volatile + { using type = _Tp; }; + + template + struct remove_volatile<_Tp volatile> + { using type = _Tp; }; + + + + template + struct remove_cv + { using type = __remove_cv(_Tp); }; +# 1659 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct add_const + { using type = _Tp const; }; + + + template + struct add_volatile + { using type = _Tp volatile; }; + + + template + struct add_cv + { using type = _Tp const volatile; }; + + + + template + using remove_const_t = typename remove_const<_Tp>::type; + + + template + using remove_volatile_t = typename remove_volatile<_Tp>::type; + + + template + using remove_cv_t = typename remove_cv<_Tp>::type; + + + template + using add_const_t = typename add_const<_Tp>::type; + + + template + using add_volatile_t = typename add_volatile<_Tp>::type; + + + template + using add_cv_t = typename add_cv<_Tp>::type; + + + + + + + template + struct remove_reference + { using type = __remove_reference(_Tp); }; +# 1721 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct add_lvalue_reference + { using type = __add_lval_ref_t<_Tp>; }; + + + template + struct add_rvalue_reference + { using type = __add_rval_ref_t<_Tp>; }; + + + + template + using remove_reference_t = typename remove_reference<_Tp>::type; + + + template + using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; + + + template + using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; + + + + + + + + template + struct __cv_selector; + + template + struct __cv_selector<_Unqualified, false, false> + { using __type = _Unqualified; }; + + template + struct __cv_selector<_Unqualified, false, true> + { using __type = volatile _Unqualified; }; + + template + struct __cv_selector<_Unqualified, true, false> + { using __type = const _Unqualified; }; + + template + struct __cv_selector<_Unqualified, true, true> + { using __type = const volatile _Unqualified; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + using __match = __cv_selector<_Unqualified, _IsConst, _IsVol>; + + public: + using __type = typename __match::__type; + }; + + + template + struct __make_unsigned + { using __type = _Tp; }; + + template<> + struct __make_unsigned + { using __type = unsigned char; }; + + template<> + struct __make_unsigned + { using __type = unsigned char; }; + + template<> + struct __make_unsigned + { using __type = unsigned short; }; + + template<> + struct __make_unsigned + { using __type = unsigned int; }; + + template<> + struct __make_unsigned + { using __type = unsigned long; }; + + template<> + struct __make_unsigned + { using __type = unsigned long long; }; + + + __extension__ + template<> + struct __make_unsigned<__int128> + { using __type = unsigned __int128; }; +# 1834 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, + bool _IsEnum = __is_enum(_Tp)> + class __make_unsigned_selector; + + template + class __make_unsigned_selector<_Tp, true, false> + { + using __unsigned_type + = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + class __make_unsigned_selector_base + { + protected: + template struct _List { }; + + template + struct _List<_Tp, _Up...> : _List<_Up...> + { static constexpr size_t __size = sizeof(_Tp); }; + + template + struct __select; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, true> + { using __type = _Uint; }; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, false> + : __select<_Sz, _List<_UInts...>> + { }; + }; + + + template + class __make_unsigned_selector<_Tp, false, true> + : __make_unsigned_selector_base + { + + using _UInts = _List; + + using __unsigned_type = typename __select::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + + + + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; +# 1908 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + + + + + + template + struct make_unsigned + { using type = typename __make_unsigned_selector<_Tp>::__type; }; + + + template<> struct make_unsigned; + template<> struct make_unsigned; + template<> struct make_unsigned; + template<> struct make_unsigned; + + + + + template + struct __make_signed + { using __type = _Tp; }; + + template<> + struct __make_signed + { using __type = signed char; }; + + template<> + struct __make_signed + { using __type = signed char; }; + + template<> + struct __make_signed + { using __type = signed short; }; + + template<> + struct __make_signed + { using __type = signed int; }; + + template<> + struct __make_signed + { using __type = signed long; }; + + template<> + struct __make_signed + { using __type = signed long long; }; + + + __extension__ + template<> + struct __make_signed + { using __type = __int128; }; +# 1994 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, + bool _IsEnum = __is_enum(_Tp)> + class __make_signed_selector; + + template + class __make_signed_selector<_Tp, true, false> + { + using __signed_type + = typename __make_signed<__remove_cv_t<_Tp>>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; + }; + + + template + class __make_signed_selector<_Tp, false, true> + { + using __unsigned_type = typename __make_unsigned_selector<_Tp>::__type; + + public: + using __type = typename __make_signed_selector<__unsigned_type>::__type; + }; + + + + + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; +# 2040 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + + + + + + template + struct make_signed + { using type = typename __make_signed_selector<_Tp>::__type; }; + + + template<> struct make_signed; + template<> struct make_signed; + template<> struct make_signed; + template<> struct make_signed; + + + + template + using make_signed_t = typename make_signed<_Tp>::type; + + + template + using make_unsigned_t = typename make_unsigned<_Tp>::type; + + + + + + template + struct remove_extent + { using type = _Tp; }; + + template + struct remove_extent<_Tp[_Size]> + { using type = _Tp; }; + + template + struct remove_extent<_Tp[]> + { using type = _Tp; }; + + + template + struct remove_all_extents + { using type = _Tp; }; + + template + struct remove_all_extents<_Tp[_Size]> + { using type = typename remove_all_extents<_Tp>::type; }; + + template + struct remove_all_extents<_Tp[]> + { using type = typename remove_all_extents<_Tp>::type; }; + + + + template + using remove_extent_t = typename remove_extent<_Tp>::type; + + + template + using remove_all_extents_t = typename remove_all_extents<_Tp>::type; + + + + + + + template + struct remove_pointer + { using type = __remove_pointer(_Tp); }; +# 2139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __add_pointer_helper + { using type = _Tp; }; + + template + struct __add_pointer_helper<_Tp, __void_t<_Tp*>> + { using type = _Tp*; }; + + + template + struct add_pointer + : public __add_pointer_helper<_Tp> + { }; + + template + struct add_pointer<_Tp&> + { using type = _Tp*; }; + + template + struct add_pointer<_Tp&&> + { using type = _Tp*; }; + + + + template + using remove_pointer_t = typename remove_pointer<_Tp>::type; + + + template + using add_pointer_t = typename add_pointer<_Tp>::type; + + + template + struct __aligned_storage_msa + { + union __type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__)) { } __align; + }; + }; +# 2194 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::__type)> + struct + + aligned_storage + { + union type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__((_Align)))) { } __align; + }; + }; + + template + struct __strictest_alignment + { + static const size_t _S_alignment = 0; + static const size_t _S_size = 0; + }; + + template + struct __strictest_alignment<_Tp, _Types...> + { + static const size_t _S_alignment = + alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment + ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; + static const size_t _S_size = + sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size + ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 2240 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct + + aligned_union + { + private: + static_assert(sizeof...(_Types) != 0, "At least one type is required"); + + using __strictest = __strictest_alignment<_Types...>; + static const size_t _S_len = _Len > __strictest::_S_size + ? _Len : __strictest::_S_size; + public: + + static const size_t alignment_value = __strictest::_S_alignment; + + using type = typename aligned_storage<_S_len, alignment_value>::type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; +#pragma GCC diagnostic pop + + + + + + template + struct __decay_selector + : __conditional_t::value, + remove_cv<_Up>, + add_pointer<_Up>> + { }; + + template + struct __decay_selector<_Up[_Nm]> + { using type = _Up*; }; + + template + struct __decay_selector<_Up[]> + { using type = _Up*; }; + + + + + template + struct decay + { using type = typename __decay_selector<_Tp>::type; }; + + template + struct decay<_Tp&> + { using type = typename __decay_selector<_Tp>::type; }; + + template + struct decay<_Tp&&> + { using type = typename __decay_selector<_Tp>::type; }; + + + + + template + struct __strip_reference_wrapper + { + using __type = _Tp; + }; + + template + struct __strip_reference_wrapper > + { + using __type = _Tp&; + }; + + + template + using __decay_t = typename decay<_Tp>::type; + + template + using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; + + + + + + template + using _Require = __enable_if_t<__and_<_Cond...>::value>; + + + template + using __remove_cvref_t + = typename remove_cv::type>::type; + + + + + template + struct conditional + { using type = _Iftrue; }; + + + template + struct conditional + { using type = _Iffalse; }; + + + template + struct common_type; +# 2355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __success_type + { using type = _Tp; }; + + struct __failure_type + { }; + + struct __do_common_type_impl + { + template + using __cond_t + = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); + + + + template + static __success_type<__decay_t<__cond_t<_Tp, _Up>>> + _S_test(int); +# 2382 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + static __failure_type + _S_test_2(...); + + template + static decltype(_S_test_2<_Tp, _Up>(0)) + _S_test(...); + }; + + + template<> + struct common_type<> + { }; + + + template + struct common_type<_Tp0> + : public common_type<_Tp0, _Tp0> + { }; + + + template, typename _Dp2 = __decay_t<_Tp2>> + struct __common_type_impl + { + + + using type = common_type<_Dp1, _Dp2>; + }; + + template + struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> + : private __do_common_type_impl + { + + + using type = decltype(_S_test<_Tp1, _Tp2>(0)); + }; + + + template + struct common_type<_Tp1, _Tp2> + : public __common_type_impl<_Tp1, _Tp2>::type + { }; + + template + struct __common_type_pack + { }; + + template + struct __common_type_fold; + + + template + struct common_type<_Tp1, _Tp2, _Rp...> + : public __common_type_fold, + __common_type_pack<_Rp...>> + { }; + + + + + template + struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, + __void_t> + : public common_type + { }; + + + template + struct __common_type_fold<_CTp, _Rp, void> + { }; + + template + struct __underlying_type_impl + { + using type = __underlying_type(_Tp); + }; + + template + struct __underlying_type_impl<_Tp, false> + { }; + + + + template + struct underlying_type + : public __underlying_type_impl<_Tp> + { }; + + + template + struct __declval_protector + { + static const bool __stop = false; + }; + + + + + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)) + { + static_assert(__declval_protector<_Tp>::__stop, + "declval() must not be used!"); + return __declval<_Tp>(0); + } + + + template + struct result_of; + + + + + struct __invoke_memfun_ref { }; + struct __invoke_memfun_deref { }; + struct __invoke_memobj_ref { }; + struct __invoke_memobj_deref { }; + struct __invoke_other { }; + + + template + struct __result_of_success : __success_type<_Tp> + { using __invoke_type = _Tag; }; + + + struct __result_of_memfun_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_ref + : private __result_of_memfun_ref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); + }; + + + struct __result_of_memfun_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_deref + : private __result_of_memfun_deref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); + }; + + + struct __result_of_memobj_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>() + ), __invoke_memobj_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_ref + : private __result_of_memobj_ref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg>(0)); + }; + + + struct __result_of_memobj_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>() + ), __invoke_memobj_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_deref + : private __result_of_memobj_deref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg>(0)); + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + using _Argval = __remove_cvref_t<_Arg>; + using _MemPtr = _Res _Class::*; + using type = typename __conditional_t<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + using _Argval = typename remove_reference<_Arg>::type; + using _MemPtr = _Res _Class::*; + using type = typename __conditional_t::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type; + }; + + + + + + + template> + struct __inv_unwrap + { + using type = _Tp; + }; + + template + struct __inv_unwrap<_Tp, reference_wrapper<_Up>> + { + using type = _Up&; + }; + + template + struct __result_of_impl + { + using type = __failure_type; + }; + + template + struct __result_of_impl + : public __result_of_memobj<__decay_t<_MemPtr>, + typename __inv_unwrap<_Arg>::type> + { }; + + template + struct __result_of_impl + : public __result_of_memfun<__decay_t<_MemPtr>, + typename __inv_unwrap<_Arg>::type, _Args...> + { }; + + + struct __result_of_other_impl + { + template + static __result_of_success()(std::declval<_Args>()...) + ), __invoke_other> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_impl + : private __result_of_other_impl + { + using type = decltype(_S_test<_Functor, _ArgTypes...>(0)); + }; + + + template + struct __invoke_result + : public __result_of_impl< + is_member_object_pointer< + typename remove_reference<_Functor>::type + >::value, + is_member_function_pointer< + typename remove_reference<_Functor>::type + >::value, + _Functor, _ArgTypes... + >::type + { }; + + + template + using __invoke_result_t = typename __invoke_result<_Fn, _Args...>::type; + + + template + struct result_of<_Functor(_ArgTypes...)> + : public __invoke_result<_Functor, _ArgTypes...> + { } __attribute__ ((__deprecated__ ("use '" "std::invoke_result" "' instead"))); + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + + template::__type)> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + + template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; +#pragma GCC diagnostic pop + + + template + using decay_t = typename decay<_Tp>::type; + + + template + using enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template + using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; + + + template + using common_type_t = typename common_type<_Tp...>::type; + + + template + using underlying_type_t = typename underlying_type<_Tp>::type; + + + template + using result_of_t = typename result_of<_Tp>::type; + + + + + template using void_t = void; +# 2759 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template class _Op, typename... _Args> + struct __detector + { + using type = _Default; + using __is_detected = false_type; + }; + + + template class _Op, + typename... _Args> + struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> + { + using type = _Op<_Args...>; + using __is_detected = true_type; + }; + + template class _Op, + typename... _Args> + using __detected_or = __detector<_Default, void, _Op, _Args...>; + + + + template class _Op, + typename... _Args> + using __detected_or_t + = typename __detected_or<_Default, _Op, _Args...>::type; +# 2801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __is_swappable; + + template + struct __is_nothrow_swappable; + + template + struct __is_tuple_like_impl : false_type + { }; + + + template + struct __is_tuple_like + : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type + { }; + + + template + + inline + _Require<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>> + swap(_Tp&, _Tp&) + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value); + + template + + inline + __enable_if_t<__is_swappable<_Tp>::value> + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value); + + + namespace __swappable_details { + using std::swap; + + struct __do_is_swappable_impl + { + template(), std::declval<_Tp&>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_impl + : public __swappable_details::__do_is_swappable_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template + struct __is_nothrow_swappable_impl + : public __swappable_details::__do_is_nothrow_swappable_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template + struct __is_swappable + : public __is_swappable_impl<_Tp>::type + { }; + + template + struct __is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { }; + + + + + + + template + struct is_swappable + : public __is_swappable_impl<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool is_swappable_v = + is_swappable<_Tp>::value; + + + template + inline constexpr bool is_nothrow_swappable_v = + is_nothrow_swappable<_Tp>::value; + + + + namespace __swappable_with_details { + using std::swap; + + struct __do_is_swappable_with_impl + { + template(), std::declval<_Up>())), + typename + = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_with_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) + && + noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_with_impl + : public __swappable_with_details::__do_is_swappable_with_impl + { + using type = decltype(__test<_Tp, _Up>(0)); + }; + + + template + struct __is_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_swappable_impl + { + using type = decltype(__test<_Tp&>(0)); + }; + + template + struct __is_nothrow_swappable_with_impl + : public __swappable_with_details::__do_is_nothrow_swappable_with_impl + { + using type = decltype(__test<_Tp, _Up>(0)); + }; + + + template + struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_nothrow_swappable_impl + { + using type = decltype(__test<_Tp&>(0)); + }; + + + + template + struct is_swappable_with + : public __is_swappable_with_impl<_Tp, _Up>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "first template argument must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), + "second template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_swappable_with + : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "first template argument must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), + "second template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool is_swappable_with_v = + is_swappable_with<_Tp, _Up>::value; + + + template + inline constexpr bool is_nothrow_swappable_with_v = + is_nothrow_swappable_with<_Tp, _Up>::value; +# 3023 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, typename = void> + struct __is_invocable_impl + : false_type + { + using __nothrow_conv = false_type; + }; + + + template + struct __is_invocable_impl<_Result, _Ret, + true, + __void_t> + : true_type + { + using __nothrow_conv = true_type; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + + template + struct __is_invocable_impl<_Result, _Ret, + false, + __void_t> + { + private: + + using _Res_t = typename _Result::type; + + + + static _Res_t _S_get() noexcept; + + + template + static void _S_conv(__type_identity_t<_Tp>) noexcept; + + + template(_S_get())), + typename = decltype(_S_conv<_Tp>(_S_get())), + + bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t) + + + + > + static __bool_constant<_Nothrow && !_Dangle> + _S_test(int); + + template + static false_type + _S_test(...); + + public: + + using type = decltype(_S_test<_Ret, true>(1)); + + + using __nothrow_conv = decltype(_S_test<_Ret>(1)); + }; +#pragma GCC diagnostic pop + + template + struct __is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { }; + + template + constexpr bool __call_is_nt(__invoke_memfun_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept((std::declval<_Up>().*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memfun_deref) + { + return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept(std::declval<_Up>().*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_deref) + { + return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_other) + { + return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); + } + + template + struct __call_is_nothrow + : __bool_constant< + std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) + > + { }; + + template + using __call_is_nothrow_ + = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; + + + template + struct __is_nothrow_invocable + : __and_<__is_invocable<_Fn, _Args...>, + __call_is_nothrow_<_Fn, _Args...>>::type + { }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + struct __nonesuchbase {}; + struct __nonesuch : private __nonesuchbase { + ~__nonesuch() = delete; + __nonesuch(__nonesuch const&) = delete; + void operator=(__nonesuch const&) = delete; + }; +#pragma GCC diagnostic pop + + + + + template + struct invoke_result + : public __invoke_result<_Functor, _ArgTypes...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Functor>{}), + "_Functor must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + template + using invoke_result_t = typename invoke_result<_Fn, _Args...>::type; + + + template + struct is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + template + struct is_invocable_r + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), + "_Ret must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_invocable + : __and_<__is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>, + __call_is_nothrow_<_Fn, _ArgTypes...>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + + + + template + using __is_nt_invocable_impl + = typename __is_invocable_impl<_Result, _Ret>::__nothrow_conv; + + + + template + struct is_nothrow_invocable_r + : __and_<__is_nt_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>, + __call_is_nothrow_<_Fn, _ArgTypes...>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), + "_Ret must be a complete class or an unbounded array"); + }; +# 3251 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_void_v = is_void<_Tp>::value; +template + inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value; +template + inline constexpr bool is_integral_v = is_integral<_Tp>::value; +template + inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value; + + +template + inline constexpr bool is_array_v = __is_array(_Tp); +# 3272 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_pointer_v = is_pointer<_Tp>::value; +template + inline constexpr bool is_lvalue_reference_v = false; +template + inline constexpr bool is_lvalue_reference_v<_Tp&> = true; +template + inline constexpr bool is_rvalue_reference_v = false; +template + inline constexpr bool is_rvalue_reference_v<_Tp&&> = true; + + +template + inline constexpr bool is_member_object_pointer_v = + __is_member_object_pointer(_Tp); + + + + + + + +template + inline constexpr bool is_member_function_pointer_v = + __is_member_function_pointer(_Tp); + + + + + + +template + inline constexpr bool is_enum_v = __is_enum(_Tp); +template + inline constexpr bool is_union_v = __is_union(_Tp); +template + inline constexpr bool is_class_v = __is_class(_Tp); + + + +template + inline constexpr bool is_reference_v = __is_reference(_Tp); +# 3323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value; +template + inline constexpr bool is_fundamental_v = is_fundamental<_Tp>::value; + + +template + inline constexpr bool is_object_v = __is_object(_Tp); + + + + + +template + inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; +template + inline constexpr bool is_compound_v = !is_fundamental_v<_Tp>; + + +template + inline constexpr bool is_member_pointer_v = __is_member_pointer(_Tp); + + + + + +template + inline constexpr bool is_const_v = false; +template + inline constexpr bool is_const_v = true; + + +template + inline constexpr bool is_function_v = __is_function(_Tp); +# 3366 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_volatile_v = false; +template + inline constexpr bool is_volatile_v = true; + +template + inline constexpr bool is_trivial_v = __is_trivial(_Tp); +template + inline constexpr bool is_trivially_copyable_v = __is_trivially_copyable(_Tp); +template + inline constexpr bool is_standard_layout_v = __is_standard_layout(_Tp); +template + + inline constexpr bool is_pod_v = __is_pod(_Tp); +template + [[__deprecated__]] + inline constexpr bool is_literal_type_v = __is_literal_type(_Tp); +template + inline constexpr bool is_empty_v = __is_empty(_Tp); +template + inline constexpr bool is_polymorphic_v = __is_polymorphic(_Tp); +template + inline constexpr bool is_abstract_v = __is_abstract(_Tp); +template + inline constexpr bool is_final_v = __is_final(_Tp); + +template + inline constexpr bool is_signed_v = is_signed<_Tp>::value; +template + inline constexpr bool is_unsigned_v = is_unsigned<_Tp>::value; + +template + inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...); +template + inline constexpr bool is_default_constructible_v = __is_constructible(_Tp); +template + inline constexpr bool is_copy_constructible_v + = __is_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_move_constructible_v + = __is_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_assignable_v = __is_assignable(_Tp, _Up); +template + inline constexpr bool is_copy_assignable_v + = __is_assignable(__add_lval_ref_t<_Tp>, __add_lval_ref_t); +template + inline constexpr bool is_move_assignable_v + = __is_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; + +template + inline constexpr bool is_trivially_constructible_v + = __is_trivially_constructible(_Tp, _Args...); +template + inline constexpr bool is_trivially_default_constructible_v + = __is_trivially_constructible(_Tp); +template + inline constexpr bool is_trivially_copy_constructible_v + = __is_trivially_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_trivially_move_constructible_v + = __is_trivially_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_trivially_assignable_v + = __is_trivially_assignable(_Tp, _Up); +template + inline constexpr bool is_trivially_copy_assignable_v + = __is_trivially_assignable(__add_lval_ref_t<_Tp>, + __add_lval_ref_t); +template + inline constexpr bool is_trivially_move_assignable_v + = __is_trivially_assignable(__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>); +# 3461 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_trivially_destructible_v = + is_trivially_destructible<_Tp>::value; + + +template + inline constexpr bool is_nothrow_constructible_v + = __is_nothrow_constructible(_Tp, _Args...); +template + inline constexpr bool is_nothrow_default_constructible_v + = __is_nothrow_constructible(_Tp); +template + inline constexpr bool is_nothrow_copy_constructible_v + = __is_nothrow_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_nothrow_move_constructible_v + = __is_nothrow_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_nothrow_assignable_v + = __is_nothrow_assignable(_Tp, _Up); +template + inline constexpr bool is_nothrow_copy_assignable_v + = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, + __add_lval_ref_t); +template + inline constexpr bool is_nothrow_move_assignable_v + = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_nothrow_destructible_v = + is_nothrow_destructible<_Tp>::value; + +template + inline constexpr bool has_virtual_destructor_v + = __has_virtual_destructor(_Tp); + +template + inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; + +template + inline constexpr size_t rank_v = 0; +template + inline constexpr size_t rank_v<_Tp[_Size]> = 1 + rank_v<_Tp>; +template + inline constexpr size_t rank_v<_Tp[]> = 1 + rank_v<_Tp>; + +template + inline constexpr size_t extent_v = 0; +template + inline constexpr size_t extent_v<_Tp[_Size], 0> = _Size; +template + inline constexpr size_t extent_v<_Tp[_Size], _Idx> = extent_v<_Tp, _Idx - 1>; +template + inline constexpr size_t extent_v<_Tp[], 0> = 0; +template + inline constexpr size_t extent_v<_Tp[], _Idx> = extent_v<_Tp, _Idx - 1>; + + +template + inline constexpr bool is_same_v = __is_same(_Tp, _Up); + + + + + + +template + inline constexpr bool is_base_of_v = __is_base_of(_Base, _Derived); + +template + inline constexpr bool is_convertible_v = __is_convertible(_From, _To); + + + + +template + inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value; +template + inline constexpr bool is_nothrow_invocable_v + = is_nothrow_invocable<_Fn, _Args...>::value; +template + inline constexpr bool is_invocable_r_v + = is_invocable_r<_Ret, _Fn, _Args...>::value; +template + inline constexpr bool is_nothrow_invocable_r_v + = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value; + + + + + + + template + struct has_unique_object_representations + : bool_constant<__has_unique_object_representations( + remove_cv_t> + )> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool has_unique_object_representations_v + = has_unique_object_representations<_Tp>::value; + + + + + + + template + struct is_aggregate + : bool_constant<__is_aggregate(remove_cv_t<_Tp>)> + { }; + + + + + + + template + inline constexpr bool is_aggregate_v = __is_aggregate(remove_cv_t<_Tp>); +# 4017 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + +} +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline constexpr _Tp* + __addressof(_Tp& __r) noexcept + { return __builtin_addressof(__r); } +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type&& __t) noexcept + { + static_assert(!std::is_lvalue_reference<_Tp>::value, + "std::forward must not be used to convert an rvalue to an lvalue"); + return static_cast<_Tp&&>(__t); + } +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr typename std::remove_reference<_Tp>::type&& + move(_Tp&& __t) noexcept + { return static_cast::type&&>(__t); } + + + template + struct __move_if_noexcept_cond + : public __and_<__not_>, + is_copy_constructible<_Tp>>::type { }; +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr + __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&> + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + inline constexpr _Tp* + addressof(_Tp& __r) noexcept + { return std::__addressof(__r); } + + + + template + const _Tp* addressof(const _Tp&&) = delete; + + + template + + inline _Tp + __exchange(_Tp& __obj, _Up&& __new_val) + { + _Tp __old_val = std::move(__obj); + __obj = std::forward<_Up>(__new_val); + return __old_val; + } +# 216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + + inline + + typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>>::value>::type + + + + swap(_Tp& __a, _Tp& __b) + noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) + + { + + + + + _Tp __tmp = std::move(__a); + __a = std::move(__b); + __b = std::move(__tmp); + } + + + + + template + + inline + + typename enable_if<__is_swappable<_Tp>::value>::type + + + + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value) + { + for (size_t __n = 0; __n < _Nm; ++__n) + swap(__a[__n], __b[__n]); + } + + + +} +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct tuple_size; + + + + + + template::type, + typename = typename enable_if::value>::type, + size_t = tuple_size<_Tp>::value> + using __enable_if_has_tuple_size = _Tp; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + + template + inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; + + + + template + struct tuple_element; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + using type = const __tuple_element_t<__i, _Tp>; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + using type = volatile __tuple_element_t<__i, _Tp>; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + using type = const volatile __tuple_element_t<__i, _Tp>; + }; + + + + + + template + constexpr size_t + __find_uniq_type_in_pack() + { + constexpr size_t __sz = sizeof...(_Types); + constexpr bool __found[__sz] = { __is_same(_Tp, _Types) ... }; + size_t __n = __sz; + for (size_t __i = 0; __i < __sz; ++__i) + { + if (__found[__i]) + { + if (__n < __sz) + return __sz; + __n = __i; + } + } + return __n; + } +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + template + using tuple_element_t = typename tuple_element<__i, _Tp>::type; + + + + + template struct _Index_tuple { }; + + + template + struct _Build_index_tuple + { +# 154 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + using __type = _Index_tuple<__integer_pack(_Num)...>; + + }; + + + + + template + struct integer_sequence + { + + + + typedef _Tp value_type; + static constexpr size_t size() noexcept { return sizeof...(_Idx); } + }; + + + template + using make_integer_sequence + + + + = integer_sequence<_Tp, __integer_pack(_Num)...>; + + + + template + using index_sequence = integer_sequence; + + + template + using make_index_sequence = make_integer_sequence; + + + template + using index_sequence_for = make_index_sequence; + + + + + struct in_place_t { + explicit in_place_t() = default; + }; + + inline constexpr in_place_t in_place{}; + + template struct in_place_type_t + { + explicit in_place_type_t() = default; + }; + + template + inline constexpr in_place_type_t<_Tp> in_place_type{}; + + template struct in_place_index_t + { + explicit in_place_index_t() = default; + }; + + template + inline constexpr in_place_index_t<_Idx> in_place_index{}; + + template + inline constexpr bool __is_in_place_type_v = false; + + template + inline constexpr bool __is_in_place_type_v> = true; + + template + using __is_in_place_type = bool_constant<__is_in_place_type_v<_Tp>>; + + template + inline constexpr bool __is_in_place_index_v = false; + + template + inline constexpr bool __is_in_place_index_v> = true; + + + + + template + struct _Nth_type + { using type = __type_pack_element<_Np, _Types...>; }; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + +} +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; + + + inline constexpr piecewise_construct_t piecewise_construct = + piecewise_construct_t(); + + + + + template + struct pair; + + template + class tuple; + + + + + + template + struct array; + + template + struct _Index_tuple; + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(pair<_Tp1, _Tp2>& __in) noexcept; + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(pair<_Tp1, _Tp2>&& __in) noexcept; + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(const pair<_Tp1, _Tp2>& __in) noexcept; + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(const pair<_Tp1, _Tp2>&& __in) noexcept; + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>& + get(tuple<_Elements...>& __t) noexcept; + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>& + get(const tuple<_Elements...>& __t) noexcept; + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>&& + get(tuple<_Elements...>&& __t) noexcept; + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& + get(const tuple<_Elements...>&& __t) noexcept; + + template + constexpr _Tp& + get(array<_Tp, _Nm>&) noexcept; + + template + constexpr _Tp&& + get(array<_Tp, _Nm>&&) noexcept; + + template + constexpr const _Tp& + get(const array<_Tp, _Nm>&) noexcept; + + template + constexpr const _Tp&& + get(const array<_Tp, _Nm>&&) noexcept; + + + + + + + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return __and_, + is_constructible<_T2, const _U2&>>::value; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return __and_, + is_convertible>::value; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return __and_, + is_constructible<_T2, _U2&&>>::value; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return __and_, + is_convertible<_U2&&, _T2>>::value; + } + }; + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return false; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return false; + } + }; +# 260 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template class __pair_base + { + + template friend struct pair; + __pair_base() = default; + ~__pair_base() = default; + __pair_base(const __pair_base&) = default; + __pair_base& operator=(const __pair_base&) = delete; + + }; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + struct pair + : public __pair_base<_T1, _T2> + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + template + + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + + void + swap(pair& __p) + noexcept(__and_<__is_nothrow_swappable<_T1>, + __is_nothrow_swappable<_T2>>::value) + { + using std::swap; + swap(first, __p.first); + swap(second, __p.second); + } +# 331 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + private: + template + + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + public: +# 719 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template , + __is_implicitly_default_constructible<_U2>> + ::value, bool>::type = true> + constexpr pair() + : first(), second() { } + + template , + is_default_constructible<_U2>, + __not_< + __and_<__is_implicitly_default_constructible<_U1>, + __is_implicitly_default_constructible<_U2>>>> + ::value, bool>::type = false> + explicit constexpr pair() + : first(), second() { } + + + + using _PCCP = _PCC; + + + + template() + && _PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + template() + && !_PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + + template + using _PCCFP = _PCC::value + || !is_same<_T2, _U2>::value, + _T1, _T2>; + + + template::template + _ConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) + { ; } + + template::template + _ConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) + { ; } +# 803 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + private: + + + + struct __zero_as_null_pointer_constant + { + __zero_as_null_pointer_constant(int __zero_as_null_pointer_constant::*) + { } + template::value>> + __zero_as_null_pointer_constant(_Tp) = delete; + }; + + public: + + + + + template>, + is_pointer<_T2>, + is_constructible<_T1, _U1>, + __not_>, + is_convertible<_U1, _T1>>::value, + bool> = true> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + constexpr + pair(_U1&& __x, __zero_as_null_pointer_constant, ...) + : first(std::forward<_U1>(__x)), second(nullptr) + { ; } + + template>, + is_pointer<_T2>, + is_constructible<_T1, _U1>, + __not_>, + __not_>>::value, + bool> = false> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + explicit constexpr + pair(_U1&& __x, __zero_as_null_pointer_constant, ...) + : first(std::forward<_U1>(__x)), second(nullptr) + { ; } + + template, + __not_>, + is_constructible<_T2, _U2>, + __not_>, + is_convertible<_U2, _T2>>::value, + bool> = true> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + constexpr + pair(__zero_as_null_pointer_constant, _U2&& __y, ...) + : first(nullptr), second(std::forward<_U2>(__y)) + { ; } + + template, + __not_>, + is_constructible<_T2, _U2>, + __not_>, + __not_>>::value, + bool> = false> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + explicit constexpr + pair(__zero_as_null_pointer_constant, _U2&& __y, ...) + : first(nullptr), second(std::forward<_U2>(__y)) + { ; } + + + + template() + && _PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) + { ; } + + template() + && !_PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) + { ; } + + + template::template + _MoveConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) + { ; } + + template::template + _MoveConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) + { ; } + + + + pair& + operator=(__conditional_t<__and_, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch&> __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(__conditional_t<__and_, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch&&> __p) + noexcept(__and_, + is_nothrow_move_assignable<_T2>>::value) + { + first = std::forward(__p.first); + second = std::forward(__p.second); + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, const _U2&>>::value, + pair&>::type + operator=(const pair<_U1, _U2>& __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, _U2&&>>::value, + pair&>::type + operator=(pair<_U1, _U2>&& __p) + { + first = std::forward<_U1>(__p.first); + second = std::forward<_U2>(__p.second); + return *this; + } +# 995 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + }; + + + + + template pair(_T1, _T2) -> pair<_T1, _T2>; +# 1031 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } +# 1043 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline constexpr bool + operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first < __y.first + || (!(__y.first < __x.first) && __x.second < __y.second); } + + + template + inline constexpr bool + operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __y < __x; } + + + template + inline constexpr bool + operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__y < __x); } + + + template + inline constexpr bool + operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x < __y); } +# 1080 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline + + + typename enable_if<__and_<__is_swappable<_T1>, + __is_swappable<_T2>>::value>::type + + + + swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) + noexcept(noexcept(__x.swap(__y))) + { __x.swap(__y); } +# 1103 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + typename enable_if, + __is_swappable<_T2>>::value>::type + swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; +# 1129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + constexpr pair::__type, + typename __decay_and_strip<_T2>::__type> + make_pair(_T1&& __x, _T2&& __y) + { + typedef typename __decay_and_strip<_T1>::__type __ds_type1; + typedef typename __decay_and_strip<_T2>::__type __ds_type2; + typedef pair<__ds_type1, __ds_type2> __pair_type; + return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); + } +# 1152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + struct __is_tuple_like_impl> : true_type + { }; + + + + template + struct tuple_size> + : public integral_constant { }; + + + template + struct tuple_element<0, pair<_Tp1, _Tp2>> + { typedef _Tp1 type; }; + + + template + struct tuple_element<1, pair<_Tp1, _Tp2>> + { typedef _Tp2 type; }; + + + + template + struct tuple_element<__i, tuple<_Types...>>; + + + template + inline constexpr size_t tuple_size_v> = 2; + + template + inline constexpr size_t tuple_size_v> = 2; + + template + inline constexpr bool __is_pair = false; + + template + inline constexpr bool __is_pair> = true; + + + + template + struct __pair_get; + + template<> + struct __pair_get<0> + { + template + static constexpr _Tp1& + __get(pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr _Tp1&& + __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp1>(__pair.first); } + + template + static constexpr const _Tp1& + __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr const _Tp1&& + __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.first); } + }; + + template<> + struct __pair_get<1> + { + template + static constexpr _Tp2& + __get(pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr _Tp2&& + __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp2>(__pair.second); } + + template + static constexpr const _Tp2& + __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr const _Tp2&& + __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.second); } + }; + + + + + + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__get(__in); } + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__move_get(std::move(__in)); } + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(const pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__const_get(__in); } + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(const pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__const_move_get(std::move(__in)); } + + + + template + constexpr _Tp& + get(pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr const _Tp& + get(const pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr _Tp&& + get(pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr const _Tp&& + get(const pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr _Tp& + get(pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr const _Tp& + get(const pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr _Tp&& + get(pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } + + template + constexpr const _Tp&& + get(const pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } +# 1332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + +} +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + struct input_iterator_tag { }; + + + struct output_iterator_tag { }; + + + struct forward_iterator_tag : public input_iterator_tag { }; + + + + struct bidirectional_iterator_tag : public forward_iterator_tag { }; + + + + struct random_access_iterator_tag : public bidirectional_iterator_tag { }; +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct [[__deprecated__]] iterator + { + + typedef _Category iterator_category; + + typedef _Tp value_type; + + typedef _Distance difference_type; + + typedef _Pointer pointer; + + typedef _Reference reference; + }; +# 149 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits; + + + + + template> + struct __iterator_traits { }; + + + + template + struct __iterator_traits<_Iterator, + __void_t> + { + typedef typename _Iterator::iterator_category iterator_category; + typedef typename _Iterator::value_type value_type; + typedef typename _Iterator::difference_type difference_type; + typedef typename _Iterator::pointer pointer; + typedef typename _Iterator::reference reference; + }; + + + template + struct iterator_traits + : public __iterator_traits<_Iterator> { }; +# 209 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits<_Tp*> + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + + template + struct iterator_traits + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef const _Tp* pointer; + typedef const _Tp& reference; + }; + + + + + + + template + __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_Iter>::iterator_category + __iterator_category(const _Iter&) + { return typename iterator_traits<_Iter>::iterator_category(); } + + + + + template + using __iter_category_t + = typename iterator_traits<_Iter>::iterator_category; + + template + using _RequireInputIter = + __enable_if_t, + input_iterator_tag>::value>; + + template> + struct __is_random_access_iter + : is_base_of + { + typedef is_base_of _Base; + enum { __value = _Base::value }; + }; + + + + + + + + +} +# 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 3 +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/assertions.h" 1 3 +# 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 2 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template struct _List_iterator; + template struct _List_const_iterator; + + + template + inline constexpr + typename iterator_traits<_InputIterator>::difference_type + __distance(_InputIterator __first, _InputIterator __last, + input_iterator_tag) + { + + + + typename iterator_traits<_InputIterator>::difference_type __n = 0; + while (__first != __last) + { + ++__first; + ++__n; + } + return __n; + } + + template + __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_RandomAccessIterator>::difference_type + __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, + random_access_iterator_tag) + { + + + + return __last - __first; + } + + + + template + ptrdiff_t + __distance(std::_List_iterator<_Tp>, + std::_List_iterator<_Tp>, + input_iterator_tag); + + template + ptrdiff_t + __distance(std::_List_const_iterator<_Tp>, + std::_List_const_iterator<_Tp>, + input_iterator_tag); + + + + + template + void + __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; +# 144 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + template + [[__nodiscard__]] __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_InputIterator>::difference_type + distance(_InputIterator __first, _InputIterator __last) + { + + return std::__distance(__first, __last, + std::__iterator_category(__first)); + } + + template + inline constexpr void + __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) + { + + + do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); + while (__n--) + ++__i; + } + + template + inline constexpr void + __advance(_BidirectionalIterator& __i, _Distance __n, + bidirectional_iterator_tag) + { + + + + if (__n > 0) + while (__n--) + ++__i; + else + while (__n++) + --__i; + } + + template + inline constexpr void + __advance(_RandomAccessIterator& __i, _Distance __n, + random_access_iterator_tag) + { + + + + if (__builtin_constant_p(__n) && __n == 1) + ++__i; + else if (__builtin_constant_p(__n) && __n == -1) + --__i; + else + __i += __n; + } + + + + template + void + __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; +# 217 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + template + __attribute__((__always_inline__)) + inline constexpr void + advance(_InputIterator& __i, _Distance __n) + { + + typename iterator_traits<_InputIterator>::difference_type __d = __n; + std::__advance(__i, __d, std::__iterator_category(__i)); + } + + + + template + [[__nodiscard__]] [[__gnu__::__always_inline__]] + inline constexpr _InputIterator + next(_InputIterator __x, typename + iterator_traits<_InputIterator>::difference_type __n = 1) + { + + + std::advance(__x, __n); + return __x; + } + + template + [[__nodiscard__]] [[__gnu__::__always_inline__]] + inline constexpr _BidirectionalIterator + prev(_BidirectionalIterator __x, typename + iterator_traits<_BidirectionalIterator>::difference_type __n = 1) + { + + + + std::advance(__x, -__n); + return __x; + } + + + + +} +# 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 1 3 +# 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + class __undefined; + + + + template + struct __get_first_arg + { using type = __undefined; }; + + template class _SomeTemplate, typename _Tp, + typename... _Types> + struct __get_first_arg<_SomeTemplate<_Tp, _Types...>> + { using type = _Tp; }; + + + + template + struct __replace_first_arg + { }; + + template class _SomeTemplate, typename _Up, + typename _Tp, typename... _Types> + struct __replace_first_arg<_SomeTemplate<_Tp, _Types...>, _Up> + { using type = _SomeTemplate<_Up, _Types...>; }; + + + template + struct __ptr_traits_elem : __get_first_arg<_Ptr> + { }; + + + + + + + + template + struct __ptr_traits_elem<_Ptr, __void_t> + { using type = typename _Ptr::element_type; }; + + + template + using __ptr_traits_elem_t = typename __ptr_traits_elem<_Ptr>::type; + + + + + template::value> + struct __ptr_traits_ptr_to + { + using pointer = _Ptr; + using element_type = _Elt; + + + + + + + + static pointer + pointer_to(element_type& __r) + + + + + + { return pointer::pointer_to(__r); } + }; + + + template + struct __ptr_traits_ptr_to<_Ptr, _Elt, true> + { }; + + + template + struct __ptr_traits_ptr_to<_Tp*, _Tp, false> + { + using pointer = _Tp*; + using element_type = _Tp; + + + + + + + static pointer + pointer_to(element_type& __r) noexcept + { return std::addressof(__r); } + }; + + template + struct __ptr_traits_impl : __ptr_traits_ptr_to<_Ptr, _Elt> + { + private: + template + using __diff_t = typename _Tp::difference_type; + + template + using __rebind = __type_identity>; + + public: + + using pointer = _Ptr; + + + using element_type = _Elt; + + + using difference_type = __detected_or_t; + + + template + using rebind = typename __detected_or_t<__replace_first_arg<_Ptr, _Up>, + __rebind, _Ptr, _Up>::type; + }; + + + + template + struct __ptr_traits_impl<_Ptr, __undefined> + { }; + + + + + + + + template + struct pointer_traits : __ptr_traits_impl<_Ptr, __ptr_traits_elem_t<_Ptr>> + { }; + + + + + + + + template + struct pointer_traits<_Tp*> : __ptr_traits_ptr_to<_Tp*, _Tp> + { + + typedef _Tp* pointer; + + typedef _Tp element_type; + + typedef ptrdiff_t difference_type; + + template using rebind = _Up*; + }; + + + template + using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; + + template + constexpr _Tp* + __to_address(_Tp* __ptr) noexcept + { + static_assert(!std::is_function<_Tp>::value, "not a function pointer"); + return __ptr; + } + + + template + constexpr typename std::pointer_traits<_Ptr>::element_type* + __to_address(const _Ptr& __ptr) + { return std::__to_address(__ptr.operator->()); } +# 257 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 + +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 2 3 +# 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 128 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class reverse_iterator + : public iterator::iterator_category, + typename iterator_traits<_Iterator>::value_type, + typename iterator_traits<_Iterator>::difference_type, + typename iterator_traits<_Iterator>::pointer, + typename iterator_traits<_Iterator>::reference> + { + template + friend class reverse_iterator; +# 147 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + protected: + _Iterator current; + + typedef iterator_traits<_Iterator> __traits_type; + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::pointer pointer; + + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; +# 178 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + constexpr + reverse_iterator() + noexcept(noexcept(_Iterator())) + : current() + { } + + + + + explicit constexpr + reverse_iterator(iterator_type __x) + noexcept(noexcept(_Iterator(__x))) + : current(__x) + { } + + + + + constexpr + reverse_iterator(const reverse_iterator& __x) + noexcept(noexcept(_Iterator(__x.current))) + : current(__x.current) + { } + + + reverse_iterator& operator=(const reverse_iterator&) = default; + + + + + + + template + + + + constexpr + reverse_iterator(const reverse_iterator<_Iter>& __x) + noexcept(noexcept(_Iterator(__x.current))) + : current(__x.current) + { } + + + template + + + + + constexpr + reverse_iterator& + operator=(const reverse_iterator<_Iter>& __x) + noexcept(noexcept(current = __x.current)) + { + current = __x.current; + return *this; + } + + + + + + [[__nodiscard__]] + constexpr iterator_type + base() const + noexcept(noexcept(_Iterator(current))) + { return current; } +# 255 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + [[__nodiscard__]] + constexpr reference + operator*() const + { + _Iterator __tmp = current; + return *--__tmp; + } + + + + + + + [[__nodiscard__]] + constexpr pointer + operator->() const + + + + + { + + + _Iterator __tmp = current; + --__tmp; + return _S_to_pointer(__tmp); + } + + + + + + + constexpr reverse_iterator& + operator++() + { + --current; + return *this; + } + + + + + + + constexpr reverse_iterator + operator++(int) + { + reverse_iterator __tmp = *this; + --current; + return __tmp; + } + + + + + + + constexpr reverse_iterator& + operator--() + { + ++current; + return *this; + } + + + + + + + constexpr reverse_iterator + operator--(int) + { + reverse_iterator __tmp = *this; + ++current; + return __tmp; + } + + + + + + + [[__nodiscard__]] + constexpr reverse_iterator + operator+(difference_type __n) const + { return reverse_iterator(current - __n); } + + + + + + + + constexpr reverse_iterator& + operator+=(difference_type __n) + { + current -= __n; + return *this; + } + + + + + + + [[__nodiscard__]] + constexpr reverse_iterator + operator-(difference_type __n) const + { return reverse_iterator(current + __n); } + + + + + + + + constexpr reverse_iterator& + operator-=(difference_type __n) + { + current += __n; + return *this; + } + + + + + + + [[__nodiscard__]] + constexpr reference + operator[](difference_type __n) const + { return *(*this + __n); } +# 415 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + private: + template + static constexpr _Tp* + _S_to_pointer(_Tp* __p) + { return __p; } + + template + static constexpr pointer + _S_to_pointer(_Tp __t) + { return __t.operator->(); } + }; +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator==(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() < __x.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() == __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() > __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() != __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() < __y.base(); } + + template + inline constexpr bool + operator<=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() >= __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() <= __y.base(); } +# 615 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr auto + operator-(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + -> decltype(__y.base() - __x.base()) + { return __y.base() - __x.base(); } + + + template + [[__nodiscard__]] + inline constexpr reverse_iterator<_Iterator> + operator+(typename reverse_iterator<_Iterator>::difference_type __n, + const reverse_iterator<_Iterator>& __x) + { return reverse_iterator<_Iterator>(__x.base() - __n); } + + + + template + inline constexpr reverse_iterator<_Iterator> + __make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } + + + + + + template + [[__nodiscard__]] + inline constexpr reverse_iterator<_Iterator> + make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } +# 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + + auto + __niter_base(reverse_iterator<_Iterator> __it) + -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) + { return __make_reverse_iterator(__niter_base(__it.base())); } + + template + struct __is_move_iterator > + : __is_move_iterator<_Iterator> + { }; + + template + + auto + __miter_base(reverse_iterator<_Iterator> __it) + -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) + { return __make_reverse_iterator(__miter_base(__it.base())); } +# 688 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class back_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + + + + explicit + back_insert_iterator(_Container& __x) + : container(std::__addressof(__x)) { } +# 726 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + back_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_back(__value); + return *this; + } + + + back_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_back(std::move(__value)); + return *this; + } + + + + [[__nodiscard__]] + back_insert_iterator& + operator*() + { return *this; } + + + + back_insert_iterator& + operator++() + { return *this; } + + + + back_insert_iterator + operator++(int) + { return *this; } + }; +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline back_insert_iterator<_Container> + back_inserter(_Container& __x) + { return back_insert_iterator<_Container>(__x); } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class front_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + + + + explicit + front_insert_iterator(_Container& __x) + : container(std::__addressof(__x)) { } +# 827 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + front_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_front(__value); + return *this; + } + + + front_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_front(std::move(__value)); + return *this; + } + + + + [[__nodiscard__]] + front_insert_iterator& + operator*() + { return *this; } + + + + front_insert_iterator& + operator++() + { return *this; } + + + + front_insert_iterator + operator++(int) + { return *this; } + }; +# 874 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline front_insert_iterator<_Container> + front_inserter(_Container& __x) + { return front_insert_iterator<_Container>(__x); } +# 894 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class insert_iterator + : public iterator + { + + + + typedef typename _Container::iterator _Iter; + + protected: + _Container* container; + _Iter iter; + + public: + + typedef _Container container_type; +# 919 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + insert_iterator(_Container& __x, _Iter __i) + : container(std::__addressof(__x)), iter(__i) {} +# 955 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + insert_iterator& + operator=(const typename _Container::value_type& __value) + { + iter = container->insert(iter, __value); + ++iter; + return *this; + } + + + insert_iterator& + operator=(typename _Container::value_type&& __value) + { + iter = container->insert(iter, std::move(__value)); + ++iter; + return *this; + } + + + + [[__nodiscard__]] + insert_iterator& + operator*() + { return *this; } + + + + insert_iterator& + operator++() + { return *this; } + + + + insert_iterator& + operator++(int) + { return *this; } + }; + +#pragma GCC diagnostic pop +# 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline insert_iterator<_Container> + inserter(_Container& __x, typename _Container::iterator __i) + { return insert_iterator<_Container>(__x, __i); } + + + + + +} + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class __normal_iterator + { + protected: + _Iterator _M_current; + + typedef std::iterator_traits<_Iterator> __traits_type; + + + template + using __convertible_from + = std::__enable_if_t::value>; + + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; + typedef typename __traits_type::pointer pointer; + + + + + + constexpr __normal_iterator() noexcept + : _M_current(_Iterator()) { } + + explicit + __normal_iterator(const _Iterator& __i) noexcept + : _M_current(__i) { } + + + + template> + + __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) + noexcept +# 1085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + : _M_current(__i.base()) { } + + + + reference + operator*() const noexcept + { return *_M_current; } + + + pointer + operator->() const noexcept + { return _M_current; } + + + __normal_iterator& + operator++() noexcept + { + ++_M_current; + return *this; + } + + + __normal_iterator + operator++(int) noexcept + { return __normal_iterator(_M_current++); } + + + + __normal_iterator& + operator--() noexcept + { + --_M_current; + return *this; + } + + + __normal_iterator + operator--(int) noexcept + { return __normal_iterator(_M_current--); } + + + + reference + operator[](difference_type __n) const noexcept + { return _M_current[__n]; } + + + __normal_iterator& + operator+=(difference_type __n) noexcept + { _M_current += __n; return *this; } + + + __normal_iterator + operator+(difference_type __n) const noexcept + { return __normal_iterator(_M_current + __n); } + + + __normal_iterator& + operator-=(difference_type __n) noexcept + { _M_current -= __n; return *this; } + + + __normal_iterator + operator-(difference_type __n) const noexcept + { return __normal_iterator(_M_current - __n); } + + + const _Iterator& + base() const noexcept + { return _M_current; } + }; +# 1205 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline bool + operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator==(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + + template + [[__nodiscard__]] + inline bool + operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + + + + + + template + + + [[__nodiscard__]] + inline auto + operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept + -> decltype(__lhs.base() - __rhs.base()) + + + + + + { return __lhs.base() - __rhs.base(); } + + template + [[__nodiscard__]] + inline typename __normal_iterator<_Iterator, _Container>::difference_type + operator-(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() - __rhs.base(); } + + template + [[__nodiscard__]] + inline __normal_iterator<_Iterator, _Container> + operator+(typename __normal_iterator<_Iterator, _Container>::difference_type + __n, const __normal_iterator<_Iterator, _Container>& __i) + noexcept + { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } + + +} + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + + _Iterator + __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) + noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) + { return __it.base(); } + + + + + + + template + constexpr auto + __to_address(const __gnu_cxx::__normal_iterator<_Iterator, + _Container>& __it) noexcept + -> decltype(std::__to_address(__it.base())) + { return std::__to_address(__it.base()); } +# 1412 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + namespace __detail + { +# 1428 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + } +# 1439 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class move_iterator + + + + { + _Iterator _M_current; + + using __traits_type = iterator_traits<_Iterator>; + + using __base_ref = typename __traits_type::reference; + + + template + friend class move_iterator; +# 1478 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + public: + using iterator_type = _Iterator; +# 1490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + + typedef _Iterator pointer; + + + using reference + = __conditional_t::value, + typename remove_reference<__base_ref>::type&&, + __base_ref>; + + + constexpr + move_iterator() + : _M_current() { } + + explicit constexpr + move_iterator(iterator_type __i) + : _M_current(std::move(__i)) { } + + template + + + + constexpr + move_iterator(const move_iterator<_Iter>& __i) + : _M_current(__i._M_current) { } + + template + + + + + constexpr + move_iterator& operator=(const move_iterator<_Iter>& __i) + { + _M_current = __i._M_current; + return *this; + } + + + [[__nodiscard__]] + constexpr iterator_type + base() const + { return _M_current; } +# 1548 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + [[__nodiscard__]] + constexpr reference + operator*() const + + + + { return static_cast(*_M_current); } + + + [[__nodiscard__]] + constexpr pointer + operator->() const + { return _M_current; } + + constexpr move_iterator& + operator++() + { + ++_M_current; + return *this; + } + + constexpr move_iterator + operator++(int) + { + move_iterator __tmp = *this; + ++_M_current; + return __tmp; + } + + + + + + + + constexpr move_iterator& + operator--() + { + --_M_current; + return *this; + } + + constexpr move_iterator + operator--(int) + { + move_iterator __tmp = *this; + --_M_current; + return __tmp; + } + + [[__nodiscard__]] + constexpr move_iterator + operator+(difference_type __n) const + { return move_iterator(_M_current + __n); } + + constexpr move_iterator& + operator+=(difference_type __n) + { + _M_current += __n; + return *this; + } + + [[__nodiscard__]] + constexpr move_iterator + operator-(difference_type __n) const + { return move_iterator(_M_current - __n); } + + constexpr move_iterator& + operator-=(difference_type __n) + { + _M_current -= __n; + return *this; + } + + [[__nodiscard__]] + constexpr reference + operator[](difference_type __n) const + + + + { return std::move(_M_current[__n]); } +# 1662 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + }; + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() == __y.base(); } +# 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__x == __y); } + + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() < __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__x < __y); } + + + + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + + { return __x.base() == __y.base(); } +# 1750 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() < __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + template + [[__nodiscard__]] + inline constexpr auto + operator-(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + -> decltype(__x.base() - __y.base()) + { return __x.base() - __y.base(); } + + template + [[__nodiscard__]] + inline constexpr move_iterator<_Iterator> + operator+(typename move_iterator<_Iterator>::difference_type __n, + const move_iterator<_Iterator>& __x) + + + + { return __x + __n; } + + template + [[__nodiscard__]] + inline constexpr move_iterator<_Iterator> + make_move_iterator(_Iterator __i) + { return move_iterator<_Iterator>(std::move(__i)); } + + template::value_type>::value, + _Iterator, move_iterator<_Iterator>>> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Iterator __i) + { return _ReturnType(__i); } + + + + template::value, + const _Tp*, move_iterator<_Tp*>>> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Tp* __i) + { return _ReturnType(__i); } +# 2964 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + + auto + __niter_base(move_iterator<_Iterator> __it) + -> decltype(make_move_iterator(__niter_base(__it.base()))) + { return make_move_iterator(__niter_base(__it.base())); } + + template + struct __is_move_iterator > + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template + + auto + __miter_base(move_iterator<_Iterator> __it) + -> decltype(__miter_base(__it.base())) + { return __miter_base(__it.base()); } +# 2996 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + using __iter_key_t = remove_const_t< + + + + typename iterator_traits<_InputIterator>::value_type::first_type>; + + + template + using __iter_val_t + + + + = typename iterator_traits<_InputIterator>::value_type::second_type; + + + template + struct pair; + + template + using __iter_to_alloc_t + = pair, __iter_val_t<_InputIterator>>; + + + +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 1 3 +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 3 +namespace std +{ + namespace __debug { } +} + + + + +namespace __gnu_debug +{ + using namespace std::__debug; + + template + struct _Safe_iterator; +} +# 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 1 3 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 3 +namespace __gnu_cxx +{ +namespace __ops +{ + struct _Iter_less_iter + { + template + constexpr + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 < *__it2; } + }; + + constexpr + inline _Iter_less_iter + __iter_less_iter() + { return _Iter_less_iter(); } + + struct _Iter_less_val + { + + constexpr _Iter_less_val() = default; + + + + + + explicit + _Iter_less_val(_Iter_less_iter) { } + + template + + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it < __val; } + }; + + + inline _Iter_less_val + __iter_less_val() + { return _Iter_less_val(); } + + + inline _Iter_less_val + __iter_comp_val(_Iter_less_iter) + { return _Iter_less_val(); } + + struct _Val_less_iter + { + + constexpr _Val_less_iter() = default; + + + + + + explicit + _Val_less_iter(_Iter_less_iter) { } + + template + + bool + operator()(_Value& __val, _Iterator __it) const + { return __val < *__it; } + }; + + + inline _Val_less_iter + __val_less_iter() + { return _Val_less_iter(); } + + + inline _Val_less_iter + __val_comp_iter(_Iter_less_iter) + { return _Val_less_iter(); } + + struct _Iter_equal_to_iter + { + template + + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 == *__it2; } + }; + + + inline _Iter_equal_to_iter + __iter_equal_to_iter() + { return _Iter_equal_to_iter(); } + + struct _Iter_equal_to_val + { + template + + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it == __val; } + }; + + + inline _Iter_equal_to_val + __iter_equal_to_val() + { return _Iter_equal_to_val(); } + + + inline _Iter_equal_to_val + __iter_comp_val(_Iter_equal_to_iter) + { return _Iter_equal_to_val(); } + + template + struct _Iter_comp_iter + { + _Compare _M_comp; + + explicit constexpr + _Iter_comp_iter(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + template + constexpr + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) + { return bool(_M_comp(*__it1, *__it2)); } + }; + + template + constexpr + inline _Iter_comp_iter<_Compare> + __iter_comp_iter(_Compare __comp) + { return _Iter_comp_iter<_Compare>(std::move(__comp)); } + + template + struct _Iter_comp_val + { + _Compare _M_comp; + + + explicit + _Iter_comp_val(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + + explicit + _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) + : _M_comp(__comp._M_comp) + { } + + + + explicit + _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) + : _M_comp(std::move(__comp._M_comp)) + { } + + + template + + bool + operator()(_Iterator __it, _Value& __val) + { return bool(_M_comp(*__it, __val)); } + }; + + template + + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Compare __comp) + { return _Iter_comp_val<_Compare>(std::move(__comp)); } + + template + + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Iter_comp_iter<_Compare> __comp) + { return _Iter_comp_val<_Compare>(std::move(__comp)); } + + template + struct _Val_comp_iter + { + _Compare _M_comp; + + + explicit + _Val_comp_iter(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + + explicit + _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) + : _M_comp(__comp._M_comp) + { } + + + + explicit + _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) + : _M_comp(std::move(__comp._M_comp)) + { } + + + template + + bool + operator()(_Value& __val, _Iterator __it) + { return bool(_M_comp(__val, *__it)); } + }; + + template + + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Compare __comp) + { return _Val_comp_iter<_Compare>(std::move(__comp)); } + + template + + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Iter_comp_iter<_Compare> __comp) + { return _Val_comp_iter<_Compare>(std::move(__comp)); } + + template + struct _Iter_equals_val + { + _Value& _M_value; + + + explicit + _Iter_equals_val(_Value& __value) + : _M_value(__value) + { } + + template + + bool + operator()(_Iterator __it) + { return *__it == _M_value; } + }; + + template + + inline _Iter_equals_val<_Value> + __iter_equals_val(_Value& __val) + { return _Iter_equals_val<_Value>(__val); } + + template + struct _Iter_equals_iter + { + _Iterator1 _M_it1; + + + explicit + _Iter_equals_iter(_Iterator1 __it1) + : _M_it1(__it1) + { } + + template + + bool + operator()(_Iterator2 __it2) + { return *__it2 == *_M_it1; } + }; + + template + + inline _Iter_equals_iter<_Iterator> + __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) + { return _Iter_equals_iter<_Iterator>(__it); } + + template + struct _Iter_pred + { + _Predicate _M_pred; + + + explicit + _Iter_pred(_Predicate __pred) + : _M_pred(std::move(__pred)) + { } + + template + + bool + operator()(_Iterator __it) + { return bool(_M_pred(*__it)); } + }; + + template + + inline _Iter_pred<_Predicate> + __pred_iter(_Predicate __pred) + { return _Iter_pred<_Predicate>(std::move(__pred)); } + + template + struct _Iter_comp_to_val + { + _Compare _M_comp; + _Value& _M_value; + + + _Iter_comp_to_val(_Compare __comp, _Value& __value) + : _M_comp(std::move(__comp)), _M_value(__value) + { } + + template + + bool + operator()(_Iterator __it) + { return bool(_M_comp(*__it, _M_value)); } + }; + + template + _Iter_comp_to_val<_Compare, _Value> + + __iter_comp_val(_Compare __comp, _Value &__val) + { + return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); + } + + template + struct _Iter_comp_to_iter + { + _Compare _M_comp; + _Iterator1 _M_it1; + + + _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) + : _M_comp(std::move(__comp)), _M_it1(__it1) + { } + + template + + bool + operator()(_Iterator2 __it2) + { return bool(_M_comp(*__it2, *_M_it1)); } + }; + + template + + inline _Iter_comp_to_iter<_Compare, _Iterator> + __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) + { + return _Iter_comp_to_iter<_Compare, _Iterator>( + std::move(__comp._M_comp), __it); + } + + template + struct _Iter_negate + { + _Predicate _M_pred; + + + explicit + _Iter_negate(_Predicate __pred) + : _M_pred(std::move(__pred)) + { } + + template + + bool + operator()(_Iterator __it) + { return !bool(_M_pred(*__it)); } + }; + + template + + inline _Iter_negate<_Predicate> + __negate(_Iter_pred<_Predicate> __pred) + { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } + +} +} +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 2 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 2 3 +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + template + constexpr _Tp + __rotl(_Tp __x, int __s) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if constexpr ((_Nd & (_Nd - 1)) == 0) + { + + + constexpr unsigned __uNd = _Nd; + const unsigned __r = __s; + return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); + } + const int __r = __s % _Nd; + if (__r == 0) + return __x; + else if (__r > 0) + return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); + else + return (__x >> -__r) | (__x << ((_Nd + __r) % _Nd)); + } + + template + constexpr _Tp + __rotr(_Tp __x, int __s) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if constexpr ((_Nd & (_Nd - 1)) == 0) + { + + + constexpr unsigned __uNd = _Nd; + const unsigned __r = __s; + return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); + } + const int __r = __s % _Nd; + if (__r == 0) + return __x; + else if (__r > 0) + return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); + else + return (__x << -__r) | (__x >> ((_Nd + __r) % _Nd)); + } + + template + constexpr int + __countl_zero(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + if (__x == 0) + return _Nd; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + { + constexpr int __diff = _Nd_u - _Nd; + return __builtin_clz(__x) - __diff; + } + else if constexpr (_Nd <= _Nd_ul) + { + constexpr int __diff = _Nd_ul - _Nd; + return __builtin_clzl(__x) - __diff; + } + else if constexpr (_Nd <= _Nd_ull) + { + constexpr int __diff = _Nd_ull - _Nd; + return __builtin_clzll(__x) - __diff; + } + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + unsigned long long __high = __x >> _Nd_ull; + if (__high != 0) + { + constexpr int __diff = (2 * _Nd_ull) - _Nd; + return __builtin_clzll(__high) - __diff; + } + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + return (_Nd - _Nd_ull) + __builtin_clzll(__low); + } + } + + template + constexpr int + __countl_one(_Tp __x) noexcept + { + return std::__countl_zero<_Tp>((_Tp)~__x); + } + + template + constexpr int + __countr_zero(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + if (__x == 0) + return _Nd; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + return __builtin_ctz(__x); + else if constexpr (_Nd <= _Nd_ul) + return __builtin_ctzl(__x); + else if constexpr (_Nd <= _Nd_ull) + return __builtin_ctzll(__x); + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + if (__low != 0) + return __builtin_ctzll(__low); + unsigned long long __high = __x >> _Nd_ull; + return __builtin_ctzll(__high) + _Nd_ull; + } + } + + template + constexpr int + __countr_one(_Tp __x) noexcept + { + return std::__countr_zero((_Tp)~__x); + } + + template + constexpr int + __popcount(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + return __builtin_popcount(__x); + else if constexpr (_Nd <= _Nd_ul) + return __builtin_popcountl(__x); + else if constexpr (_Nd <= _Nd_ull) + return __builtin_popcountll(__x); + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + unsigned long long __high = __x >> _Nd_ull; + return __builtin_popcountll(__low) + __builtin_popcountll(__high); + } + } + + template + constexpr bool + __has_single_bit(_Tp __x) noexcept + { return std::__popcount(__x) == 1; } + + template + constexpr _Tp + __bit_ceil(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + if (__x == 0 || __x == 1) + return 1; + auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1u)); + + + + + if (!std::__is_constant_evaluated()) + { + do { if (std::__is_constant_evaluated() && !bool(__shift_exponent != __int_traits<_Tp>::__digits)) std::__glibcxx_assert_fail(); } while (false); + } + + using __promoted_type = decltype(__x << 1); + if constexpr (!is_same<__promoted_type, _Tp>::value) + { + + + + + + const int __extra_exp = sizeof(__promoted_type) / sizeof(_Tp) / 2; + __shift_exponent |= (__shift_exponent & _Nd) << __extra_exp; + } + return (_Tp)1u << __shift_exponent; + } + + template + constexpr _Tp + __bit_floor(_Tp __x) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if (__x == 0) + return 0; + return (_Tp)1u << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); + } + + template + constexpr int + __bit_width(_Tp __x) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + return _Nd - std::__countl_zero(__x); + } +# 482 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + +} +# 77 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + template + constexpr + inline int + __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) + { + + static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); +# 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); + } +# 152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline void + iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) + { + + + + +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + swap(*__a, *__b); + + } +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + _ForwardIterator2 + swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + ; + + for (; __first1 != __last1; ++__first1, (void)++__first2) + std::iter_swap(__first1, __first2); + return __first2; + } +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b) + { + + + + if (__b < __a) + return __b; + return __a; + } +# 254 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b) + { + + + + if (__a < __b) + return __b; + return __a; + } +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__b, __a)) + return __b; + return __a; + } +# 300 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__a, __b)) + return __b; + return __a; + } + + + + template + + inline _Iterator + __niter_base(_Iterator __it) + noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) + { return __it; } +# 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + decltype(std::__niter_base(std::declval<_Ite>())) + __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, + std::random_access_iterator_tag>&) + noexcept(std::is_nothrow_copy_constructible<_Ite>::value); + + + + + + template + + inline _From + __niter_wrap(_From __from, _To __res) + { return __from + (std::__niter_base(__res) - std::__niter_base(__from)); } + + + template + + inline _Iterator + __niter_wrap(const _Iterator&, _Iterator __res) + { return __res; } + + + + + + + + template + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, (void)++__first) + *__result = *__first; + return __result; + } + }; + + + template + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, (void)++__first) + *__result = std::move(*__first); + return __result; + } + }; + + + template<> + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = *__first; + ++__first; + ++__result; + } + return __result; + } + + template + static void + __assign_one(_Tp* __to, _Up* __from) + { *__to = *__from; } + }; + + + template<> + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = std::move(*__first); + ++__first; + ++__result; + } + return __result; + } + + template + static void + __assign_one(_Tp* __to, _Up* __from) + { *__to = std::move(*__from); } + }; + + + template + struct __copy_move<_IsMove, true, random_access_iterator_tag> + { + template + + static _Up* + __copy_m(_Tp* __first, _Tp* __last, _Up* __result) + { + const ptrdiff_t _Num = __last - __first; + if (__builtin_expect(_Num > 1, true)) + __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); + else if (_Num == 1) + std::__copy_move<_IsMove, false, random_access_iterator_tag>:: + __assign_one(__result, __first); + return __result + _Num; + } + }; + + + + template + struct _Deque_iterator; + + struct _Bit_iterator; + + + + + + + template + struct char_traits; + + template + class istreambuf_iterator; + + template + class ostreambuf_iterator; + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(_CharT*, _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(const _CharT*, const _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + _CharT*>::__type + __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, + std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type + __copy_move_a2( + istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, + std::_Deque_iterator<_CharT, _CharT&, _CharT*>); + + + template + + inline _OI + __copy_move_a2(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::iterator_category _Category; + + + + + + return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value, + _Category>::__copy_m(__first, __last, __result); + } + + template + _OI + __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _OI); + + template + std::_Deque_iterator<_OTp, _OTp&, _OTp*> + __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_OTp, _OTp&, _OTp*>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, + std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type + __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); + + template + + inline _OI + __copy_move_a1(_II __first, _II __last, _OI __result) + { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } + + template + + inline _OI + __copy_move_a(_II __first, _II __last, _OI __result) + { + return std::__niter_wrap(__result, + std::__copy_move_a1<_IsMove>(std::__niter_base(__first), + std::__niter_base(__last), + std::__niter_base(__result))); + } + + template + + _OI + __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + _OI); + + template + + __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __copy_move_a(_II, _II, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); + + template + + ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> + __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); + + template + + _OutputIterator + __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, + bool) + { + if (__n > 0) + { + while (true) + { + *__result = *__first; + ++__result; + if (--__n > 0) + ++__first; + else + break; + } + } + return __result; + } + + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, _CharT*>::__type + __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, + _Size, _CharT*, bool); + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, + std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type + __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, _Size, + std::_Deque_iterator<_CharT, _CharT&, _CharT*>, + bool); +# 639 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + copy(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a<__is_move_iterator<_II>::__value> + (std::__miter_base(__first), std::__miter_base(__last), __result); + } +# 672 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + move(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a(std::__miter_base(__first), + std::__miter_base(__last), __result); + } + + + + + + + template + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = *--__last; + return __result; + } + }; + + + template + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type + __n = __last - __first; + for (; __n > 0; --__n) + *--__result = *--__last; + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type + __n = __last - __first; + for (; __n > 0; --__n) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template + struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> + { + template + + static _Up* + __copy_move_b(_Tp* __first, _Tp* __last, _Up* __result) + { + const ptrdiff_t _Num = __last - __first; + if (__builtin_expect(_Num > 1, true)) + __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); + else if (_Num == 1) + std::__copy_move<_IsMove, false, random_access_iterator_tag>:: + __assign_one(__result - 1, __first); + return __result - _Num; + } + }; + + template + + inline _BI2 + __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) + { + typedef typename iterator_traits<_BI1>::iterator_category _Category; + + + + + + return std::__copy_move_backward<_IsMove, + __memcpyable<_BI2, _BI1>::__value, + _Category>::__copy_move_b(__first, + __last, + __result); + } + + template + + inline _BI2 + __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) + { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } + + template + _OI + __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _OI); + + template + std::_Deque_iterator<_OTp, _OTp&, _OTp*> + __copy_move_backward_a1( + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_OTp, _OTp&, _OTp*>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, + std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type + __copy_move_backward_a1(_II, _II, + std::_Deque_iterator<_Tp, _Tp&, _Tp*>); + + template + + inline _OI + __copy_move_backward_a(_II __first, _II __last, _OI __result) + { + return std::__niter_wrap(__result, + std::__copy_move_backward_a1<_IsMove> + (std::__niter_base(__first), std::__niter_base(__last), + std::__niter_base(__result))); + } + + template + + _OI + __copy_move_backward_a( + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + _OI); + + template + + __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __copy_move_backward_a(_II, _II, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); + + template + + ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> + __copy_move_backward_a( + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); +# 875 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _BI2 + copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + ; + + return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> + (std::__miter_base(__first), std::__miter_base(__last), __result); + } +# 910 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _BI2 + move_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + ; + + return std::__copy_move_backward_a(std::__miter_base(__first), + std::__miter_base(__last), + __result); + } + + + + + + + template + + inline typename + __gnu_cxx::__enable_if::__value, void>::__type + __fill_a1(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + for (; __first != __last; ++__first) + *__first = __value; + } + + template + + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type + __fill_a1(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __first != __last; ++__first) + *__first = __tmp; + } + + + template + + inline typename + __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type + __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c) + { + const _Tp __tmp = __c; +# 971 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + if (const size_t __len = __last - __first) + __builtin_memset(__first, static_cast(__tmp), __len); + } + + template + + inline void + __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, + ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, + const _Tp& __value) + { std::__fill_a1(__first.base(), __last.base(), __value); } + + template + void + __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, + const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, + const _VTp&); + + + void + __fill_a1(std::_Bit_iterator, std::_Bit_iterator, + const bool&); + + template + + inline void + __fill_a(_FIte __first, _FIte __last, const _Tp& __value) + { std::__fill_a1(__first, __last, __value); } + + template + + void + __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const _Tp&); +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline void + fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) + { + + + + ; + + std::__fill_a(__first, __last, __value); + } + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" + + inline constexpr int + __size_to_integer(int __n) { return __n; } + inline constexpr unsigned + __size_to_integer(unsigned __n) { return __n; } + inline constexpr long + __size_to_integer(long __n) { return __n; } + inline constexpr unsigned long + __size_to_integer(unsigned long __n) { return __n; } + inline constexpr long long + __size_to_integer(long long __n) { return __n; } + inline constexpr unsigned long long + __size_to_integer(unsigned long long __n) { return __n; } + + + __extension__ inline constexpr __int128 + __size_to_integer(__int128 __n) { return __n; } + __extension__ inline constexpr unsigned __int128 + __size_to_integer(unsigned __int128 __n) { return __n; } +# 1073 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + inline constexpr long long + __size_to_integer(float __n) { return (long long)__n; } + inline constexpr long long + __size_to_integer(double __n) { return (long long)__n; } + inline constexpr long long + __size_to_integer(long double __n) { return (long long)__n; } + + __extension__ inline constexpr long long + __size_to_integer(__float128 __n) { return (long long)__n; } + +#pragma GCC diagnostic pop + + template + + inline typename + __gnu_cxx::__enable_if::__value, _OutputIterator>::__type + __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) + { + for (; __n > 0; --__n, (void) ++__first) + *__first = __value; + return __first; + } + + template + + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type + __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __n > 0; --__n, (void) ++__first) + *__first = __tmp; + return __first; + } + + template + + ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, + _Size __n, const _Tp& __value, + std::input_iterator_tag); + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::output_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + return __fill_n_a1(__first, __n, __value); + } + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::input_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + return __fill_n_a1(__first, __n, __value); + } + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::random_access_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + if (__n <= 0) + return __first; + + ; + + std::__fill_a(__first, __first + __n, __value); + return __first + __n; + } +# 1175 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + fill_n(_OI __first, _Size __n, const _Tp& __value) + { + + + + return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, + std::__iterator_category(__first)); + } + + template + struct __equal + { + template + + static bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + for (; __first1 != __last1; ++__first1, (void) ++__first2) + if (!(*__first1 == *__first2)) + return false; + return true; + } + }; + + template<> + struct __equal + { + template + + static bool + equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) + { + if (const size_t __len = (__last1 - __first1)) + return !std::__memcmp(__first1, __first2, __len); + return true; + } + }; + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, bool>::__type + __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _II); + + template + bool + __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, bool>::__type + __equal_aux1(_II, _II, + std::_Deque_iterator<_Tp, _Ref, _Ptr>); + + template + + inline bool + __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + const bool __simple = ((__is_integer<_ValueType1>::__value + || __is_pointer<_ValueType1>::__value) + && __memcmpable<_II1, _II2>::__value); + return std::__equal<__simple>::equal(__first1, __last1, __first2); + } + + template + + inline bool + __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) + { + return std::__equal_aux1(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2)); + } + + template + + bool + __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + _II2); + + template + + bool + __equal_aux(_II1, _II1, + const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); + + template + + bool + __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); + + template + struct __lc_rai + { + template + + static _II1 + __newlast1(_II1, _II1 __last1, _II2, _II2) + { return __last1; } + + template + + static bool + __cnd2(_II __first, _II __last) + { return __first != __last; } + }; + + template<> + struct __lc_rai + { + template + + static _RAI1 + __newlast1(_RAI1 __first1, _RAI1 __last1, + _RAI2 __first2, _RAI2 __last2) + { + const typename iterator_traits<_RAI1>::difference_type + __diff1 = __last1 - __first1; + const typename iterator_traits<_RAI2>::difference_type + __diff2 = __last2 - __first2; + return __diff2 < __diff1 ? __first1 + __diff2 : __last1; + } + + template + static bool + __cnd2(_RAI, _RAI) + { return true; } + }; + + template + + bool + __lexicographical_compare_impl(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, + _Compare __comp) + { + typedef typename iterator_traits<_II1>::iterator_category _Category1; + typedef typename iterator_traits<_II2>::iterator_category _Category2; + typedef std::__lc_rai<_Category1, _Category2> __rai_type; + + __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); + for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); + ++__first1, (void)++__first2) + { + if (__comp(__first1, __first2)) + return true; + if (__comp(__first2, __first1)) + return false; + } + return __first1 == __last1 && __first2 != __last2; + } + + template + struct __lexicographical_compare + { + template + + static bool + __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + using __gnu_cxx::__ops::__iter_less_iter; + return std::__lexicographical_compare_impl(__first1, __last1, + __first2, __last2, + __iter_less_iter()); + } + + template + + static int + __3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + while (__first1 != __last1) + { + if (__first2 == __last2) + return +1; + if (*__first1 < *__first2) + return -1; + if (*__first2 < *__first1) + return +1; + ++__first1; + ++__first2; + } + return int(__first2 == __last2) - 1; + } + }; + + template<> + struct __lexicographical_compare + { + template + + static bool + __lc(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { return __3way(__first1, __last1, __first2, __last2) < 0; } + + template + + static ptrdiff_t + __3way(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { + const size_t __len1 = __last1 - __first1; + const size_t __len2 = __last2 - __first2; + if (const size_t __len = std::min(__len1, __len2)) + if (int __result = std::__memcmp(__first1, __first2, __len)) + return __result; + return ptrdiff_t(__len1 - __len2); + } + }; + + template + + inline bool + __lexicographical_compare_aux1(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + typedef typename iterator_traits<_II2>::value_type _ValueType2; + const bool __simple = + (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value + && __is_pointer<_II1>::__value + && __is_pointer<_II2>::__value + + + + + + + + ); + + return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, + __first2, __last2); + } + + template + bool + __lexicographical_compare_aux1( + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + _Tp2*, _Tp2*); + + template + bool + __lexicographical_compare_aux1(_Tp1*, _Tp1*, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + bool + __lexicographical_compare_aux1( + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + + inline bool + __lexicographical_compare_aux(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + return std::__lexicographical_compare_aux1(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2), + std::__niter_base(__last2)); + } + + template + + bool + __lexicographical_compare_aux( + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + _II2, _II2); + + template + + bool + __lexicographical_compare_aux( + _II1, _II1, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); + + template + + bool + __lexicographical_compare_aux( + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); + + template + + _ForwardIterator + __lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _DistanceType __len = std::distance(__first, __last); + + while (__len > 0) + { + _DistanceType __half = __len >> 1; + _ForwardIterator __middle = __first; + std::advance(__middle, __half); + if (__comp(__middle, __val)) + { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else + __len = __half; + } + return __first; + } +# 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline _ForwardIterator + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + + + + + ; + + return std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val()); + } + + + + template + inline constexpr _Tp + __lg(_Tp __n) + { + + return std::__bit_width(make_unsigned_t<_Tp>(__n)) - 1; +# 1563 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + } + + +# 1579 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + + + + + + + ; + + return std::__equal_aux(__first1, __last1, __first2); + } +# 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + for (; __first1 != __last1; ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return true; + } + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++17-extensions" + + + template + + inline bool + __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + using _RATag = random_access_iterator_tag; + using _Cat1 = typename iterator_traits<_II1>::iterator_category; + using _Cat2 = typename iterator_traits<_II2>::iterator_category; + using _RAIters = __and_, is_same<_Cat2, _RATag>>; + if constexpr (_RAIters::value) + { + if ((__last1 - __first1) != (__last2 - __first2)) + return false; + return std::equal(__first1, __last1, __first2); + } + else + { + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!(*__first1 == *__first2)) + return false; + return __first1 == __last1 && __first2 == __last2; + } + } + + + template + + inline bool + __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, + _BinaryPredicate __binary_pred) + { + using _RATag = random_access_iterator_tag; + using _Cat1 = typename iterator_traits<_II1>::iterator_category; + using _Cat2 = typename iterator_traits<_II2>::iterator_category; + using _RAIters = __and_, is_same<_Cat2, _RATag>>; + if constexpr (_RAIters::value) + { + if ((__last1 - __first1) != (__last2 - __first2)) + return false; + return std::equal(__first1, __last1, __first2, + __binary_pred); + } + else + { + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return __first1 == __last1 && __first2 == __last2; + } + } +#pragma GCC diagnostic pop +# 1701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + + + + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2); + } +# 1734 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2, + __binary_pred); + } +# 1766 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + + + + + + + + + + ; + ; + + return std::__lexicographical_compare_aux(__first1, __last1, + __first2, __last2); + } +# 1801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, _Compare __comp) + { + + + + ; + ; + + return std::__lexicographical_compare_impl + (__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 1916 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 1944 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2) + { + + + + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 1978 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + template + + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __first2 != __last2 + && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 2026 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2) + { + + + + + + + ; + ; + + return std::__mismatch(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 2062 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__mismatch(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + + + + template + + inline _InputIterator + __find_if(_InputIterator __first, _InputIterator __last, + _Predicate __pred, input_iterator_tag) + { + while (__first != __last && !__pred(__first)) + ++__first; + return __first; + } + + + template + + _RandomAccessIterator + __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Predicate __pred, random_access_iterator_tag) + { + typename iterator_traits<_RandomAccessIterator>::difference_type + __trip_count = (__last - __first) >> 2; + + for (; __trip_count > 0; --__trip_count) + { + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + } + + switch (__last - __first) + { + case 3: + if (__pred(__first)) + return __first; + ++__first; + + case 2: + if (__pred(__first)) + return __first; + ++__first; + + case 1: + if (__pred(__first)) + return __first; + ++__first; + + case 0: + default: + return __last; + } + } + + template + + inline _Iterator + __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) + { + return __find_if(__first, __last, __pred, + std::__iterator_category(__first)); + } + + template + + typename iterator_traits<_InputIterator>::difference_type + __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { + typename iterator_traits<_InputIterator>::difference_type __n = 0; + for (; __first != __last; ++__first) + if (__pred(__first)) + ++__n; + return __n; + } + + template + + _ForwardIterator + __remove_if(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + __first = std::__find_if(__first, __last, __pred); + if (__first == __last) + return __first; + _ForwardIterator __result = __first; + ++__first; + for (; __first != __last; ++__first) + if (!__pred(__first)) + { + *__result = std::move(*__first); + ++__result; + } + return __result; + } + + template + + _ForwardIterator1 + __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + if (__first1 == __last1 || __first2 == __last2) + return __first1; + + + _ForwardIterator2 __p1(__first2); + if (++__p1 == __last2) + return std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + + _ForwardIterator1 __current = __first1; + + for (;;) + { + __first1 = + std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + if (__first1 == __last1) + return __last1; + + _ForwardIterator2 __p = __p1; + __current = __first1; + if (++__current == __last1) + return __last1; + + while (__predicate(__current, __p)) + { + if (++__p == __last2) + return __first1; + if (++__current == __last1) + return __last1; + } + ++__first1; + } + return __first1; + } + + + template + + bool + __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _BinaryPredicate __pred) + { + + + for (; __first1 != __last1; ++__first1, (void)++__first2) + if (!__pred(__first1, __first2)) + break; + + if (__first1 == __last1) + return true; + + + + _ForwardIterator2 __last2 = __first2; + std::advance(__last2, std::distance(__first1, __last1)); + for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) + { + if (__scan != std::__find_if(__first1, __scan, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) + continue; + + auto __matches + = std::__count_if(__first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); + if (0 == __matches || + std::__count_if(__scan, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) + != __matches) + return false; + } + return true; + } +# 2286 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline bool + is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + + ; + + return std::__is_permutation(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } + + + +# 2328 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _ForwardIterator1 + search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + + + + + + ; + ; + + return std::__search(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__predicate)); + } + + + +} +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + enum float_round_style + { + round_indeterminate = -1, + round_toward_zero = 0, + round_to_nearest = 1, + round_toward_infinity = 2, + round_toward_neg_infinity = 3 + }; + + + + + + + + enum float_denorm_style + { + + denorm_indeterminate = -1, + + denorm_absent = 0, + + denorm_present = 1 + }; +# 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + struct __numeric_limits_base + { + + + static constexpr bool is_specialized = false; + + + + + static constexpr int digits = 0; + + + static constexpr int digits10 = 0; + + + + + static constexpr int max_digits10 = 0; + + + + static constexpr bool is_signed = false; + + + static constexpr bool is_integer = false; + + + + + static constexpr bool is_exact = false; + + + + static constexpr int radix = 0; + + + + static constexpr int min_exponent = 0; + + + + static constexpr int min_exponent10 = 0; + + + + + static constexpr int max_exponent = 0; + + + + static constexpr int max_exponent10 = 0; + + + static constexpr bool has_infinity = false; + + + + static constexpr bool has_quiet_NaN = false; + + + + static constexpr bool has_signaling_NaN = false; + + + static constexpr float_denorm_style has_denorm = denorm_absent; + + + + static constexpr bool has_denorm_loss = false; + + + + static constexpr bool is_iec559 = false; + + + + + static constexpr bool is_bounded = false; +# 288 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + static constexpr bool is_modulo = false; + + + static constexpr bool traps = false; + + + static constexpr bool tinyness_before = false; + + + + + static constexpr float_round_style round_style = + round_toward_zero; + }; +# 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template + struct numeric_limits : public __numeric_limits_base + { + + + static constexpr _Tp + min() noexcept { return _Tp(); } + + + static constexpr _Tp + max() noexcept { return _Tp(); } + + + + + static constexpr _Tp + lowest() noexcept { return _Tp(); } + + + + + static constexpr _Tp + epsilon() noexcept { return _Tp(); } + + + static constexpr _Tp + round_error() noexcept { return _Tp(); } + + + static constexpr _Tp + infinity() noexcept { return _Tp(); } + + + + static constexpr _Tp + quiet_NaN() noexcept { return _Tp(); } + + + + static constexpr _Tp + signaling_NaN() noexcept { return _Tp(); } + + + + + static constexpr _Tp + denorm_min() noexcept { return _Tp(); } + }; + + + + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; +# 383 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr bool + min() noexcept { return false; } + + static constexpr bool + max() noexcept { return true; } + + + static constexpr bool + lowest() noexcept { return min(); } + + static constexpr int digits = 1; + static constexpr int digits10 = 0; + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr bool + epsilon() noexcept { return false; } + + static constexpr bool + round_error() noexcept { return false; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr bool + infinity() noexcept { return false; } + + static constexpr bool + quiet_NaN() noexcept { return false; } + + static constexpr bool + signaling_NaN() noexcept { return false; } + + static constexpr bool + denorm_min() noexcept { return false; } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + + + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char + min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } + + static constexpr char + max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } + + + static constexpr char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((char)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char + epsilon() noexcept { return 0; } + + static constexpr char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr + char infinity() noexcept { return char(); } + + static constexpr char + quiet_NaN() noexcept { return char(); } + + static constexpr char + signaling_NaN() noexcept { return char(); } + + static constexpr char + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr signed char + min() noexcept { return -0x7f - 1; } + + static constexpr signed char + max() noexcept { return 0x7f; } + + + static constexpr signed char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr signed char + epsilon() noexcept { return 0; } + + static constexpr signed char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr signed char + infinity() noexcept { return static_cast(0); } + + static constexpr signed char + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr signed char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr signed char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned char + min() noexcept { return 0; } + + static constexpr unsigned char + max() noexcept { return 0x7f * 2U + 1; } + + + static constexpr unsigned char + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned char + epsilon() noexcept { return 0; } + + static constexpr unsigned char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned char + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned char + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr wchar_t + min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } + + static constexpr wchar_t + max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } + + + static constexpr wchar_t + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((wchar_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr wchar_t + epsilon() noexcept { return 0; } + + static constexpr wchar_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr wchar_t + infinity() noexcept { return wchar_t(); } + + static constexpr wchar_t + quiet_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + signaling_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + denorm_min() noexcept { return wchar_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 796 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char16_t + min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } + + static constexpr char16_t + max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } + + static constexpr char16_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char16_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char16_t + epsilon() noexcept { return 0; } + + static constexpr char16_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char16_t + infinity() noexcept { return char16_t(); } + + static constexpr char16_t + quiet_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + signaling_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + denorm_min() noexcept { return char16_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char32_t + min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } + + static constexpr char32_t + max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } + + static constexpr char32_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char32_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char32_t + epsilon() noexcept { return 0; } + + static constexpr char32_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char32_t + infinity() noexcept { return char32_t(); } + + static constexpr char32_t + quiet_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + signaling_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + denorm_min() noexcept { return char32_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr short + min() noexcept { return -0x7fff - 1; } + + static constexpr short + max() noexcept { return 0x7fff; } + + + static constexpr short + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); + static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr short + epsilon() noexcept { return 0; } + + static constexpr short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr short + infinity() noexcept { return short(); } + + static constexpr short + quiet_NaN() noexcept { return short(); } + + static constexpr short + signaling_NaN() noexcept { return short(); } + + static constexpr short + denorm_min() noexcept { return short(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned short + min() noexcept { return 0; } + + static constexpr unsigned short + max() noexcept { return 0x7fff * 2U + 1; } + + + static constexpr unsigned short + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned short + epsilon() noexcept { return 0; } + + static constexpr unsigned short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned short + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned short + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr int + min() noexcept { return -0x7fffffff - 1; } + + static constexpr int + max() noexcept { return 0x7fffffff; } + + + static constexpr int + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); + static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr int + epsilon() noexcept { return 0; } + + static constexpr int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr int + infinity() noexcept { return static_cast(0); } + + static constexpr int + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr int + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr int + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned int + min() noexcept { return 0; } + + static constexpr unsigned int + max() noexcept { return 0x7fffffff * 2U + 1; } + + + static constexpr unsigned int + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned int + epsilon() noexcept { return 0; } + + static constexpr unsigned int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned int + infinity() noexcept { return static_cast(0); } + + static constexpr unsigned int + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long + min() noexcept { return -0x7fffffffffffffffL - 1; } + + static constexpr long + max() noexcept { return 0x7fffffffffffffffL; } + + + static constexpr long + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); + static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long + epsilon() noexcept { return 0; } + + static constexpr long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long + infinity() noexcept { return static_cast(0); } + + static constexpr long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long + min() noexcept { return 0; } + + static constexpr unsigned long + max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } + + + static constexpr unsigned long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long + epsilon() noexcept { return 0; } + + static constexpr unsigned long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long long + min() noexcept { return -0x7fffffffffffffffLL - 1; } + + static constexpr long long + max() noexcept { return 0x7fffffffffffffffLL; } + + + static constexpr long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(long long) * 8 - ((long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long long + epsilon() noexcept { return 0; } + + static constexpr long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long long + infinity() noexcept { return static_cast(0); } + + static constexpr long long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr long long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long long + min() noexcept { return 0; } + + static constexpr unsigned long long + max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } + + + static constexpr unsigned long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long long + epsilon() noexcept { return 0; } + + static constexpr unsigned long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 1637 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + __extension__ template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; __extension__ template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; +# 1669 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr float + min() noexcept { return 1.17549435082228750796873653722224568e-38F; } + + static constexpr float + max() noexcept { return 3.40282346638528859811704183484516925e+38F; } + + + static constexpr float + lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } + + + static constexpr int digits = 24; + static constexpr int digits10 = 6; + + static constexpr int max_digits10 + = (2 + (24) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr float + epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } + + static constexpr float + round_error() noexcept { return 0.5F; } + + static constexpr int min_exponent = (-125); + static constexpr int min_exponent10 = (-37); + static constexpr int max_exponent = 128; + static constexpr int max_exponent10 = 38; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr float + infinity() noexcept { return __builtin_huge_valf(); } + + static constexpr float + quiet_NaN() noexcept { return __builtin_nanf(""); } + + static constexpr float + signaling_NaN() noexcept { return __builtin_nansf(""); } + + static constexpr float + denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr double + min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } + + static constexpr double + max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } + + + static constexpr double + lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } + + + static constexpr int digits = 53; + static constexpr int digits10 = 15; + + static constexpr int max_digits10 + = (2 + (53) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr double + epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } + + static constexpr double + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = (-1021); + static constexpr int min_exponent10 = (-307); + static constexpr int max_exponent = 1024; + static constexpr int max_exponent10 = 308; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr double + infinity() noexcept { return __builtin_huge_val(); } + + static constexpr double + quiet_NaN() noexcept { return __builtin_nan(""); } + + static constexpr double + signaling_NaN() noexcept { return __builtin_nans(""); } + + static constexpr double + denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long double + min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } + + static constexpr long double + max() noexcept { return 1.18973149535723176502126385303097021e+4932L; } + + + static constexpr long double + lowest() noexcept { return -1.18973149535723176502126385303097021e+4932L; } + + + static constexpr int digits = 64; + static constexpr int digits10 = 18; + + static constexpr int max_digits10 + = (2 + (64) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr long double + epsilon() noexcept { return 1.08420217248550443400745280086994171e-19L; } + + static constexpr long double + round_error() noexcept { return 0.5L; } + + static constexpr int min_exponent = (-16381); + static constexpr int min_exponent10 = (-4931); + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr long double + infinity() noexcept { return __builtin_huge_vall(); } + + static constexpr long double + quiet_NaN() noexcept { return __builtin_nanl(""); } + + static constexpr long double + signaling_NaN() noexcept { return __builtin_nansl(""); } + + static constexpr long double + denorm_min() noexcept { return 3.64519953188247460252840593361941982e-4951L; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = + false; + static constexpr float_round_style round_style = + round_to_nearest; + }; +# 1989 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +__extension__ template<> struct numeric_limits<_Float32> { static constexpr bool is_specialized = true; static constexpr _Float32 min() noexcept { return 1.17549435082228750796873653722224568e-38F32; } static constexpr _Float32 max() noexcept { return 3.40282346638528859811704183484516925e+38F32; } static constexpr _Float32 lowest() noexcept { return -3.40282346638528859811704183484516925e+38F32; } static constexpr int digits = 24; static constexpr int digits10 = 6; static constexpr int max_digits10 = (2 + (24) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float32 epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F32; } static constexpr _Float32 round_error() noexcept { return 0.5F32; } static constexpr int min_exponent = (-125); static constexpr int min_exponent10 = (-37); static constexpr int max_exponent = 128; static constexpr int max_exponent10 = 38; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float32 infinity() noexcept { return __builtin_huge_valf32(); } static constexpr _Float32 quiet_NaN() noexcept { return __builtin_nanf32(""); } static constexpr _Float32 signaling_NaN() noexcept { return __builtin_nansf32(""); } static constexpr _Float32 denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F32; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; + + +__extension__ template<> struct numeric_limits<_Float64> { static constexpr bool is_specialized = true; static constexpr _Float64 min() noexcept { return 2.22507385850720138309023271733240406e-308F64; } static constexpr _Float64 max() noexcept { return 1.79769313486231570814527423731704357e+308F64; } static constexpr _Float64 lowest() noexcept { return -1.79769313486231570814527423731704357e+308F64; } static constexpr int digits = 53; static constexpr int digits10 = 15; static constexpr int max_digits10 = (2 + (53) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float64 epsilon() noexcept { return 2.22044604925031308084726333618164062e-16F64; } static constexpr _Float64 round_error() noexcept { return 0.5F64; } static constexpr int min_exponent = (-1021); static constexpr int min_exponent10 = (-307); static constexpr int max_exponent = 1024; static constexpr int max_exponent10 = 308; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float64 infinity() noexcept { return __builtin_huge_valf64(); } static constexpr _Float64 quiet_NaN() noexcept { return __builtin_nanf64(""); } static constexpr _Float64 signaling_NaN() noexcept { return __builtin_nansf64(""); } static constexpr _Float64 denorm_min() noexcept { return 4.94065645841246544176568792868221372e-324F64; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; + + +__extension__ template<> struct numeric_limits<_Float128> { static constexpr bool is_specialized = true; static constexpr _Float128 min() noexcept { return 3.36210314311209350626267781732175260e-4932F128; } static constexpr _Float128 max() noexcept { return 1.18973149535723176508575932662800702e+4932F128; } static constexpr _Float128 lowest() noexcept { return -1.18973149535723176508575932662800702e+4932F128; } static constexpr int digits = 113; static constexpr int digits10 = 33; static constexpr int max_digits10 = (2 + (113) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float128 epsilon() noexcept { return 1.92592994438723585305597794258492732e-34F128; } static constexpr _Float128 round_error() noexcept { return 0.5F128; } static constexpr int min_exponent = (-16381); static constexpr int min_exponent10 = (-4931); static constexpr int max_exponent = 16384; static constexpr int max_exponent10 = 4932; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float128 infinity() noexcept { return __builtin_huge_valf128(); } static constexpr _Float128 quiet_NaN() noexcept { return __builtin_nanf128(""); } static constexpr _Float128 signaling_NaN() noexcept { return __builtin_nansf128(""); } static constexpr _Float128 denorm_min() noexcept { return 6.47517511943802511092443895822764655e-4966F128; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; +# 2087 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + __extension__ + template<> + struct numeric_limits<__float128> + { + static constexpr bool is_specialized = true; + + static constexpr __float128 + min() noexcept + { + + + + + return __extension__ 0x1.0p-16382Q; + + } + + static constexpr __float128 + max() noexcept + { + + + + + + + + return __extension__ 0x1.ffffffffffffffffffffffffffffp+16383Q; + + } + + static constexpr __float128 + lowest() noexcept + { return -max(); } + + static constexpr int digits = 113; + static constexpr int digits10 = 33; + + static constexpr int max_digits10 = 35; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr __float128 + epsilon() noexcept + { return double(1.9259299443872359e-34); } + + static constexpr __float128 + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = -16381; + static constexpr int min_exponent10 = -4931; + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + + + static constexpr bool has_signaling_NaN = true; + + + + static constexpr float_denorm_style has_denorm + = denorm_present; + static constexpr bool has_denorm_loss = false; + + static constexpr __float128 + infinity() noexcept + { return __builtin_huge_val(); } + + static constexpr __float128 + quiet_NaN() noexcept + { return __builtin_nan(""); } + + static constexpr __float128 + signaling_NaN() noexcept + { + + return __builtin_nansq(""); + + + + + + } + + static constexpr __float128 + denorm_min() noexcept + { + + + + + return __extension__ 0x1.0p-16494Q; + + } + + static constexpr bool is_iec559 = has_signaling_NaN; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_to_nearest; +# 2218 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + }; + + + + +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + namespace __detail + { + + + + template + struct __floating_point_constant + { + static const _Tp __value; + }; + + + + template + struct __numeric_constants + { + + static _Tp __pi() throw() + { return static_cast<_Tp>(3.1415926535897932384626433832795029L); } + + static _Tp __pi_2() throw() + { return static_cast<_Tp>(1.5707963267948966192313216916397514L); } + + static _Tp __pi_3() throw() + { return static_cast<_Tp>(1.0471975511965977461542144610931676L); } + + static _Tp __pi_4() throw() + { return static_cast<_Tp>(0.7853981633974483096156608458198757L); } + + static _Tp __1_pi() throw() + { return static_cast<_Tp>(0.3183098861837906715377675267450287L); } + + static _Tp __2_sqrtpi() throw() + { return static_cast<_Tp>(1.1283791670955125738961589031215452L); } + + static _Tp __sqrt2() throw() + { return static_cast<_Tp>(1.4142135623730950488016887242096981L); } + + static _Tp __sqrt3() throw() + { return static_cast<_Tp>(1.7320508075688772935274463415058723L); } + + static _Tp __sqrtpio2() throw() + { return static_cast<_Tp>(1.2533141373155002512078826424055226L); } + + static _Tp __sqrt1_2() throw() + { return static_cast<_Tp>(0.7071067811865475244008443621048490L); } + + static _Tp __lnpi() throw() + { return static_cast<_Tp>(1.1447298858494001741434273513530587L); } + + static _Tp __gamma_e() throw() + { return static_cast<_Tp>(0.5772156649015328606065120900824024L); } + + static _Tp __euler() throw() + { return static_cast<_Tp>(2.7182818284590452353602874713526625L); } + }; +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + template + inline bool __isnan(_Tp __x) + { return std::isnan(__x); } +# 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + } + + + + + +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + namespace __detail + { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __bernoulli_series(unsigned int __n) + { + + static const _Tp __num[28] = { + _Tp(1UL), -_Tp(1UL) / _Tp(2UL), + _Tp(1UL) / _Tp(6UL), _Tp(0UL), + -_Tp(1UL) / _Tp(30UL), _Tp(0UL), + _Tp(1UL) / _Tp(42UL), _Tp(0UL), + -_Tp(1UL) / _Tp(30UL), _Tp(0UL), + _Tp(5UL) / _Tp(66UL), _Tp(0UL), + -_Tp(691UL) / _Tp(2730UL), _Tp(0UL), + _Tp(7UL) / _Tp(6UL), _Tp(0UL), + -_Tp(3617UL) / _Tp(510UL), _Tp(0UL), + _Tp(43867UL) / _Tp(798UL), _Tp(0UL), + -_Tp(174611) / _Tp(330UL), _Tp(0UL), + _Tp(854513UL) / _Tp(138UL), _Tp(0UL), + -_Tp(236364091UL) / _Tp(2730UL), _Tp(0UL), + _Tp(8553103UL) / _Tp(6UL), _Tp(0UL) + }; + + if (__n == 0) + return _Tp(1); + + if (__n == 1) + return -_Tp(1) / _Tp(2); + + + if (__n % 2 == 1) + return _Tp(0); + + + if (__n < 28) + return __num[__n]; + + + _Tp __fact = _Tp(1); + if ((__n / 2) % 2 == 0) + __fact *= _Tp(-1); + for (unsigned int __k = 1; __k <= __n; ++__k) + __fact *= __k / (_Tp(2) * __numeric_constants<_Tp>::__pi()); + __fact *= _Tp(2); + + _Tp __sum = _Tp(0); + for (unsigned int __i = 1; __i < 1000; ++__i) + { + _Tp __term = std::pow(_Tp(__i), -_Tp(__n)); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return __fact * __sum; + } +# 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + inline _Tp + __bernoulli(int __n) + { return __bernoulli_series<_Tp>(__n); } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_bernoulli(_Tp __x) + { + _Tp __lg = (__x - _Tp(0.5L)) * std::log(__x) - __x + + _Tp(0.5L) * std::log(_Tp(2) + * __numeric_constants<_Tp>::__pi()); + + const _Tp __xx = __x * __x; + _Tp __help = _Tp(1) / __x; + for ( unsigned int __i = 1; __i < 20; ++__i ) + { + const _Tp __2i = _Tp(2 * __i); + __help /= __2i * (__2i - _Tp(1)) * __xx; + __lg += __bernoulli<_Tp>(2 * __i) * __help; + } + + return __lg; + } +# 181 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_lanczos(_Tp __x) + { + const _Tp __xm1 = __x - _Tp(1); + + static const _Tp __lanczos_cheb_7[9] = { + _Tp( 0.99999999999980993227684700473478L), + _Tp( 676.520368121885098567009190444019L), + _Tp(-1259.13921672240287047156078755283L), + _Tp( 771.3234287776530788486528258894L), + _Tp(-176.61502916214059906584551354L), + _Tp( 12.507343278686904814458936853L), + _Tp(-0.13857109526572011689554707L), + _Tp( 9.984369578019570859563e-6L), + _Tp( 1.50563273514931155834e-7L) + }; + + static const _Tp __LOGROOT2PI + = _Tp(0.9189385332046727417803297364056176L); + + _Tp __sum = __lanczos_cheb_7[0]; + for(unsigned int __k = 1; __k < 9; ++__k) + __sum += __lanczos_cheb_7[__k] / (__xm1 + __k); + + const _Tp __term1 = (__xm1 + _Tp(0.5L)) + * std::log((__xm1 + _Tp(7.5L)) + / __numeric_constants<_Tp>::__euler()); + const _Tp __term2 = __LOGROOT2PI + std::log(__sum); + const _Tp __result = __term1 + (__term2 - _Tp(7)); + + return __result; + } +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma(_Tp __x) + { + if (__x > _Tp(0.5L)) + return __log_gamma_lanczos(__x); + else + { + const _Tp __sin_fact + = std::abs(std::sin(__numeric_constants<_Tp>::__pi() * __x)); + if (__sin_fact == _Tp(0)) + std::__throw_domain_error(("Argument is nonpositive integer " "in __log_gamma") + ); + return __numeric_constants<_Tp>::__lnpi() + - std::log(__sin_fact) + - __log_gamma_lanczos(_Tp(1) - __x); + } + } +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_sign(_Tp __x) + { + if (__x > _Tp(0)) + return _Tp(1); + else + { + const _Tp __sin_fact + = std::sin(__numeric_constants<_Tp>::__pi() * __x); + if (__sin_fact > _Tp(0)) + return (1); + else if (__sin_fact < _Tp(0)) + return -_Tp(1); + else + return _Tp(0); + } + } +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_bincoef(unsigned int __n, unsigned int __k) + { + + static const _Tp __max_bincoeff + = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + _Tp __coeff = ::std::lgamma(_Tp(1 + __n)) + - ::std::lgamma(_Tp(1 + __k)) + - ::std::lgamma(_Tp(1 + __n - __k)); + + + + + + } +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __bincoef(unsigned int __n, unsigned int __k) + { + + static const _Tp __max_bincoeff + = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + const _Tp __log_coeff = __log_bincoef<_Tp>(__n, __k); + if (__log_coeff > __max_bincoeff) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return std::exp(__log_coeff); + } +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + inline _Tp + __gamma(_Tp __x) + { return std::exp(__log_gamma(__x)); } +# 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi_series(_Tp __x) + { + _Tp __sum = -__numeric_constants<_Tp>::__gamma_e() - _Tp(1) / __x; + const unsigned int __max_iter = 100000; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + const _Tp __term = __x / (__k * (__k + __x)); + __sum += __term; + if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) + break; + } + return __sum; + } +# 386 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi_asymp(_Tp __x) + { + _Tp __sum = std::log(__x) - _Tp(0.5L) / __x; + const _Tp __xx = __x * __x; + _Tp __xp = __xx; + const unsigned int __max_iter = 100; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + const _Tp __term = __bernoulli<_Tp>(2 * __k) / (2 * __k * __xp); + __sum -= __term; + if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) + break; + __xp *= __xx; + } + return __sum; + } +# 417 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi(_Tp __x) + { + const int __n = static_cast(__x + 0.5L); + const _Tp __eps = _Tp(4) * std::numeric_limits<_Tp>::epsilon(); + if (__n <= 0 && std::abs(__x - _Tp(__n)) < __eps) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x < _Tp(0)) + { + const _Tp __pi = __numeric_constants<_Tp>::__pi(); + return __psi(_Tp(1) - __x) + - __pi * std::cos(__pi * __x) / std::sin(__pi * __x); + } + else if (__x > _Tp(100)) + return __psi_asymp(__x); + else + return __psi_series(__x); + } +# 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi(unsigned int __n, _Tp __x) + { + if (__x <= _Tp(0)) + std::__throw_domain_error(("Argument out of range " "in __psi") + ); + else if (__n == 0) + return __psi(__x); + else + { + const _Tp __hzeta = __hurwitz_zeta(_Tp(__n + 1), __x); + + const _Tp __ln_nfact = ::std::lgamma(_Tp(__n + 1)); + + + + _Tp __result = std::exp(__ln_nfact) * __hzeta; + if (__n % 2 == 1) + __result = -__result; + return __result; + } + } + } + + + + + + +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 1 3 +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + namespace __detail + { +# 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __gamma_temme(_Tp __mu, + _Tp & __gam1, _Tp & __gam2, _Tp & __gampl, _Tp & __gammi) + { + + __gampl = _Tp(1) / ::std::tgamma(_Tp(1) + __mu); + __gammi = _Tp(1) / ::std::tgamma(_Tp(1) - __mu); + + + + + + if (std::abs(__mu) < std::numeric_limits<_Tp>::epsilon()) + __gam1 = -_Tp(__numeric_constants<_Tp>::__gamma_e()); + else + __gam1 = (__gammi - __gampl) / (_Tp(2) * __mu); + + __gam2 = (__gammi + __gampl) / (_Tp(2)); + + return; + } +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __bessel_jn(_Tp __nu, _Tp __x, + _Tp & __Jnu, _Tp & __Nnu, _Tp & __Jpnu, _Tp & __Npnu) + { + if (__x == _Tp(0)) + { + if (__nu == _Tp(0)) + { + __Jnu = _Tp(1); + __Jpnu = _Tp(0); + } + else if (__nu == _Tp(1)) + { + __Jnu = _Tp(0); + __Jpnu = _Tp(0.5L); + } + else + { + __Jnu = _Tp(0); + __Jpnu = _Tp(0); + } + __Nnu = -std::numeric_limits<_Tp>::infinity(); + __Npnu = std::numeric_limits<_Tp>::infinity(); + return; + } + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + + + + const _Tp __fp_min = std::sqrt(std::numeric_limits<_Tp>::min()); + const int __max_iter = 15000; + const _Tp __x_min = _Tp(2); + + const int __nl = (__x < __x_min + ? static_cast(__nu + _Tp(0.5L)) + : std::max(0, static_cast(__nu - __x + _Tp(1.5L)))); + + const _Tp __mu = __nu - __nl; + const _Tp __mu2 = __mu * __mu; + const _Tp __xi = _Tp(1) / __x; + const _Tp __xi2 = _Tp(2) * __xi; + _Tp __w = __xi2 / __numeric_constants<_Tp>::__pi(); + int __isign = 1; + _Tp __h = __nu * __xi; + if (__h < __fp_min) + __h = __fp_min; + _Tp __b = __xi2 * __nu; + _Tp __d = _Tp(0); + _Tp __c = __h; + int __i; + for (__i = 1; __i <= __max_iter; ++__i) + { + __b += __xi2; + __d = __b - __d; + if (std::abs(__d) < __fp_min) + __d = __fp_min; + __c = __b - _Tp(1) / __c; + if (std::abs(__c) < __fp_min) + __c = __fp_min; + __d = _Tp(1) / __d; + const _Tp __del = __c * __d; + __h *= __del; + if (__d < _Tp(0)) + __isign = -__isign; + if (std::abs(__del - _Tp(1)) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Argument x too large in __bessel_jn; " "try asymptotic expansion.") + ); + _Tp __Jnul = __isign * __fp_min; + _Tp __Jpnul = __h * __Jnul; + _Tp __Jnul1 = __Jnul; + _Tp __Jpnu1 = __Jpnul; + _Tp __fact = __nu * __xi; + for ( int __l = __nl; __l >= 1; --__l ) + { + const _Tp __Jnutemp = __fact * __Jnul + __Jpnul; + __fact -= __xi; + __Jpnul = __fact * __Jnutemp - __Jnul; + __Jnul = __Jnutemp; + } + if (__Jnul == _Tp(0)) + __Jnul = __eps; + _Tp __f= __Jpnul / __Jnul; + _Tp __Nmu, __Nnu1, __Npmu, __Jmu; + if (__x < __x_min) + { + const _Tp __x2 = __x / _Tp(2); + const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; + _Tp __fact = (std::abs(__pimu) < __eps + ? _Tp(1) : __pimu / std::sin(__pimu)); + _Tp __d = -std::log(__x2); + _Tp __e = __mu * __d; + _Tp __fact2 = (std::abs(__e) < __eps + ? _Tp(1) : std::sinh(__e) / __e); + _Tp __gam1, __gam2, __gampl, __gammi; + __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); + _Tp __ff = (_Tp(2) / __numeric_constants<_Tp>::__pi()) + * __fact * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); + __e = std::exp(__e); + _Tp __p = __e / (__numeric_constants<_Tp>::__pi() * __gampl); + _Tp __q = _Tp(1) / (__e * __numeric_constants<_Tp>::__pi() * __gammi); + const _Tp __pimu2 = __pimu / _Tp(2); + _Tp __fact3 = (std::abs(__pimu2) < __eps + ? _Tp(1) : std::sin(__pimu2) / __pimu2 ); + _Tp __r = __numeric_constants<_Tp>::__pi() * __pimu2 * __fact3 * __fact3; + _Tp __c = _Tp(1); + __d = -__x2 * __x2; + _Tp __sum = __ff + __r * __q; + _Tp __sum1 = __p; + for (__i = 1; __i <= __max_iter; ++__i) + { + __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); + __c *= __d / _Tp(__i); + __p /= _Tp(__i) - __mu; + __q /= _Tp(__i) + __mu; + const _Tp __del = __c * (__ff + __r * __q); + __sum += __del; + const _Tp __del1 = __c * __p - __i * __del; + __sum1 += __del1; + if ( std::abs(__del) < __eps * (_Tp(1) + std::abs(__sum)) ) + break; + } + if ( __i > __max_iter ) + std::__throw_runtime_error(("Bessel y series failed to converge " "in __bessel_jn.") + ); + __Nmu = -__sum; + __Nnu1 = -__sum1 * __xi2; + __Npmu = __mu * __xi * __Nmu - __Nnu1; + __Jmu = __w / (__Npmu - __f * __Nmu); + } + else + { + _Tp __a = _Tp(0.25L) - __mu2; + _Tp __q = _Tp(1); + _Tp __p = -__xi / _Tp(2); + _Tp __br = _Tp(2) * __x; + _Tp __bi = _Tp(2); + _Tp __fact = __a * __xi / (__p * __p + __q * __q); + _Tp __cr = __br + __q * __fact; + _Tp __ci = __bi + __p * __fact; + _Tp __den = __br * __br + __bi * __bi; + _Tp __dr = __br / __den; + _Tp __di = -__bi / __den; + _Tp __dlr = __cr * __dr - __ci * __di; + _Tp __dli = __cr * __di + __ci * __dr; + _Tp __temp = __p * __dlr - __q * __dli; + __q = __p * __dli + __q * __dlr; + __p = __temp; + int __i; + for (__i = 2; __i <= __max_iter; ++__i) + { + __a += _Tp(2 * (__i - 1)); + __bi += _Tp(2); + __dr = __a * __dr + __br; + __di = __a * __di + __bi; + if (std::abs(__dr) + std::abs(__di) < __fp_min) + __dr = __fp_min; + __fact = __a / (__cr * __cr + __ci * __ci); + __cr = __br + __cr * __fact; + __ci = __bi - __ci * __fact; + if (std::abs(__cr) + std::abs(__ci) < __fp_min) + __cr = __fp_min; + __den = __dr * __dr + __di * __di; + __dr /= __den; + __di /= -__den; + __dlr = __cr * __dr - __ci * __di; + __dli = __cr * __di + __ci * __dr; + __temp = __p * __dlr - __q * __dli; + __q = __p * __dli + __q * __dlr; + __p = __temp; + if (std::abs(__dlr - _Tp(1)) + std::abs(__dli) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Lentz's method failed " "in __bessel_jn.") + ); + const _Tp __gam = (__p - __f) / __q; + __Jmu = std::sqrt(__w / ((__p - __f) * __gam + __q)); + + __Jmu = ::std::copysign(__Jmu, __Jnul); + + + + + __Nmu = __gam * __Jmu; + __Npmu = (__p + __q / __gam) * __Nmu; + __Nnu1 = __mu * __xi * __Nmu - __Npmu; + } + __fact = __Jmu / __Jnul; + __Jnu = __fact * __Jnul1; + __Jpnu = __fact * __Jpnu1; + for (__i = 1; __i <= __nl; ++__i) + { + const _Tp __Nnutemp = (__mu + __i) * __xi2 * __Nnu1 - __Nmu; + __Nmu = __Nnu1; + __Nnu1 = __Nnutemp; + } + __Nnu = __Nmu; + __Npnu = __nu * __xi * __Nmu - __Nnu1; + + return; + } +# 361 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __cyl_bessel_jn_asymp(_Tp __nu, _Tp __x, _Tp & __Jnu, _Tp & __Nnu) + { + const _Tp __mu = _Tp(4) * __nu * __nu; + const _Tp __8x = _Tp(8) * __x; + + _Tp __P = _Tp(0); + _Tp __Q = _Tp(0); + + _Tp __k = _Tp(0); + _Tp __term = _Tp(1); + + int __epsP = 0; + int __epsQ = 0; + + _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + do + { + __term *= (__k == 0 + ? _Tp(1) + : -(__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x)); + + __epsP = std::abs(__term) < __eps * std::abs(__P); + __P += __term; + + __k++; + + __term *= (__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x); + __epsQ = std::abs(__term) < __eps * std::abs(__Q); + __Q += __term; + + if (__epsP && __epsQ && __k > (__nu / 2.)) + break; + + __k++; + } + while (__k < 1000); + + const _Tp __chi = __x - (__nu + _Tp(0.5L)) + * __numeric_constants<_Tp>::__pi_2(); + + const _Tp __c = std::cos(__chi); + const _Tp __s = std::sin(__chi); + + const _Tp __coef = std::sqrt(_Tp(2) + / (__numeric_constants<_Tp>::__pi() * __x)); + + __Jnu = __coef * (__c * __P - __s * __Q); + __Nnu = __coef * (__s * __P + __c * __Q); + + return; + } +# 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_bessel_ij_series(_Tp __nu, _Tp __x, _Tp __sgn, + unsigned int __max_iter) + { + if (__x == _Tp(0)) + return __nu == _Tp(0) ? _Tp(1) : _Tp(0); + + const _Tp __x2 = __x / _Tp(2); + _Tp __fact = __nu * std::log(__x2); + + __fact -= ::std::lgamma(__nu + _Tp(1)); + + + + __fact = std::exp(__fact); + const _Tp __xx4 = __sgn * __x2 * __x2; + _Tp __Jn = _Tp(1); + _Tp __term = _Tp(1); + + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= __xx4 / (_Tp(__i) * (__nu + _Tp(__i))); + __Jn += __term; + if (std::abs(__term / __Jn) < std::numeric_limits<_Tp>::epsilon()) + break; + } + + return __fact * __Jn; + } +# 490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_bessel_j(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_j.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) + return __cyl_bessel_ij_series(__nu, __x, -_Tp(1), 200); + else if (__x > _Tp(1000)) + { + _Tp __J_nu, __N_nu; + __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); + return __J_nu; + } + else + { + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + return __J_nu; + } + } +# 532 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_neumann_n(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_neumann_n.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x > _Tp(1000)) + { + _Tp __J_nu, __N_nu; + __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); + return __N_nu; + } + else + { + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + return __N_nu; + } + } +# 569 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __sph_bessel_jn(unsigned int __n, _Tp __x, + _Tp & __j_n, _Tp & __n_n, _Tp & __jp_n, _Tp & __np_n) + { + const _Tp __nu = _Tp(__n) + _Tp(0.5L); + + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + + const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() + / std::sqrt(__x); + + __j_n = __factor * __J_nu; + __n_n = __factor * __N_nu; + __jp_n = __factor * __Jp_nu - __j_n / (_Tp(2) * __x); + __np_n = __factor * __Np_nu - __n_n / (_Tp(2) * __x); + + return; + } +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __sph_bessel(unsigned int __n, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __sph_bessel.") + ); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == _Tp(0)) + { + if (__n == 0) + return _Tp(1); + else + return _Tp(0); + } + else + { + _Tp __j_n, __n_n, __jp_n, __np_n; + __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); + return __j_n; + } + } +# 642 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __sph_neumann(unsigned int __n, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __sph_neumann.") + ); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == _Tp(0)) + return -std::numeric_limits<_Tp>::infinity(); + else + { + _Tp __j_n, __n_n, __jp_n, __np_n; + __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); + return __n_n; + } + } + } + + + + + + +} +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + namespace __detail + { +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_gamma(_Tp __x, _Tp __y) + { + + _Tp __bet; + + if (__x > __y) + { + __bet = ::std::tgamma(__x) + / ::std::tgamma(__x + __y); + __bet *= ::std::tgamma(__y); + } + else + { + __bet = ::std::tgamma(__y) + / ::std::tgamma(__x + __y); + __bet *= ::std::tgamma(__x); + } +# 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + return __bet; + } +# 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_lgamma(_Tp __x, _Tp __y) + { + + _Tp __bet = ::std::lgamma(__x) + + ::std::lgamma(__y) + - ::std::lgamma(__x + __y); + + + + + + __bet = std::exp(__bet); + return __bet; + } +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_product(_Tp __x, _Tp __y) + { + + _Tp __bet = (__x + __y) / (__x * __y); + + unsigned int __max_iter = 1000000; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + _Tp __term = (_Tp(1) + (__x + __y) / __k) + / ((_Tp(1) + __x / __k) * (_Tp(1) + __y / __k)); + __bet *= __term; + } + + return __bet; + } +# 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + inline _Tp + __beta(_Tp __x, _Tp __y) + { + if (__isnan(__x) || __isnan(__y)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __beta_lgamma(__x, __y); + } + } + + + + + + +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 1 3 +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + namespace __detail + { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rf(_Tp __x, _Tp __y, _Tp __z) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = _Tp(5) * __min; + + if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rf.") + ); + else if (__x + __y < __lolim || __x + __z < __lolim + || __y + __z < __lolim) + std::__throw_domain_error(("Argument too small in __ellint_rf")); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(1) / _Tp(24); + const _Tp __c2 = _Tp(1) / _Tp(10); + const _Tp __c3 = _Tp(3) / _Tp(44); + const _Tp __c4 = _Tp(1) / _Tp(14); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps, _Tp(1) / _Tp(6)); + _Tp __mu; + _Tp __xndev, __yndev, __zndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + __zn) / _Tp(3); + __xndev = 2 - (__mu + __xn) / __mu; + __yndev = 2 - (__mu + __yn) / __mu; + __zndev = 2 - (__mu + __zn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + if (__epsilon < __errtol) + break; + const _Tp __xnroot = std::sqrt(__xn); + const _Tp __ynroot = std::sqrt(__yn); + const _Tp __znroot = std::sqrt(__zn); + const _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + } + + const _Tp __e2 = __xndev * __yndev - __zndev * __zndev; + const _Tp __e3 = __xndev * __yndev * __zndev; + const _Tp __s = _Tp(1) + (__c1 * __e2 - __c2 - __c3 * __e3) * __e2 + + __c4 * __e3; + + return __s / std::sqrt(__mu); + } + } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_1_series(_Tp __k) + { + + const _Tp __kk = __k * __k; + + _Tp __term = __kk / _Tp(4); + _Tp __sum = _Tp(1) + __term; + + const unsigned int __max_iter = 1000; + for (unsigned int __i = 2; __i < __max_iter; ++__i) + { + __term *= (2 * __i - 1) * __kk / (2 * __i); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return __numeric_constants<_Tp>::__pi_2() * __sum; + } +# 191 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_1(_Tp __k) + { + + if (__isnan(__k)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) >= _Tp(1)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __ellint_rf(_Tp(0), _Tp(1) - __k * __k, _Tp(1)); + } +# 219 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_1(_Tp __k, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_1.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __s = std::sin(__phi_red); + const _Tp __c = std::cos(__phi_red); + + const _Tp __F = __s + * __ellint_rf(__c * __c, + _Tp(1) - __k * __k * __s * __s, _Tp(1)); + + if (__n == 0) + return __F; + else + return __F + _Tp(2) * __n * __comp_ellint_1(__k); + } + } +# 266 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_2_series(_Tp __k) + { + + const _Tp __kk = __k * __k; + + _Tp __term = __kk; + _Tp __sum = __term; + + const unsigned int __max_iter = 1000; + for (unsigned int __i = 2; __i < __max_iter; ++__i) + { + const _Tp __i2m = 2 * __i - 1; + const _Tp __i2 = 2 * __i; + __term *= __i2m * __i2m * __kk / (__i2 * __i2); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term / __i2m; + } + + return __numeric_constants<_Tp>::__pi_2() * (_Tp(1) - __sum); + } +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rd(_Tp __x, _Tp __y, _Tp __z) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); + const _Tp __max = std::numeric_limits<_Tp>::max(); + const _Tp __lolim = _Tp(2) / std::pow(__max, _Tp(2) / _Tp(3)); + + if (__x < _Tp(0) || __y < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rd.") + ); + else if (__x + __y < __lolim || __z < __lolim) + std::__throw_domain_error(("Argument too small " "in __ellint_rd.") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(3) / _Tp(14); + const _Tp __c2 = _Tp(1) / _Tp(6); + const _Tp __c3 = _Tp(9) / _Tp(22); + const _Tp __c4 = _Tp(3) / _Tp(26); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + _Tp __sigma = _Tp(0); + _Tp __power4 = _Tp(1); + + _Tp __mu; + _Tp __xndev, __yndev, __zndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + _Tp(3) * __zn) / _Tp(5); + __xndev = (__mu - __xn) / __mu; + __yndev = (__mu - __yn) / __mu; + __zndev = (__mu - __zn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + if (__epsilon < __errtol) + break; + _Tp __xnroot = std::sqrt(__xn); + _Tp __ynroot = std::sqrt(__yn); + _Tp __znroot = std::sqrt(__zn); + _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + __sigma += __power4 / (__znroot * (__zn + __lambda)); + __power4 *= __c0; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + } + + _Tp __ea = __xndev * __yndev; + _Tp __eb = __zndev * __zndev; + _Tp __ec = __ea - __eb; + _Tp __ed = __ea - _Tp(6) * __eb; + _Tp __ef = __ed + __ec + __ec; + _Tp __s1 = __ed * (-__c1 + __c3 * __ed + / _Tp(3) - _Tp(3) * __c4 * __zndev * __ef + / _Tp(2)); + _Tp __s2 = __zndev + * (__c2 * __ef + + __zndev * (-__c3 * __ec - __zndev * __c4 - __ea)); + + return _Tp(3) * __sigma + __power4 * (_Tp(1) + __s1 + __s2) + / (__mu * std::sqrt(__mu)); + } + } +# 399 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_2(_Tp __k) + { + + if (__isnan(__k)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) == 1) + return _Tp(1); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __comp_ellint_2.")); + else + { + const _Tp __kk = __k * __k; + + return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) + - __kk * __ellint_rd(_Tp(0), _Tp(1) - __kk, _Tp(1)) / _Tp(3); + } + } +# 433 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_2(_Tp __k, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_2.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __kk = __k * __k; + const _Tp __s = std::sin(__phi_red); + const _Tp __ss = __s * __s; + const _Tp __sss = __ss * __s; + const _Tp __c = std::cos(__phi_red); + const _Tp __cc = __c * __c; + + const _Tp __E = __s + * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + - __kk * __sss + * __ellint_rd(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + / _Tp(3); + + if (__n == 0) + return __E; + else + return __E + _Tp(2) * __n * __comp_ellint_2(__k); + } + } +# 492 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rc(_Tp __x, _Tp __y) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = _Tp(5) * __min; + + if (__x < _Tp(0) || __y < _Tp(0) || __x + __y < __lolim) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rc.") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(1) / _Tp(7); + const _Tp __c2 = _Tp(9) / _Tp(22); + const _Tp __c3 = _Tp(3) / _Tp(10); + const _Tp __c4 = _Tp(3) / _Tp(8); + + _Tp __xn = __x; + _Tp __yn = __y; + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(30), _Tp(1) / _Tp(6)); + _Tp __mu; + _Tp __sn; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + _Tp(2) * __yn) / _Tp(3); + __sn = (__yn + __mu) / __mu - _Tp(2); + if (std::abs(__sn) < __errtol) + break; + const _Tp __lambda = _Tp(2) * std::sqrt(__xn) * std::sqrt(__yn) + + __yn; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + } + + _Tp __s = __sn * __sn + * (__c3 + __sn*(__c1 + __sn * (__c4 + __sn * __c2))); + + return (_Tp(1) + __s) / std::sqrt(__mu); + } + } +# 561 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rj(_Tp __x, _Tp __y, _Tp __z, _Tp __p) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = std::pow(_Tp(5) * __min, _Tp(1)/_Tp(3)); + + if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rj.") + ); + else if (__x + __y < __lolim || __x + __z < __lolim + || __y + __z < __lolim || __p < __lolim) + std::__throw_domain_error(("Argument too small " "in __ellint_rj") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(3) / _Tp(14); + const _Tp __c2 = _Tp(1) / _Tp(3); + const _Tp __c3 = _Tp(3) / _Tp(22); + const _Tp __c4 = _Tp(3) / _Tp(26); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + _Tp __pn = __p; + _Tp __sigma = _Tp(0); + _Tp __power4 = _Tp(1); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); + + _Tp __mu; + _Tp __xndev, __yndev, __zndev, __pndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + __zn + _Tp(2) * __pn) / _Tp(5); + __xndev = (__mu - __xn) / __mu; + __yndev = (__mu - __yn) / __mu; + __zndev = (__mu - __zn) / __mu; + __pndev = (__mu - __pn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + __epsilon = std::max(__epsilon, std::abs(__pndev)); + if (__epsilon < __errtol) + break; + const _Tp __xnroot = std::sqrt(__xn); + const _Tp __ynroot = std::sqrt(__yn); + const _Tp __znroot = std::sqrt(__zn); + const _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + const _Tp __alpha1 = __pn * (__xnroot + __ynroot + __znroot) + + __xnroot * __ynroot * __znroot; + const _Tp __alpha2 = __alpha1 * __alpha1; + const _Tp __beta = __pn * (__pn + __lambda) + * (__pn + __lambda); + __sigma += __power4 * __ellint_rc(__alpha2, __beta); + __power4 *= __c0; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + __pn = __c0 * (__pn + __lambda); + } + + _Tp __ea = __xndev * (__yndev + __zndev) + __yndev * __zndev; + _Tp __eb = __xndev * __yndev * __zndev; + _Tp __ec = __pndev * __pndev; + _Tp __e2 = __ea - _Tp(3) * __ec; + _Tp __e3 = __eb + _Tp(2) * __pndev * (__ea - __ec); + _Tp __s1 = _Tp(1) + __e2 * (-__c1 + _Tp(3) * __c3 * __e2 / _Tp(4) + - _Tp(3) * __c4 * __e3 / _Tp(2)); + _Tp __s2 = __eb * (__c2 / _Tp(2) + + __pndev * (-__c3 - __c3 + __pndev * __c4)); + _Tp __s3 = __pndev * __ea * (__c2 - __pndev * __c3) + - __c2 * __pndev * __ec; + + return _Tp(3) * __sigma + __power4 * (__s1 + __s2 + __s3) + / (__mu * std::sqrt(__mu)); + } + } +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_3(_Tp __k, _Tp __nu) + { + + if (__isnan(__k) || __isnan(__nu)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__nu == _Tp(1)) + return std::numeric_limits<_Tp>::infinity(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __comp_ellint_3.")); + else + { + const _Tp __kk = __k * __k; + + return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) + + __nu + * __ellint_rj(_Tp(0), _Tp(1) - __kk, _Tp(1), _Tp(1) - __nu) + / _Tp(3); + } + } +# 701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_3(_Tp __k, _Tp __nu, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__nu) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_3.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __kk = __k * __k; + const _Tp __s = std::sin(__phi_red); + const _Tp __ss = __s * __s; + const _Tp __sss = __ss * __s; + const _Tp __c = std::cos(__phi_red); + const _Tp __cc = __c * __c; + + const _Tp __Pi = __s + * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + + __nu * __sss + * __ellint_rj(__cc, _Tp(1) - __kk * __ss, _Tp(1), + _Tp(1) - __nu * __ss) / _Tp(3); + + if (__n == 0) + return __Pi; + else + return __Pi + _Tp(2) * __n * __comp_ellint_3(__k, __nu); + } + } + } + + + + + +} +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 1 3 +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + namespace __detail + { + template _Tp __expint_E1(_Tp); +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1_series(_Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + _Tp __term = _Tp(1); + _Tp __esum = _Tp(0); + _Tp __osum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= - __x / __i; + if (std::abs(__term) < __eps) + break; + if (__term >= _Tp(0)) + __esum += __term / __i; + else + __osum += __term / __i; + } + + return - __esum - __osum + - __numeric_constants<_Tp>::__gamma_e() - std::log(__x); + } +# 118 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1_asymp(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __esum = _Tp(1); + _Tp __osum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + _Tp __prev = __term; + __term *= - __i / __x; + if (std::abs(__term) > std::abs(__prev)) + break; + if (__term >= _Tp(0)) + __esum += __term; + else + __osum += __term; + } + + return std::exp(- __x) * (__esum + __osum) / __x; + } +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_series(unsigned int __n, _Tp __x) + { + const unsigned int __max_iter = 1000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const int __nm1 = __n - 1; + _Tp __ans = (__nm1 != 0 + ? _Tp(1) / __nm1 : -std::log(__x) + - __numeric_constants<_Tp>::__gamma_e()); + _Tp __fact = _Tp(1); + for (int __i = 1; __i <= __max_iter; ++__i) + { + __fact *= -__x / _Tp(__i); + _Tp __del; + if ( __i != __nm1 ) + __del = -__fact / _Tp(__i - __nm1); + else + { + _Tp __psi = -__numeric_constants<_Tp>::gamma_e(); + for (int __ii = 1; __ii <= __nm1; ++__ii) + __psi += _Tp(1) / _Tp(__ii); + __del = __fact * (__psi - std::log(__x)); + } + __ans += __del; + if (std::abs(__del) < __eps * std::abs(__ans)) + return __ans; + } + std::__throw_runtime_error(("Series summation failed " "in __expint_En_series.") + ); + } +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_cont_frac(unsigned int __n, _Tp __x) + { + const unsigned int __max_iter = 1000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __fp_min = std::numeric_limits<_Tp>::min(); + const int __nm1 = __n - 1; + _Tp __b = __x + _Tp(__n); + _Tp __c = _Tp(1) / __fp_min; + _Tp __d = _Tp(1) / __b; + _Tp __h = __d; + for ( unsigned int __i = 1; __i <= __max_iter; ++__i ) + { + _Tp __a = -_Tp(__i * (__nm1 + __i)); + __b += _Tp(2); + __d = _Tp(1) / (__a * __d + __b); + __c = __b + __a / __c; + const _Tp __del = __c * __d; + __h *= __del; + if (std::abs(__del - _Tp(1)) < __eps) + { + const _Tp __ans = __h * std::exp(-__x); + return __ans; + } + } + std::__throw_runtime_error(("Continued fraction failed " "in __expint_En_cont_frac.") + ); + } +# 246 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_recursion(unsigned int __n, _Tp __x) + { + _Tp __En; + _Tp __E1 = __expint_E1(__x); + if (__x < _Tp(__n)) + { + + __En = __E1; + for (unsigned int __j = 2; __j < __n; ++__j) + __En = (std::exp(-__x) - __x * __En) / _Tp(__j - 1); + } + else + { + + __En = _Tp(1); + const int __N = __n + 20; + _Tp __save = _Tp(0); + for (int __j = __N; __j > 0; --__j) + { + __En = (std::exp(-__x) - __j * __En) / __x; + if (__j == __n) + __save = __En; + } + _Tp __norm = __En / __E1; + __En /= __norm; + } + + return __En; + } +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei_series(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= __x / __i; + __sum += __term / __i; + if (__term < std::numeric_limits<_Tp>::epsilon() * __sum) + break; + } + + return __numeric_constants<_Tp>::__gamma_e() + __sum + std::log(__x); + } +# 321 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei_asymp(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + _Tp __prev = __term; + __term *= __i / __x; + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + if (__term >= __prev) + break; + __sum += __term; + } + + return std::exp(__x) * __sum / __x; + } +# 354 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei(_Tp __x) + { + if (__x < _Tp(0)) + return -__expint_E1(-__x); + else if (__x < -std::log(std::numeric_limits<_Tp>::epsilon())) + return __expint_Ei_series(__x); + else + return __expint_Ei_asymp(__x); + } +# 378 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1(_Tp __x) + { + if (__x < _Tp(0)) + return -__expint_Ei(-__x); + else if (__x < _Tp(1)) + return __expint_E1_series(__x); + else if (__x < _Tp(100)) + return __expint_En_cont_frac(1, __x); + else + return __expint_E1_asymp(__x); + } +# 408 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_asymp(unsigned int __n, _Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + for (unsigned int __i = 1; __i <= __n; ++__i) + { + _Tp __prev = __term; + __term *= -(__n - __i + 1) / __x; + if (std::abs(__term) > std::abs(__prev)) + break; + __sum += __term; + } + + return std::exp(-__x) * __sum / __x; + } +# 442 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_large_n(unsigned int __n, _Tp __x) + { + const _Tp __xpn = __x + __n; + const _Tp __xpn2 = __xpn * __xpn; + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + for (unsigned int __i = 1; __i <= __n; ++__i) + { + _Tp __prev = __term; + __term *= (__n - 2 * (__i - 1) * __x) / __xpn2; + if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return std::exp(-__x) * __sum / __xpn; + } +# 476 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint(unsigned int __n, _Tp __x) + { + + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__n <= 1 && __x == _Tp(0)) + return std::numeric_limits<_Tp>::infinity(); + else + { + _Tp __E0 = std::exp(__x) / __x; + if (__n == 0) + return __E0; + + _Tp __E1 = __expint_E1(__x); + if (__n == 1) + return __E1; + + if (__x == _Tp(0)) + return _Tp(1) / static_cast<_Tp>(__n - 1); + + _Tp __En = __expint_En_recursion(__n, __x); + + return __En; + } + } +# 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + inline _Tp + __expint(_Tp __x) + { + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __expint_Ei(__x); + } + } + + + + + +} +# 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 1 3 +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + namespace __detail + { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg_series(_Tp __a, _Tp __c, _Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + _Tp __term = _Tp(1); + _Tp __Fac = _Tp(1); + const unsigned int __max_iter = 100000; + unsigned int __i; + for (__i = 0; __i < __max_iter; ++__i) + { + __term *= (__a + _Tp(__i)) * __x + / ((__c + _Tp(__i)) * _Tp(1 + __i)); + if (std::abs(__term) < __eps) + { + break; + } + __Fac += __term; + } + if (__i == __max_iter) + std::__throw_runtime_error(("Series failed to converge " "in __conf_hyperg_series.") + ); + + return __Fac; + } +# 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg_luke(_Tp __a, _Tp __c, _Tp __xin) + { + const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); + const int __nmax = 20000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __x = -__xin; + const _Tp __x3 = __x * __x * __x; + const _Tp __t0 = __a / __c; + const _Tp __t1 = (__a + _Tp(1)) / (_Tp(2) * __c); + const _Tp __t2 = (__a + _Tp(2)) / (_Tp(2) * (__c + _Tp(1))); + _Tp __F = _Tp(1); + _Tp __prec; + + _Tp __Bnm3 = _Tp(1); + _Tp __Bnm2 = _Tp(1) + __t1 * __x; + _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); + + _Tp __Anm3 = _Tp(1); + _Tp __Anm2 = __Bnm2 - __t0 * __x; + _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x + + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; + + int __n = 3; + while(1) + { + _Tp __npam1 = _Tp(__n - 1) + __a; + _Tp __npcm1 = _Tp(__n - 1) + __c; + _Tp __npam2 = _Tp(__n - 2) + __a; + _Tp __npcm2 = _Tp(__n - 2) + __c; + _Tp __tnm1 = _Tp(2 * __n - 1); + _Tp __tnm3 = _Tp(2 * __n - 3); + _Tp __tnm5 = _Tp(2 * __n - 5); + _Tp __F1 = (_Tp(__n - 2) - __a) / (_Tp(2) * __tnm3 * __npcm1); + _Tp __F2 = (_Tp(__n) + __a) * __npam1 + / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); + _Tp __F3 = -__npam2 * __npam1 * (_Tp(__n - 2) - __a) + / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 + * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); + _Tp __E = -__npam1 * (_Tp(__n - 1) - __c) + / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); + + _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 + + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; + _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 + + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; + _Tp __r = __An / __Bn; + + __prec = std::abs((__F - __r) / __F); + __F = __r; + + if (__prec < __eps || __n > __nmax) + break; + + if (std::abs(__An) > __big || std::abs(__Bn) > __big) + { + __An /= __big; + __Bn /= __big; + __Anm1 /= __big; + __Bnm1 /= __big; + __Anm2 /= __big; + __Bnm2 /= __big; + __Anm3 /= __big; + __Bnm3 /= __big; + } + else if (std::abs(__An) < _Tp(1) / __big + || std::abs(__Bn) < _Tp(1) / __big) + { + __An *= __big; + __Bn *= __big; + __Anm1 *= __big; + __Bnm1 *= __big; + __Anm2 *= __big; + __Bnm2 *= __big; + __Anm3 *= __big; + __Bnm3 *= __big; + } + + ++__n; + __Bnm3 = __Bnm2; + __Bnm2 = __Bnm1; + __Bnm1 = __Bn; + __Anm3 = __Anm2; + __Anm2 = __Anm1; + __Anm1 = __An; + } + + if (__n >= __nmax) + std::__throw_runtime_error(("Iteration failed to converge " "in __conf_hyperg_luke.") + ); + + return __F; + } +# 227 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg(_Tp __a, _Tp __c, _Tp __x) + { + + const _Tp __c_nint = ::std::nearbyint(__c); + + + + if (__isnan(__a) || __isnan(__c) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__c_nint == __c && __c_nint <= 0) + return std::numeric_limits<_Tp>::infinity(); + else if (__a == _Tp(0)) + return _Tp(1); + else if (__c == __a) + return std::exp(__x); + else if (__x < _Tp(0)) + return __conf_hyperg_luke(__a, __c, __x); + else + return __conf_hyperg_series(__a, __c, __x); + } +# 271 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg_series(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + _Tp __term = _Tp(1); + _Tp __Fabc = _Tp(1); + const unsigned int __max_iter = 100000; + unsigned int __i; + for (__i = 0; __i < __max_iter; ++__i) + { + __term *= (__a + _Tp(__i)) * (__b + _Tp(__i)) * __x + / ((__c + _Tp(__i)) * _Tp(1 + __i)); + if (std::abs(__term) < __eps) + { + break; + } + __Fabc += __term; + } + if (__i == __max_iter) + std::__throw_runtime_error(("Series failed to converge " "in __hyperg_series.") + ); + + return __Fabc; + } + + + + + + + + template + _Tp + __hyperg_luke(_Tp __a, _Tp __b, _Tp __c, _Tp __xin) + { + const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); + const int __nmax = 20000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __x = -__xin; + const _Tp __x3 = __x * __x * __x; + const _Tp __t0 = __a * __b / __c; + const _Tp __t1 = (__a + _Tp(1)) * (__b + _Tp(1)) / (_Tp(2) * __c); + const _Tp __t2 = (__a + _Tp(2)) * (__b + _Tp(2)) + / (_Tp(2) * (__c + _Tp(1))); + + _Tp __F = _Tp(1); + + _Tp __Bnm3 = _Tp(1); + _Tp __Bnm2 = _Tp(1) + __t1 * __x; + _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); + + _Tp __Anm3 = _Tp(1); + _Tp __Anm2 = __Bnm2 - __t0 * __x; + _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x + + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; + + int __n = 3; + while (1) + { + const _Tp __npam1 = _Tp(__n - 1) + __a; + const _Tp __npbm1 = _Tp(__n - 1) + __b; + const _Tp __npcm1 = _Tp(__n - 1) + __c; + const _Tp __npam2 = _Tp(__n - 2) + __a; + const _Tp __npbm2 = _Tp(__n - 2) + __b; + const _Tp __npcm2 = _Tp(__n - 2) + __c; + const _Tp __tnm1 = _Tp(2 * __n - 1); + const _Tp __tnm3 = _Tp(2 * __n - 3); + const _Tp __tnm5 = _Tp(2 * __n - 5); + const _Tp __n2 = __n * __n; + const _Tp __F1 = (_Tp(3) * __n2 + (__a + __b - _Tp(6)) * __n + + _Tp(2) - __a * __b - _Tp(2) * (__a + __b)) + / (_Tp(2) * __tnm3 * __npcm1); + const _Tp __F2 = -(_Tp(3) * __n2 - (__a + __b + _Tp(6)) * __n + + _Tp(2) - __a * __b) * __npam1 * __npbm1 + / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); + const _Tp __F3 = (__npam2 * __npam1 * __npbm2 * __npbm1 + * (_Tp(__n - 2) - __a) * (_Tp(__n - 2) - __b)) + / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 + * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); + const _Tp __E = -__npam1 * __npbm1 * (_Tp(__n - 1) - __c) + / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); + + _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 + + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; + _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 + + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; + const _Tp __r = __An / __Bn; + + const _Tp __prec = std::abs((__F - __r) / __F); + __F = __r; + + if (__prec < __eps || __n > __nmax) + break; + + if (std::abs(__An) > __big || std::abs(__Bn) > __big) + { + __An /= __big; + __Bn /= __big; + __Anm1 /= __big; + __Bnm1 /= __big; + __Anm2 /= __big; + __Bnm2 /= __big; + __Anm3 /= __big; + __Bnm3 /= __big; + } + else if (std::abs(__An) < _Tp(1) / __big + || std::abs(__Bn) < _Tp(1) / __big) + { + __An *= __big; + __Bn *= __big; + __Anm1 *= __big; + __Bnm1 *= __big; + __Anm2 *= __big; + __Bnm2 *= __big; + __Anm3 *= __big; + __Bnm3 *= __big; + } + + ++__n; + __Bnm3 = __Bnm2; + __Bnm2 = __Bnm1; + __Bnm1 = __Bn; + __Anm3 = __Anm2; + __Anm2 = __Anm1; + __Anm1 = __An; + } + + if (__n >= __nmax) + std::__throw_runtime_error(("Iteration failed to converge " "in __hyperg_luke.") + ); + + return __F; + } +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg_reflect(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + const _Tp __d = __c - __a - __b; + const int __intd = std::floor(__d + _Tp(0.5L)); + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __toler = _Tp(1000) * __eps; + const _Tp __log_max = std::log(std::numeric_limits<_Tp>::max()); + const bool __d_integer = (std::abs(__d - __intd) < __toler); + + if (__d_integer) + { + const _Tp __ln_omx = std::log(_Tp(1) - __x); + const _Tp __ad = std::abs(__d); + _Tp __F1, __F2; + + _Tp __d1, __d2; + if (__d >= _Tp(0)) + { + __d1 = __d; + __d2 = _Tp(0); + } + else + { + __d1 = _Tp(0); + __d2 = __d; + } + + const _Tp __lng_c = __log_gamma(__c); + + + if (__ad < __eps) + { + + __F1 = _Tp(0); + } + else + { + + bool __ok_d1 = true; + _Tp __lng_ad, __lng_ad1, __lng_bd1; + try + { + __lng_ad = __log_gamma(__ad); + __lng_ad1 = __log_gamma(__a + __d1); + __lng_bd1 = __log_gamma(__b + __d1); + } + catch(...) + { + __ok_d1 = false; + } + + if (__ok_d1) + { + + + + _Tp __sum1 = _Tp(1); + _Tp __term = _Tp(1); + _Tp __ln_pre1 = __lng_ad + __lng_c + __d2 * __ln_omx + - __lng_ad1 - __lng_bd1; + + + + for (int __i = 1; __i < __ad; ++__i) + { + const int __j = __i - 1; + __term *= (__a + __d2 + __j) * (__b + __d2 + __j) + / (_Tp(1) + __d2 + __j) / __i * (_Tp(1) - __x); + __sum1 += __term; + } + + if (__ln_pre1 > __log_max) + std::__throw_runtime_error(("Overflow of gamma functions" " in __hyperg_luke.") + ); + else + __F1 = std::exp(__ln_pre1) * __sum1; + } + else + { + + + __F1 = _Tp(0); + } + } + + + bool __ok_d2 = true; + _Tp __lng_ad2, __lng_bd2; + try + { + __lng_ad2 = __log_gamma(__a + __d2); + __lng_bd2 = __log_gamma(__b + __d2); + } + catch(...) + { + __ok_d2 = false; + } + + if (__ok_d2) + { + + + const int __maxiter = 2000; + const _Tp __psi_1 = -__numeric_constants<_Tp>::__gamma_e(); + const _Tp __psi_1pd = __psi(_Tp(1) + __ad); + const _Tp __psi_apd1 = __psi(__a + __d1); + const _Tp __psi_bpd1 = __psi(__b + __d1); + + _Tp __psi_term = __psi_1 + __psi_1pd - __psi_apd1 + - __psi_bpd1 - __ln_omx; + _Tp __fact = _Tp(1); + _Tp __sum2 = __psi_term; + _Tp __ln_pre2 = __lng_c + __d1 * __ln_omx + - __lng_ad2 - __lng_bd2; + + + int __j; + for (__j = 1; __j < __maxiter; ++__j) + { + + + const _Tp __term1 = _Tp(1) / _Tp(__j) + + _Tp(1) / (__ad + __j); + const _Tp __term2 = _Tp(1) / (__a + __d1 + _Tp(__j - 1)) + + _Tp(1) / (__b + __d1 + _Tp(__j - 1)); + __psi_term += __term1 - __term2; + __fact *= (__a + __d1 + _Tp(__j - 1)) + * (__b + __d1 + _Tp(__j - 1)) + / ((__ad + __j) * __j) * (_Tp(1) - __x); + const _Tp __delta = __fact * __psi_term; + __sum2 += __delta; + if (std::abs(__delta) < __eps * std::abs(__sum2)) + break; + } + if (__j == __maxiter) + std::__throw_runtime_error(("Sum F2 failed to converge " "in __hyperg_reflect") + ); + + if (__sum2 == _Tp(0)) + __F2 = _Tp(0); + else + __F2 = std::exp(__ln_pre2) * __sum2; + } + else + { + + + __F2 = _Tp(0); + } + + const _Tp __sgn_2 = (__intd % 2 == 1 ? -_Tp(1) : _Tp(1)); + const _Tp __F = __F1 + __sgn_2 * __F2; + + return __F; + } + else + { + + + + + bool __ok1 = true; + _Tp __sgn_g1ca = _Tp(0), __ln_g1ca = _Tp(0); + _Tp __sgn_g1cb = _Tp(0), __ln_g1cb = _Tp(0); + try + { + __sgn_g1ca = __log_gamma_sign(__c - __a); + __ln_g1ca = __log_gamma(__c - __a); + __sgn_g1cb = __log_gamma_sign(__c - __b); + __ln_g1cb = __log_gamma(__c - __b); + } + catch(...) + { + __ok1 = false; + } + + bool __ok2 = true; + _Tp __sgn_g2a = _Tp(0), __ln_g2a = _Tp(0); + _Tp __sgn_g2b = _Tp(0), __ln_g2b = _Tp(0); + try + { + __sgn_g2a = __log_gamma_sign(__a); + __ln_g2a = __log_gamma(__a); + __sgn_g2b = __log_gamma_sign(__b); + __ln_g2b = __log_gamma(__b); + } + catch(...) + { + __ok2 = false; + } + + const _Tp __sgn_gc = __log_gamma_sign(__c); + const _Tp __ln_gc = __log_gamma(__c); + const _Tp __sgn_gd = __log_gamma_sign(__d); + const _Tp __ln_gd = __log_gamma(__d); + const _Tp __sgn_gmd = __log_gamma_sign(-__d); + const _Tp __ln_gmd = __log_gamma(-__d); + + const _Tp __sgn1 = __sgn_gc * __sgn_gd * __sgn_g1ca * __sgn_g1cb; + const _Tp __sgn2 = __sgn_gc * __sgn_gmd * __sgn_g2a * __sgn_g2b; + + _Tp __pre1, __pre2; + if (__ok1 && __ok2) + { + _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; + _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b + + __d * std::log(_Tp(1) - __x); + if (__ln_pre1 < __log_max && __ln_pre2 < __log_max) + { + __pre1 = std::exp(__ln_pre1); + __pre2 = std::exp(__ln_pre2); + __pre1 *= __sgn1; + __pre2 *= __sgn2; + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else if (__ok1 && !__ok2) + { + _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; + if (__ln_pre1 < __log_max) + { + __pre1 = std::exp(__ln_pre1); + __pre1 *= __sgn1; + __pre2 = _Tp(0); + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else if (!__ok1 && __ok2) + { + _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b + + __d * std::log(_Tp(1) - __x); + if (__ln_pre2 < __log_max) + { + __pre1 = _Tp(0); + __pre2 = std::exp(__ln_pre2); + __pre2 *= __sgn2; + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else + { + __pre1 = _Tp(0); + __pre2 = _Tp(0); + std::__throw_runtime_error(("Underflow of gamma functions " "in __hyperg_reflect") + ); + } + + const _Tp __F1 = __hyperg_series(__a, __b, _Tp(1) - __d, + _Tp(1) - __x); + const _Tp __F2 = __hyperg_series(__c - __a, __c - __b, _Tp(1) + __d, + _Tp(1) - __x); + + const _Tp __F = __pre1 * __F1 + __pre2 * __F2; + + return __F; + } + } +# 728 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + + const _Tp __a_nint = ::std::nearbyint(__a); + const _Tp __b_nint = ::std::nearbyint(__b); + const _Tp __c_nint = ::std::nearbyint(__c); + + + + + + const _Tp __toler = _Tp(1000) * std::numeric_limits<_Tp>::epsilon(); + if (std::abs(__x) >= _Tp(1)) + std::__throw_domain_error(("Argument outside unit circle " "in __hyperg.") + ); + else if (__isnan(__a) || __isnan(__b) + || __isnan(__c) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__c_nint == __c && __c_nint <= _Tp(0)) + return std::numeric_limits<_Tp>::infinity(); + else if (std::abs(__c - __b) < __toler || std::abs(__c - __a) < __toler) + return std::pow(_Tp(1) - __x, __c - __a - __b); + else if (__a >= _Tp(0) && __b >= _Tp(0) && __c >= _Tp(0) + && __x >= _Tp(0) && __x < _Tp(0.995L)) + return __hyperg_series(__a, __b, __c, __x); + else if (std::abs(__a) < _Tp(10) && std::abs(__b) < _Tp(10)) + { + + + if (__a < _Tp(0) && std::abs(__a - __a_nint) < __toler) + return __hyperg_series(__a_nint, __b, __c, __x); + else if (__b < _Tp(0) && std::abs(__b - __b_nint) < __toler) + return __hyperg_series(__a, __b_nint, __c, __x); + else if (__x < -_Tp(0.25L)) + return __hyperg_luke(__a, __b, __c, __x); + else if (__x < _Tp(0.5L)) + return __hyperg_series(__a, __b, __c, __x); + else + if (std::abs(__c) > _Tp(10)) + return __hyperg_series(__a, __b, __c, __x); + else + return __hyperg_reflect(__a, __b, __c, __x); + } + else + return __hyperg_luke(__a, __b, __c, __x); + } + } + + + + + + +} +# 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + namespace __detail + { +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __poly_legendre_p(unsigned int __l, _Tp __x) + { + + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == +_Tp(1)) + return +_Tp(1); + else if (__x == -_Tp(1)) + return (__l % 2 == 1 ? -_Tp(1) : +_Tp(1)); + else + { + _Tp __p_lm2 = _Tp(1); + if (__l == 0) + return __p_lm2; + + _Tp __p_lm1 = __x; + if (__l == 1) + return __p_lm1; + + _Tp __p_l = 0; + for (unsigned int __ll = 2; __ll <= __l; ++__ll) + { + + + __p_l = _Tp(2) * __x * __p_lm1 - __p_lm2 + - (__x * __p_lm1 - __p_lm2) / _Tp(__ll); + __p_lm2 = __p_lm1; + __p_lm1 = __p_l; + } + + return __p_l; + } + } +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __assoc_legendre_p(unsigned int __l, unsigned int __m, _Tp __x, + _Tp __phase = _Tp(+1)) + { + + if (__m > __l) + return _Tp(0); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__m == 0) + return __poly_legendre_p(__l, __x); + else + { + _Tp __p_mm = _Tp(1); + if (__m > 0) + { + + + _Tp __root = std::sqrt(_Tp(1) - __x) * std::sqrt(_Tp(1) + __x); + _Tp __fact = _Tp(1); + for (unsigned int __i = 1; __i <= __m; ++__i) + { + __p_mm *= __phase * __fact * __root; + __fact += _Tp(2); + } + } + if (__l == __m) + return __p_mm; + + _Tp __p_mp1m = _Tp(2 * __m + 1) * __x * __p_mm; + if (__l == __m + 1) + return __p_mp1m; + + _Tp __p_lm2m = __p_mm; + _Tp __P_lm1m = __p_mp1m; + _Tp __p_lm = _Tp(0); + for (unsigned int __j = __m + 2; __j <= __l; ++__j) + { + __p_lm = (_Tp(2 * __j - 1) * __x * __P_lm1m + - _Tp(__j + __m - 1) * __p_lm2m) / _Tp(__j - __m); + __p_lm2m = __P_lm1m; + __P_lm1m = __p_lm; + } + + return __p_lm; + } + } +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) + { + if (__isnan(__theta)) + return std::numeric_limits<_Tp>::quiet_NaN(); + + const _Tp __x = std::cos(__theta); + + if (__m > __l) + return _Tp(0); + else if (__m == 0) + { + _Tp __P = __poly_legendre_p(__l, __x); + _Tp __fact = std::sqrt(_Tp(2 * __l + 1) + / (_Tp(4) * __numeric_constants<_Tp>::__pi())); + __P *= __fact; + return __P; + } + else if (__x == _Tp(1) || __x == -_Tp(1)) + { + + return _Tp(0); + } + else + { + + + + + + const _Tp __sgn = ( __m % 2 == 1 ? -_Tp(1) : _Tp(1)); + const _Tp __y_mp1m_factor = __x * std::sqrt(_Tp(2 * __m + 3)); + + const _Tp __lncirc = ::std::log1p(-__x * __x); + + + + + + const _Tp __lnpoch = ::std::lgamma(_Tp(__m + _Tp(0.5L))) + - ::std::lgamma(_Tp(__m)); + + + + + const _Tp __lnpre_val = + -_Tp(0.25L) * __numeric_constants<_Tp>::__lnpi() + + _Tp(0.5L) * (__lnpoch + __m * __lncirc); + const _Tp __sr = std::sqrt((_Tp(2) + _Tp(1) / __m) + / (_Tp(4) * __numeric_constants<_Tp>::__pi())); + _Tp __y_mm = __sgn * __sr * std::exp(__lnpre_val); + _Tp __y_mp1m = __y_mp1m_factor * __y_mm; + + if (__l == __m) + return __y_mm; + else if (__l == __m + 1) + return __y_mp1m; + else + { + _Tp __y_lm = _Tp(0); + + + for (unsigned int __ll = __m + 2; __ll <= __l; ++__ll) + { + const _Tp __rat1 = _Tp(__ll - __m) / _Tp(__ll + __m); + const _Tp __rat2 = _Tp(__ll - __m - 1) / _Tp(__ll + __m - 1); + const _Tp __fact1 = std::sqrt(__rat1 * _Tp(2 * __ll + 1) + * _Tp(2 * __ll - 1)); + const _Tp __fact2 = std::sqrt(__rat1 * __rat2 * _Tp(2 * __ll + 1) + / _Tp(2 * __ll - 3)); + __y_lm = (__x * __y_mp1m * __fact1 + - (__ll + __m - 1) * __y_mm * __fact2) / _Tp(__ll - __m); + __y_mm = __y_mp1m; + __y_mp1m = __y_lm; + } + + return __y_lm; + } + } + } + } + + + + + + +} +# 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 1 3 +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + namespace __detail + { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __bessel_ik(_Tp __nu, _Tp __x, + _Tp & __Inu, _Tp & __Knu, _Tp & __Ipnu, _Tp & __Kpnu) + { + if (__x == _Tp(0)) + { + if (__nu == _Tp(0)) + { + __Inu = _Tp(1); + __Ipnu = _Tp(0); + } + else if (__nu == _Tp(1)) + { + __Inu = _Tp(0); + __Ipnu = _Tp(0.5L); + } + else + { + __Inu = _Tp(0); + __Ipnu = _Tp(0); + } + __Knu = std::numeric_limits<_Tp>::infinity(); + __Kpnu = -std::numeric_limits<_Tp>::infinity(); + return; + } + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __fp_min = _Tp(10) * std::numeric_limits<_Tp>::epsilon(); + const int __max_iter = 15000; + const _Tp __x_min = _Tp(2); + + const int __nl = static_cast(__nu + _Tp(0.5L)); + + const _Tp __mu = __nu - __nl; + const _Tp __mu2 = __mu * __mu; + const _Tp __xi = _Tp(1) / __x; + const _Tp __xi2 = _Tp(2) * __xi; + _Tp __h = __nu * __xi; + if ( __h < __fp_min ) + __h = __fp_min; + _Tp __b = __xi2 * __nu; + _Tp __d = _Tp(0); + _Tp __c = __h; + int __i; + for ( __i = 1; __i <= __max_iter; ++__i ) + { + __b += __xi2; + __d = _Tp(1) / (__b + __d); + __c = __b + _Tp(1) / __c; + const _Tp __del = __c * __d; + __h *= __del; + if (std::abs(__del - _Tp(1)) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Argument x too large " "in __bessel_ik; " "try asymptotic expansion.") + + ); + _Tp __Inul = __fp_min; + _Tp __Ipnul = __h * __Inul; + _Tp __Inul1 = __Inul; + _Tp __Ipnu1 = __Ipnul; + _Tp __fact = __nu * __xi; + for (int __l = __nl; __l >= 1; --__l) + { + const _Tp __Inutemp = __fact * __Inul + __Ipnul; + __fact -= __xi; + __Ipnul = __fact * __Inutemp + __Inul; + __Inul = __Inutemp; + } + _Tp __f = __Ipnul / __Inul; + _Tp __Kmu, __Knu1; + if (__x < __x_min) + { + const _Tp __x2 = __x / _Tp(2); + const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; + const _Tp __fact = (std::abs(__pimu) < __eps + ? _Tp(1) : __pimu / std::sin(__pimu)); + _Tp __d = -std::log(__x2); + _Tp __e = __mu * __d; + const _Tp __fact2 = (std::abs(__e) < __eps + ? _Tp(1) : std::sinh(__e) / __e); + _Tp __gam1, __gam2, __gampl, __gammi; + __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); + _Tp __ff = __fact + * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); + _Tp __sum = __ff; + __e = std::exp(__e); + _Tp __p = __e / (_Tp(2) * __gampl); + _Tp __q = _Tp(1) / (_Tp(2) * __e * __gammi); + _Tp __c = _Tp(1); + __d = __x2 * __x2; + _Tp __sum1 = __p; + int __i; + for (__i = 1; __i <= __max_iter; ++__i) + { + __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); + __c *= __d / __i; + __p /= __i - __mu; + __q /= __i + __mu; + const _Tp __del = __c * __ff; + __sum += __del; + const _Tp __del1 = __c * (__p - __i * __ff); + __sum1 += __del1; + if (std::abs(__del) < __eps * std::abs(__sum)) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Bessel k series failed to converge " "in __bessel_ik.") + ); + __Kmu = __sum; + __Knu1 = __sum1 * __xi2; + } + else + { + _Tp __b = _Tp(2) * (_Tp(1) + __x); + _Tp __d = _Tp(1) / __b; + _Tp __delh = __d; + _Tp __h = __delh; + _Tp __q1 = _Tp(0); + _Tp __q2 = _Tp(1); + _Tp __a1 = _Tp(0.25L) - __mu2; + _Tp __q = __c = __a1; + _Tp __a = -__a1; + _Tp __s = _Tp(1) + __q * __delh; + int __i; + for (__i = 2; __i <= __max_iter; ++__i) + { + __a -= 2 * (__i - 1); + __c = -__a * __c / __i; + const _Tp __qnew = (__q1 - __b * __q2) / __a; + __q1 = __q2; + __q2 = __qnew; + __q += __c * __qnew; + __b += _Tp(2); + __d = _Tp(1) / (__b + __a * __d); + __delh = (__b * __d - _Tp(1)) * __delh; + __h += __delh; + const _Tp __dels = __q * __delh; + __s += __dels; + if ( std::abs(__dels / __s) < __eps ) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Steed's method failed " "in __bessel_ik.") + ); + __h = __a1 * __h; + __Kmu = std::sqrt(__numeric_constants<_Tp>::__pi() / (_Tp(2) * __x)) + * std::exp(-__x) / __s; + __Knu1 = __Kmu * (__mu + __x + _Tp(0.5L) - __h) * __xi; + } + + _Tp __Kpmu = __mu * __xi * __Kmu - __Knu1; + _Tp __Inumu = __xi / (__f * __Kmu - __Kpmu); + __Inu = __Inumu * __Inul1 / __Inul; + __Ipnu = __Inumu * __Ipnu1 / __Inul; + for ( __i = 1; __i <= __nl; ++__i ) + { + const _Tp __Knutemp = (__mu + __i) * __xi2 * __Knu1 + __Kmu; + __Kmu = __Knu1; + __Knu1 = __Knutemp; + } + __Knu = __Kmu; + __Kpnu = __nu * __xi * __Kmu - __Knu1; + + return; + } +# 267 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + _Tp + __cyl_bessel_i(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_i.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) + return __cyl_bessel_ij_series(__nu, __x, +_Tp(1), 200); + else + { + _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + return __I_nu; + } + } +# 303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + _Tp + __cyl_bessel_k(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_k.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + { + _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + return __K_nu; + } + } +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __sph_bessel_ik(unsigned int __n, _Tp __x, + _Tp & __i_n, _Tp & __k_n, _Tp & __ip_n, _Tp & __kp_n) + { + const _Tp __nu = _Tp(__n) + _Tp(0.5L); + + _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + + const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() + / std::sqrt(__x); + + __i_n = __factor * __I_nu; + __k_n = __factor * __K_nu; + __ip_n = __factor * __Ip_nu - __i_n / (_Tp(2) * __x); + __kp_n = __factor * __Kp_nu - __k_n / (_Tp(2) * __x); + + return; + } +# 373 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __airy(_Tp __x, _Tp & __Ai, _Tp & __Bi, _Tp & __Aip, _Tp & __Bip) + { + const _Tp __absx = std::abs(__x); + const _Tp __rootx = std::sqrt(__absx); + const _Tp __z = _Tp(2) * __absx * __rootx / _Tp(3); + const _Tp _S_inf = std::numeric_limits<_Tp>::infinity(); + + if (__isnan(__x)) + __Bip = __Aip = __Bi = __Ai = std::numeric_limits<_Tp>::quiet_NaN(); + else if (__z == _S_inf) + { + __Aip = __Ai = _Tp(0); + __Bip = __Bi = _S_inf; + } + else if (__z == -_S_inf) + __Bip = __Aip = __Bi = __Ai = _Tp(0); + else if (__x > _Tp(0)) + { + _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; + + __bessel_ik(_Tp(1) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + __Ai = __rootx * __K_nu + / (__numeric_constants<_Tp>::__sqrt3() + * __numeric_constants<_Tp>::__pi()); + __Bi = __rootx * (__K_nu / __numeric_constants<_Tp>::__pi() + + _Tp(2) * __I_nu / __numeric_constants<_Tp>::__sqrt3()); + + __bessel_ik(_Tp(2) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + __Aip = -__x * __K_nu + / (__numeric_constants<_Tp>::__sqrt3() + * __numeric_constants<_Tp>::__pi()); + __Bip = __x * (__K_nu / __numeric_constants<_Tp>::__pi() + + _Tp(2) * __I_nu + / __numeric_constants<_Tp>::__sqrt3()); + } + else if (__x < _Tp(0)) + { + _Tp __J_nu, __Jp_nu, __N_nu, __Np_nu; + + __bessel_jn(_Tp(1) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); + __Ai = __rootx * (__J_nu + - __N_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); + __Bi = -__rootx * (__N_nu + + __J_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); + + __bessel_jn(_Tp(2) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); + __Aip = __absx * (__N_nu / __numeric_constants<_Tp>::__sqrt3() + + __J_nu) / _Tp(2); + __Bip = __absx * (__J_nu / __numeric_constants<_Tp>::__sqrt3() + - __N_nu) / _Tp(2); + } + else + { + + + + __Ai = _Tp(0.35502805388781723926L); + __Bi = __Ai * __numeric_constants<_Tp>::__sqrt3(); + + + + + __Aip = -_Tp(0.25881940379280679840L); + __Bip = -__Aip * __numeric_constants<_Tp>::__sqrt3(); + } + + return; + } + } + + + + + +} +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + namespace __detail + { +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + template + _Tp + __poly_hermite_recursion(unsigned int __n, _Tp __x) + { + + _Tp __H_0 = 1; + if (__n == 0) + return __H_0; + + + _Tp __H_1 = 2 * __x; + if (__n == 1) + return __H_1; + + + _Tp __H_n, __H_nm1, __H_nm2; + unsigned int __i; + for (__H_nm2 = __H_0, __H_nm1 = __H_1, __i = 2; __i <= __n; ++__i) + { + __H_n = 2 * (__x * __H_nm1 - (__i - 1) * __H_nm2); + __H_nm2 = __H_nm1; + __H_nm1 = __H_n; + } + + return __H_n; + } +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + template + inline _Tp + __poly_hermite(unsigned int __n, _Tp __x) + { + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __poly_hermite_recursion(__n, __x); + } + } + + + + + +} +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 1 3 +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + namespace __detail + { +# 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_large_n(unsigned __n, _Tpa __alpha1, _Tp __x) + { + const _Tp __a = -_Tp(__n); + const _Tp __b = _Tp(__alpha1) + _Tp(1); + const _Tp __eta = _Tp(2) * __b - _Tp(4) * __a; + const _Tp __cos2th = __x / __eta; + const _Tp __sin2th = _Tp(1) - __cos2th; + const _Tp __th = std::acos(std::sqrt(__cos2th)); + const _Tp __pre_h = __numeric_constants<_Tp>::__pi_2() + * __numeric_constants<_Tp>::__pi_2() + * __eta * __eta * __cos2th * __sin2th; + + + const _Tp __lg_b = ::std::lgamma(_Tp(__n) + __b); + const _Tp __lnfact = ::std::lgamma(_Tp(__n + 1)); + + + + + + _Tp __pre_term1 = _Tp(0.5L) * (_Tp(1) - __b) + * std::log(_Tp(0.25L) * __x * __eta); + _Tp __pre_term2 = _Tp(0.25L) * std::log(__pre_h); + _Tp __lnpre = __lg_b - __lnfact + _Tp(0.5L) * __x + + __pre_term1 - __pre_term2; + _Tp __ser_term1 = std::sin(__a * __numeric_constants<_Tp>::__pi()); + _Tp __ser_term2 = std::sin(_Tp(0.25L) * __eta + * (_Tp(2) * __th + - std::sin(_Tp(2) * __th)) + + __numeric_constants<_Tp>::__pi_4()); + _Tp __ser = __ser_term1 + __ser_term2; + + return std::exp(__lnpre) * __ser; + } +# 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_hyperg(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + const _Tp __b = _Tp(__alpha1) + _Tp(1); + const _Tp __mx = -__x; + const _Tp __tc_sgn = (__x < _Tp(0) ? _Tp(1) + : ((__n % 2 == 1) ? -_Tp(1) : _Tp(1))); + + _Tp __tc = _Tp(1); + const _Tp __ax = std::abs(__x); + for (unsigned int __k = 1; __k <= __n; ++__k) + __tc *= (__ax / __k); + + _Tp __term = __tc * __tc_sgn; + _Tp __sum = __term; + for (int __k = int(__n) - 1; __k >= 0; --__k) + { + __term *= ((__b + _Tp(__k)) / _Tp(int(__n) - __k)) + * _Tp(__k + 1) / __mx; + __sum += __term; + } + + return __sum; + } +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_recursion(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + + _Tp __l_0 = _Tp(1); + if (__n == 0) + return __l_0; + + + _Tp __l_1 = -__x + _Tp(1) + _Tp(__alpha1); + if (__n == 1) + return __l_1; + + + _Tp __l_n2 = __l_0; + _Tp __l_n1 = __l_1; + _Tp __l_n = _Tp(0); + for (unsigned int __nn = 2; __nn <= __n; ++__nn) + { + __l_n = (_Tp(2 * __nn - 1) + _Tp(__alpha1) - __x) + * __l_n1 / _Tp(__nn) + - (_Tp(__nn - 1) + _Tp(__alpha1)) * __l_n2 / _Tp(__nn); + __l_n2 = __l_n1; + __l_n1 = __l_n; + } + + return __l_n; + } +# 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Negative argument " "in __poly_laguerre.") + ); + + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__n == 0) + return _Tp(1); + else if (__n == 1) + return _Tp(1) + _Tp(__alpha1) - __x; + else if (__x == _Tp(0)) + { + _Tp __prod = _Tp(__alpha1) + _Tp(1); + for (unsigned int __k = 2; __k <= __n; ++__k) + __prod *= (_Tp(__alpha1) + _Tp(__k)) / _Tp(__k); + return __prod; + } + else if (__n > 10000000 && _Tp(__alpha1) > -_Tp(1) + && __x < _Tp(2) * (_Tp(__alpha1) + _Tp(1)) + _Tp(4 * __n)) + return __poly_laguerre_large_n(__n, __alpha1, __x); + else if (_Tp(__alpha1) >= _Tp(0) + || (__x > _Tp(0) && _Tp(__alpha1) < -_Tp(__n + 1))) + return __poly_laguerre_recursion(__n, __alpha1, __x); + else + return __poly_laguerre_hyperg(__n, __alpha1, __x); + } +# 296 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) + { return __poly_laguerre(__n, __m, __x); } +# 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __laguerre(unsigned int __n, _Tp __x) + { return __poly_laguerre(__n, 0, __x); } + } + + + + + + +} +# 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + namespace __detail + { +# 78 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_sum(_Tp __s) + { + + if (__s < _Tp(1)) + std::__throw_domain_error(("Bad argument in zeta sum.")); + + const unsigned int max_iter = 10000; + _Tp __zeta = _Tp(0); + for (unsigned int __k = 1; __k < max_iter; ++__k) + { + _Tp __term = std::pow(static_cast<_Tp>(__k), -__s); + if (__term < std::numeric_limits<_Tp>::epsilon()) + { + break; + } + __zeta += __term; + } + + return __zeta; + } +# 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_alt(_Tp __s) + { + _Tp __sgn = _Tp(1); + _Tp __zeta = _Tp(0); + for (unsigned int __i = 1; __i < 10000000; ++__i) + { + _Tp __term = __sgn / std::pow(__i, __s); + if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) + break; + __zeta += __term; + __sgn *= _Tp(-1); + } + __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); + + return __zeta; + } +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_glob(_Tp __s) + { + _Tp __zeta = _Tp(0); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + + + if (__s < _Tp(0)) + { + + if (::std::fmod(__s,_Tp(2)) == _Tp(0)) + return _Tp(0); + else + + { + _Tp __zeta = __riemann_zeta_glob(_Tp(1) - __s); + __zeta *= std::pow(_Tp(2) + * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * std::exp(::std::lgamma(_Tp(1) - __s)) + + + + / __numeric_constants<_Tp>::__pi(); + return __zeta; + } + } + + _Tp __num = _Tp(0.5L); + const unsigned int __maxit = 10000; + for (unsigned int __i = 0; __i < __maxit; ++__i) + { + bool __punt = false; + _Tp __sgn = _Tp(1); + _Tp __term = _Tp(0); + for (unsigned int __j = 0; __j <= __i; ++__j) + { + + _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) + - ::std::lgamma(_Tp(1 + __j)) + - ::std::lgamma(_Tp(1 + __i - __j)); + + + + + + if (__bincoeff > __max_bincoeff) + { + + __punt = true; + break; + } + __bincoeff = std::exp(__bincoeff); + __term += __sgn * __bincoeff * std::pow(_Tp(1 + __j), -__s); + __sgn *= _Tp(-1); + } + if (__punt) + break; + __term *= __num; + __zeta += __term; + if (std::abs(__term/__zeta) < __eps) + break; + __num *= _Tp(0.5L); + } + + __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); + + return __zeta; + } +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_product(_Tp __s) + { + static const _Tp __prime[] = { + _Tp(2), _Tp(3), _Tp(5), _Tp(7), _Tp(11), _Tp(13), _Tp(17), _Tp(19), + _Tp(23), _Tp(29), _Tp(31), _Tp(37), _Tp(41), _Tp(43), _Tp(47), + _Tp(53), _Tp(59), _Tp(61), _Tp(67), _Tp(71), _Tp(73), _Tp(79), + _Tp(83), _Tp(89), _Tp(97), _Tp(101), _Tp(103), _Tp(107), _Tp(109) + }; + static const unsigned int __num_primes = sizeof(__prime) / sizeof(_Tp); + + _Tp __zeta = _Tp(1); + for (unsigned int __i = 0; __i < __num_primes; ++__i) + { + const _Tp __fact = _Tp(1) - std::pow(__prime[__i], -__s); + __zeta *= __fact; + if (_Tp(1) - __fact < std::numeric_limits<_Tp>::epsilon()) + break; + } + + __zeta = _Tp(1) / __zeta; + + return __zeta; + } +# 293 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta(_Tp __s) + { + if (__isnan(__s)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__s == _Tp(1)) + return std::numeric_limits<_Tp>::infinity(); + else if (__s < -_Tp(19)) + { + _Tp __zeta = __riemann_zeta_product(_Tp(1) - __s); + __zeta *= std::pow(_Tp(2) * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * std::exp(::std::lgamma(_Tp(1) - __s)) + + + + / __numeric_constants<_Tp>::__pi(); + return __zeta; + } + else if (__s < _Tp(20)) + { + + bool __glob = true; + if (__glob) + return __riemann_zeta_glob(__s); + else + { + if (__s > _Tp(1)) + return __riemann_zeta_sum(__s); + else + { + _Tp __zeta = std::pow(_Tp(2) + * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * ::std::tgamma(_Tp(1) - __s) + + + + * __riemann_zeta_sum(_Tp(1) - __s); + return __zeta; + } + } + } + else + return __riemann_zeta_product(__s); + } +# 365 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __hurwitz_zeta_glob(_Tp __a, _Tp __s) + { + _Tp __zeta = _Tp(0); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + const unsigned int __maxit = 10000; + for (unsigned int __i = 0; __i < __maxit; ++__i) + { + bool __punt = false; + _Tp __sgn = _Tp(1); + _Tp __term = _Tp(0); + for (unsigned int __j = 0; __j <= __i; ++__j) + { + + _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) + - ::std::lgamma(_Tp(1 + __j)) + - ::std::lgamma(_Tp(1 + __i - __j)); + + + + + + if (__bincoeff > __max_bincoeff) + { + + __punt = true; + break; + } + __bincoeff = std::exp(__bincoeff); + __term += __sgn * __bincoeff * std::pow(_Tp(__a + __j), -__s); + __sgn *= _Tp(-1); + } + if (__punt) + break; + __term /= _Tp(__i + 1); + if (std::abs(__term / __zeta) < __eps) + break; + __zeta += __term; + } + + __zeta /= __s - _Tp(1); + + return __zeta; + } +# 430 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + inline _Tp + __hurwitz_zeta(_Tp __a, _Tp __s) + { return __hurwitz_zeta_glob(__a, __s); } + } + + + + + + +} +# 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 203 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + assoc_laguerref(unsigned int __n, unsigned int __m, float __x) + { return __detail::__assoc_laguerre(__n, __m, __x); } + + + + + + + + inline long double + assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x) + { return __detail::__assoc_laguerre(__n, __m, __x); } +# 248 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__assoc_laguerre<__type>(__n, __m, __x); + } +# 264 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + assoc_legendref(unsigned int __l, unsigned int __m, float __x) + { return __detail::__assoc_legendre_p(__l, __m, __x); } + + + + + + + inline long double + assoc_legendrel(unsigned int __l, unsigned int __m, long double __x) + { return __detail::__assoc_legendre_p(__l, __m, __x); } +# 294 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__assoc_legendre_p<__type>(__l, __m, __x); + } +# 309 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + betaf(float __a, float __b) + { return __detail::__beta(__a, __b); } + + + + + + + + inline long double + betal(long double __a, long double __b) + { return __detail::__beta(__a, __b); } +# 339 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type + beta(_Tpa __a, _Tpb __b) + { + typedef typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type __type; + return __detail::__beta<__type>(__a, __b); + } +# 355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_1f(float __k) + { return __detail::__comp_ellint_1(__k); } + + + + + + + + inline long double + comp_ellint_1l(long double __k) + { return __detail::__comp_ellint_1(__k); } +# 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + comp_ellint_1(_Tp __k) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__comp_ellint_1<__type>(__k); + } +# 403 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_2f(float __k) + { return __detail::__comp_ellint_2(__k); } + + + + + + + + inline long double + comp_ellint_2l(long double __k) + { return __detail::__comp_ellint_2(__k); } +# 434 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + comp_ellint_2(_Tp __k) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__comp_ellint_2<__type>(__k); + } +# 450 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_3f(float __k, float __nu) + { return __detail::__comp_ellint_3(__k, __nu); } + + + + + + + + inline long double + comp_ellint_3l(long double __k, long double __nu) + { return __detail::__comp_ellint_3(__k, __nu); } +# 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type + comp_ellint_3(_Tp __k, _Tpn __nu) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type; + return __detail::__comp_ellint_3<__type>(__k, __nu); + } +# 501 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_if(float __nu, float __x) + { return __detail::__cyl_bessel_i(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_il(long double __nu, long double __x) + { return __detail::__cyl_bessel_i(__nu, __x); } +# 531 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_i(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_i<__type>(__nu, __x); + } +# 547 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_jf(float __nu, float __x) + { return __detail::__cyl_bessel_j(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_jl(long double __nu, long double __x) + { return __detail::__cyl_bessel_j(__nu, __x); } +# 577 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_j(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_j<__type>(__nu, __x); + } +# 593 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_kf(float __nu, float __x) + { return __detail::__cyl_bessel_k(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_kl(long double __nu, long double __x) + { return __detail::__cyl_bessel_k(__nu, __x); } +# 629 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_k(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_k<__type>(__nu, __x); + } +# 645 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_neumannf(float __nu, float __x) + { return __detail::__cyl_neumann_n(__nu, __x); } + + + + + + + + inline long double + cyl_neumannl(long double __nu, long double __x) + { return __detail::__cyl_neumann_n(__nu, __x); } +# 677 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_neumann(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_neumann_n<__type>(__nu, __x); + } +# 693 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_1f(float __k, float __phi) + { return __detail::__ellint_1(__k, __phi); } + + + + + + + + inline long double + ellint_1l(long double __k, long double __phi) + { return __detail::__ellint_1(__k, __phi); } +# 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type + ellint_1(_Tp __k, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; + return __detail::__ellint_1<__type>(__k, __phi); + } +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_2f(float __k, float __phi) + { return __detail::__ellint_2(__k, __phi); } + + + + + + + + inline long double + ellint_2l(long double __k, long double __phi) + { return __detail::__ellint_2(__k, __phi); } +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type + ellint_2(_Tp __k, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; + return __detail::__ellint_2<__type>(__k, __phi); + } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_3f(float __k, float __nu, float __phi) + { return __detail::__ellint_3(__k, __nu, __phi); } + + + + + + + + inline long double + ellint_3l(long double __k, long double __nu, long double __phi) + { return __detail::__ellint_3(__k, __nu, __phi); } +# 826 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type + ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type; + return __detail::__ellint_3<__type>(__k, __nu, __phi); + } +# 841 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + expintf(float __x) + { return __detail::__expint(__x); } + + + + + + + + inline long double + expintl(long double __x) + { return __detail::__expint(__x); } +# 866 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + expint(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__expint<__type>(__x); + } +# 882 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + hermitef(unsigned int __n, float __x) + { return __detail::__poly_hermite(__n, __x); } + + + + + + + + inline long double + hermitel(unsigned int __n, long double __x) + { return __detail::__poly_hermite(__n, __x); } +# 914 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + hermite(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__poly_hermite<__type>(__n, __x); + } +# 930 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + laguerref(unsigned int __n, float __x) + { return __detail::__laguerre(__n, __x); } + + + + + + + + inline long double + laguerrel(unsigned int __n, long double __x) + { return __detail::__laguerre(__n, __x); } +# 958 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + laguerre(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__laguerre<__type>(__n, __x); + } +# 974 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + legendref(unsigned int __l, float __x) + { return __detail::__poly_legendre_p(__l, __x); } + + + + + + + + inline long double + legendrel(unsigned int __l, long double __x) + { return __detail::__poly_legendre_p(__l, __x); } +# 1003 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + legendre(unsigned int __l, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__poly_legendre_p<__type>(__l, __x); + } +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + riemann_zetaf(float __s) + { return __detail::__riemann_zeta(__s); } + + + + + + + + inline long double + riemann_zetal(long double __s) + { return __detail::__riemann_zeta(__s); } +# 1054 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + riemann_zeta(_Tp __s) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__riemann_zeta<__type>(__s); + } +# 1070 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_besself(unsigned int __n, float __x) + { return __detail::__sph_bessel(__n, __x); } + + + + + + + + inline long double + sph_bessell(unsigned int __n, long double __x) + { return __detail::__sph_bessel(__n, __x); } +# 1098 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_bessel(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_bessel<__type>(__n, __x); + } +# 1114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_legendref(unsigned int __l, unsigned int __m, float __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + sph_legendrel(unsigned int __l, unsigned int __m, long double __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_legendre<__type>(__l, __m, __theta); + } +# 1161 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_neumannf(unsigned int __n, float __x) + { return __detail::__sph_neumann(__n, __x); } + + + + + + + + inline long double + sph_neumannl(unsigned int __n, long double __x) + { return __detail::__sph_neumann(__n, __x); } +# 1189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_neumann(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_neumann<__type>(__n, __x); + } + + + + +} + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + airy_aif(float __x) + { + float __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + inline long double + airy_ail(long double __x) + { + long double __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + template + inline typename __gnu_cxx::__promote<_Tp>::__type + airy_ai(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + __type __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + inline float + airy_bif(float __x) + { + float __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } + + + + + inline long double + airy_bil(long double __x) + { + long double __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } + + + + + template + inline typename __gnu_cxx::__promote<_Tp>::__type + airy_bi(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + __type __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } +# 1292 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + conf_hypergf(float __a, float __c, float __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + conf_hypergl(long double __a, long double __c, long double __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type + conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x) + { + typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type; + return std::__detail::__conf_hyperg<__type>(__a, __c, __x); + } +# 1340 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + hypergf(float __a, float __b, float __c, float __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1351 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + hypergl(long double __a, long double __b, long double __c, long double __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1372 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type + hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) + { + typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp> + ::__type __type; + return std::__detail::__hyperg<__type>(__a, __b, __c, __x); + } + + + +} +# 3907 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + + +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 2 3 + +using std::abs; +using std::acos; +using std::asin; +using std::atan; +using std::atan2; +using std::cos; +using std::sin; +using std::tan; +using std::cosh; +using std::sinh; +using std::tanh; +using std::exp; +using std::frexp; +using std::ldexp; +using std::log; +using std::log10; +using std::modf; +using std::pow; +using std::sqrt; +using std::ceil; +using std::fabs; +using std::floor; +using std::fmod; + + +using std::fpclassify; +using std::isfinite; +using std::isinf; +using std::isnan; +using std::isnormal; +using std::signbit; +using std::isgreater; +using std::isgreaterequal; +using std::isless; +using std::islessequal; +using std::islessgreater; +using std::isunordered; + + + +using std::acosh; +using std::asinh; +using std::atanh; +using std::cbrt; +using std::copysign; +using std::erf; +using std::erfc; +using std::exp2; +using std::expm1; +using std::fdim; +using std::fma; +using std::fmax; +using std::fmin; +using std::hypot; +using std::ilogb; +using std::lgamma; +using std::llrint; +using std::llround; +using std::log1p; +using std::log2; +using std::logb; +using std::lrint; +using std::lround; +using std::nearbyint; +using std::nextafter; +using std::nexttoward; +using std::remainder; +using std::remquo; +using std::rint; +using std::round; +using std::scalbln; +using std::scalbn; +using std::tgamma; +using std::trunc; +# 4578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 4579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +# 4582 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +# 4583 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(long double x); +} +# 4832 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std +{ + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __pow_helper(T, int); + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __cmath_power(T, unsigned int); +} + +using std::abs; +using std::fabs; +using std::ceil; +using std::floor; +using std::sqrt; + +using std::pow; + +using std::log; +using std::log10; +using std::fmod; +using std::modf; +using std::exp; +using std::frexp; +using std::ldexp; +using std::asin; +using std::sin; +using std::sinh; +using std::acos; +using std::cos; +using std::cosh; +using std::atan; +using std::atan2; +using std::tan; +using std::tanh; +# 5243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 5252 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int abs(long long int); +# 5272 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int abs(long int a); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float abs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double abs(double); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fabs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ceil(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float floor(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sqrt(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float pow(float, float); + + + + +template +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) +typename __gnu_cxx::__promote_2<_Tp, _Up>::__type pow(_Tp, _Up); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log10(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fmod(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float modf(float, float*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float frexp(float, int*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ldexp(float, int); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float asin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float acos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cosh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan2(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tanh(float); +# 5399 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 5505 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float logb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr int ilogb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbn(float a, int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbln(float a, long int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float exp2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float expm1(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log1p(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float acosh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float asinh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float atanh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float hypot(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float cbrt(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erf(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erfc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float lgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float tgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float copysign(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nextafter(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float remainder(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float remquo(float a, float b, int *quo); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float round(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float trunc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float rint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nearbyint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fdim(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fma(float a, float b, float c); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmax(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmin(float a, float b); +} +# 5644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp10(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rsqrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rcbrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinpi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cospi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincospi(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincos(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float jn(const int n, const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float yn(const int n, const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i0(const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdf(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcx(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const double a, const float b); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const float a, const double b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int min(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int min(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const long long int b); +# 5785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float min(const float a, const float b); +# 5796 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const double b); +# 5806 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const float a, const double b); +# 5816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const float b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int max(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int max(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const long long int b); +# 5915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float max(const float a, const float b); +# 5926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const double b); +# 5936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const float a, const double b); +# 5946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const float b); +# 5958 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C"{ +inline __attribute__((device)) void *__nv_aligned_device_malloc(size_t size, size_t align) +{ + __attribute__((device)) void *__nv_aligned_device_malloc_impl(size_t, size_t); + return __nv_aligned_device_malloc_impl(size, align); +} +} +# 6248 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 78 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 2 +# 758 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +static inline __attribute__((host)) __attribute__((device)) float exp10(const float a) +{ + return exp10f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rsqrt(const float a) +{ + return rsqrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rcbrt(const float a) +{ + return rcbrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float sinpi(const float a) +{ + return sinpif(a); +} + +static inline __attribute__((host)) __attribute__((device)) float cospi(const float a) +{ + return cospif(a); +} + +static inline __attribute__((host)) __attribute__((device)) void sincospi(const float a, float *const sptr, float *const cptr) +{ + sincospif(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) void sincos(const float a, float *const sptr, float *const cptr) +{ + sincosf(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) float j0(const float a) +{ + return j0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float j1(const float a) +{ + return j1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float jn(const int n, const float a) +{ + return jnf(n, a); +} + +static inline __attribute__((host)) __attribute__((device)) float y0(const float a) +{ + return y0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float y1(const float a) +{ + return y1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float yn(const int n, const float a) +{ + return ynf(n, a); +} + +static inline __attribute__((device)) float cyl_bessel_i0(const float a) +{ + return cyl_bessel_i0f(a); +} + +static inline __attribute__((device)) float cyl_bessel_i1(const float a) +{ + return cyl_bessel_i1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfinv(const float a) +{ + return erfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcinv(const float a) +{ + return erfcinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdfinv(const float a) +{ + return normcdfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdf(const float a) +{ + return normcdff(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcx(const float a) +{ + return erfcxf(a); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const double a, const float b) +{ + return copysign(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const float a, const double b) +{ + return copysign(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const unsigned int b) +{ + return umin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const int a, const unsigned int b) +{ + return umin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const int b) +{ + return umin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int min(const long int a, const long int b) +{ + long int retval; + + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(min(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int min(const long long int a, const long long int b) +{ + return llmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b) +{ + return ullmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const long long int a, const unsigned long long int b) +{ + return ullmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const long long int b) +{ + return ullmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float min(const float a, const float b) +{ + return fminf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const double b) +{ + return fmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const float a, const double b) +{ + return fmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const float b) +{ + return fmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const unsigned int b) +{ + return umax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const int a, const unsigned int b) +{ + return umax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const int b) +{ + return umax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int max(const long int a, const long int b) +{ + long int retval; + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(max(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int max(const long long int a, const long long int b) +{ + return llmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b) +{ + return ullmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const long long int a, const unsigned long long int b) +{ + return ullmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const long long int b) +{ + return ullmax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float max(const float a, const float b) +{ + return fmaxf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const double b) +{ + return fmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const float a, const double b) +{ + return fmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const float b) +{ + return fmax(a, static_cast(b)); +} +# 6249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +extern "C" +{ +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mulhi(int x, int y); +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umulhi(unsigned int x, unsigned int y); +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __mul64hi(long long int x, long long int y); +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __umul64hi(unsigned long long int x, unsigned long long int y); +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int_as_float(int x); +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float_as_int(float x); +# 163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint_as_float(unsigned int x); +# 172 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float_as_uint(float x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __syncthreads(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __prof_trigger(int); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence_block(void); +__attribute__((device)) __attribute__((cudart_builtin)) + +__attribute__((__noreturn__)) + + + +__attribute__((device_builtin)) void __trap(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __brkpt(); +# 196 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __saturatef(float x); +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __sad(int x, int y, unsigned int z); +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __usad(unsigned int x, unsigned int y, unsigned int z); +# 243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mul24(int x, int y); +# 253 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umul24(unsigned int x, unsigned int y); +# 269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float fdividef(float x, float y); +# 289 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdividef(float x, float y); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) double fdivide(double x, double y); +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __sinf(float x) +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __cosf(float x) +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanf(float x) +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanhf(float x) +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void __sincosf(float x, float *sptr, float *cptr) +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __expf(float x) +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __exp10f(float x) +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log2f(float x) +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log10f(float x) +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __logf(float x) +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __powf(float x, float y) +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rn(float x); +# 463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rz(float x); +# 473 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_ru(float); +# 483 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rd(float x); +# 493 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rn(float x); +# 503 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rz(float x); +# 513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_ru(float x); +# 523 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rd(float x); +# 532 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rn(int x); +# 541 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rz(int x); +# 550 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_ru(int x); +# 559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rd(int x); +# 568 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rn(unsigned int x); +# 577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rz(unsigned int x); +# 586 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_ru(unsigned int x); +# 595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rd(unsigned int x); +# 605 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rn(float x); +# 615 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rz(float x); +# 625 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_ru(float x); +# 635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rd(float x); +# 645 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rn(float x); +# 655 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rz(float x); +# 665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_ru(float x); +# 675 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rd(float x); +# 684 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rn(long long int x); +# 693 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rz(long long int x); +# 702 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_ru(long long int x); +# 711 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rd(long long int x); +# 720 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rn(unsigned long long int x); +# 729 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rz(unsigned long long int x); +# 738 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_ru(unsigned long long int x); +# 747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rd(unsigned long long int x); +# 766 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rn(float x, float y); +# 785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rz(float x, float y); +# 804 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_ru(float x, float y); +# 823 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rd(float x, float y); +# 842 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rn(float x, float y); +# 861 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rz(float x, float y); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_ru(float x, float y); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rd(float x, float y); +# 917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rn(float x, float y); +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rz(float x, float y); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_ru(float x, float y); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rd(float x, float y); +# 1015 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rn(float x, float y, float z); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rz(float x, float y, float z); +# 1103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_ru(float x, float y, float z); +# 1147 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rd(float x, float y, float z); +# 1164 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rn(float x); +# 1181 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rz(float x); +# 1198 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_ru(float x); +# 1215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rd(float x); +# 1233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rn(float x); +# 1251 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rz(float x); +# 1269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_ru(float x); +# 1287 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rd(float x); +# 1305 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frsqrt_rn(float x); +# 1324 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rn(float x, float y); +# 1343 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rz(float x, float y); +# 1362 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_ru(float x, float y); +# 1381 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rd(float x, float y); +# 1390 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clz(int x); +# 1401 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffs(int x); +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popc(unsigned int x); +# 1419 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __brev(unsigned int x); +# 1428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clzll(long long int x); +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffsll(long long int x); +# 1450 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popcll(unsigned long long int x); +# 1459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __brevll(unsigned long long int x); +# 1482 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __byte_perm(unsigned int x, unsigned int y, unsigned int s); +# 1494 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __hadd(int x, int y); +# 1507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __rhadd(int x, int y); +# 1519 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __uhadd(unsigned int x, unsigned int y); +# 1532 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __urhadd(unsigned int x, unsigned int y); +# 1543 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __double2int_rz(double x); +# 1553 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __double2uint_rz(double x); +# 1563 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __double2ll_rz(double x); +# 1573 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __double2ull_rz(double x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm0(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm1(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm2(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm3(void); +# 1603 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs2(unsigned int a); +# 1614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss2(unsigned int a); +# 1625 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd2(unsigned int a, unsigned int b); +# 1636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss2 (unsigned int a, unsigned int b); +# 1646 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus2 (unsigned int a, unsigned int b); +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs2(unsigned int a, unsigned int b); +# 1668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu2(unsigned int a, unsigned int b); +# 1679 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu2(unsigned int a, unsigned int b); +# 1690 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq2(unsigned int a, unsigned int b); +# 1701 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges2(unsigned int a, unsigned int b); +# 1712 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu2(unsigned int a, unsigned int b); +# 1723 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts2(unsigned int a, unsigned int b); +# 1734 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu2(unsigned int a, unsigned int b); +# 1745 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples2(unsigned int a, unsigned int b); +# 1756 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu2(unsigned int a, unsigned int b); +# 1767 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts2(unsigned int a, unsigned int b); +# 1778 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu2(unsigned int a, unsigned int b); +# 1789 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne2(unsigned int a, unsigned int b); +# 1800 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu2(unsigned int a, unsigned int b); +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs2(unsigned int a, unsigned int b); +# 1822 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu2(unsigned int a, unsigned int b); +# 1833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins2(unsigned int a, unsigned int b); +# 1844 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu2(unsigned int a, unsigned int b); +# 1855 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq2(unsigned int a, unsigned int b); +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges2(unsigned int a, unsigned int b); +# 1877 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu2(unsigned int a, unsigned int b); +# 1888 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts2(unsigned int a, unsigned int b); +# 1899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu2(unsigned int a, unsigned int b); +# 1910 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles2(unsigned int a, unsigned int b); +# 1921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu2(unsigned int a, unsigned int b); +# 1932 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts2(unsigned int a, unsigned int b); +# 1943 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu2(unsigned int a, unsigned int b); +# 1954 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne2(unsigned int a, unsigned int b); +# 1965 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu2(unsigned int a, unsigned int b); +# 1976 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub2(unsigned int a, unsigned int b); +# 1987 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss2 (unsigned int a, unsigned int b); +# 1998 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus2 (unsigned int a, unsigned int b); +# 2008 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg2(unsigned int a); +# 2018 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss2(unsigned int a); +# 2029 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs2(unsigned int a, unsigned int b); +# 2040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads2(unsigned int a, unsigned int b); +# 2050 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs4(unsigned int a); +# 2061 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss4(unsigned int a); +# 2072 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd4(unsigned int a, unsigned int b); +# 2083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss4 (unsigned int a, unsigned int b); +# 2093 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus4 (unsigned int a, unsigned int b); +# 2104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs4(unsigned int a, unsigned int b); +# 2115 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu4(unsigned int a, unsigned int b); +# 2126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu4(unsigned int a, unsigned int b); +# 2137 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq4(unsigned int a, unsigned int b); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges4(unsigned int a, unsigned int b); +# 2159 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu4(unsigned int a, unsigned int b); +# 2170 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts4(unsigned int a, unsigned int b); +# 2181 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu4(unsigned int a, unsigned int b); +# 2192 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples4(unsigned int a, unsigned int b); +# 2203 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu4(unsigned int a, unsigned int b); +# 2214 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts4(unsigned int a, unsigned int b); +# 2225 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu4(unsigned int a, unsigned int b); +# 2236 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne4(unsigned int a, unsigned int b); +# 2247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu4(unsigned int a, unsigned int b); +# 2258 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs4(unsigned int a, unsigned int b); +# 2269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu4(unsigned int a, unsigned int b); +# 2280 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins4(unsigned int a, unsigned int b); +# 2291 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu4(unsigned int a, unsigned int b); +# 2302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq4(unsigned int a, unsigned int b); +# 2313 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles4(unsigned int a, unsigned int b); +# 2324 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu4(unsigned int a, unsigned int b); +# 2335 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts4(unsigned int a, unsigned int b); +# 2346 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu4(unsigned int a, unsigned int b); +# 2357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges4(unsigned int a, unsigned int b); +# 2368 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu4(unsigned int a, unsigned int b); +# 2379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts4(unsigned int a, unsigned int b); +# 2390 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu4(unsigned int a, unsigned int b); +# 2401 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne4(unsigned int a, unsigned int b); +# 2412 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu4(unsigned int a, unsigned int b); +# 2423 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub4(unsigned int a, unsigned int b); +# 2434 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss4(unsigned int a, unsigned int b); +# 2445 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus4(unsigned int a, unsigned int b); +# 2455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg4(unsigned int a); +# 2465 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss4(unsigned int a); +# 2476 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs4(unsigned int a, unsigned int b); +# 2487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads4(unsigned int a, unsigned int b); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b); +# 2509 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b); +# 2518 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b); +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b); +# 2539 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32(const int a, const int b, const int c); +# 2551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2572 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2581 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32(const int a, const int b, const int c); +# 2593 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2602 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32_relu(const int a, const int b, const int c); +# 2635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32_relu(const int a, const int b, const int c); +# 2656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32(const int a, const int b, const int c); +# 2677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2686 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2698 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2707 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32(const int a, const int b, const int c); +# 2719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2728 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2750 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32_relu(const int a, const int b, const int c); +# 2762 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2772 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32_relu(const int a, const int b, const int c); +# 2784 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2793 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmax_s32(const int a, const int b, bool* const pred); +# 2802 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool* const pred); +# 2811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmin_s32(const int a, const int b, bool* const pred); +# 2820 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool* const pred); +# 2834 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2848 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2862 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2876 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); + + + + + + +} +# 2899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 2 +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +static __attribute__((host)) __attribute__((device)) short __internal_cast_u2s(unsigned short x) +{ + short res; + + (void)memcpy(&res, &x, sizeof(x)); + + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b){ + + + + + + + int ans = max(a, b); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b){ + unsigned int res; + + + + res = __vmaxs2(__vmaxs2(a, b), 0U); +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b){ + + + + + + + int ans = min(a, b); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b){ + unsigned int res; + + + + res = __vmaxs2(__vmins2(a, b), 0U); +# 232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32(const int a, const int b, const int c){ +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(max(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned int ansU_lo = (unsigned int)max(max(aS_lo, bS_lo), cS_lo); + unsigned int ansU_hi = (unsigned int)max(max(aS_hi, bS_hi), cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 301 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(max(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vmaxu2(__vmaxu2(a, b), c); +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32(const int a, const int b, const int c){ +# 347 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(min(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned int ansU_lo = (unsigned int)min(min(aS_lo, bS_lo), cS_lo); + unsigned int ansU_hi = (unsigned int)min(min(aS_hi, bS_hi), cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(min(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vminu2(__vminu2(a, b), c); +# 436 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32_relu(const int a, const int b, const int c){ +# 449 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(max(a, b), c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, max(max(aS_lo, bS_lo), cS_lo)); + unsigned ansU_hi = (unsigned)max(0, max(max(aS_hi, bS_hi), cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32_relu(const int a, const int b, const int c){ +# 507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(min(a, b), c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned res; +# 525 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, min(min(aS_lo, bS_lo), cS_lo)); + unsigned ansU_hi = (unsigned)max(0, min(min(aS_hi, bS_hi), cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32(const int a, const int b, const int c){ +# 566 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vmaxs2(__vadd2(a, b), c); +# 609 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 622 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vmaxu2(__vadd2(a, b), c); +# 655 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32(const int a, const int b, const int c){ +# 668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vmins2(__vadd2(a, b), c); +# 711 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vminu2(__vadd2(a, b), c); +# 757 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32_relu(const int a, const int b, const int c){ +# 770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(a + b, c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vimax_s16x2_relu(__vadd2(a, b), c); +# 815 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32_relu(const int a, const int b, const int c){ +# 828 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(a + b, c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vimin_s16x2_relu(__vadd2(a, b), c); +# 873 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmax_s32(const int a, const int b, bool* const pred){ +# 892 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(a, b); + + *pred = (a >= b); + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool* const pred){ +# 913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned int ans = max(a, b); + + *pred = (a >= b); + return ans; + +} + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmin_s32(const int a, const int b, bool* const pred){ +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(a, b); + + *pred = (a <= b); + return ans; + +} + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool* const pred){ +# 957 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned int ans = min(a, b); + + *pred = (a <= b); + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 986 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + unsigned int ansU_lo = (unsigned int)max(aS_lo, bS_lo); + unsigned int ansU_hi = (unsigned int)max(aS_hi, bS_hi); + + *pred_hi = (aS_hi >= bS_hi); + *pred_lo = (aS_lo >= bS_lo); + + + unsigned int ans = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + unsigned short ansU_lo = (unsigned short)max(aU_lo, bU_lo); + unsigned short ansU_hi = (unsigned short)max(aU_hi, bU_hi); + + *pred_hi = (aU_hi >= bU_hi); + *pred_lo = (aU_lo >= bU_lo); + + + unsigned int ans = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + unsigned int ansU_lo = (unsigned int)min(aS_lo, bS_lo); + unsigned int ansU_hi = (unsigned int)min(aS_hi, bS_hi); + + *pred_hi = (aS_hi <= bS_hi); + *pred_lo = (aS_lo <= bS_lo); + + + unsigned int ans = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + unsigned short ansU_lo = (unsigned short)min(aU_lo, bU_lo); + unsigned short ansU_hi = (unsigned short)min(aU_hi, bU_hi); + + *pred_hi = (aU_hi <= bU_hi); + *pred_lo = (aU_lo <= bU_lo); + + + unsigned int ans = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + return ans; + +} +# 2900 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" 1 +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) ; + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) ; +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __any(int cond); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __all(int cond); +} +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) ; + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) ; + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) ; + +static __inline__ __attribute__((device)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool any(bool cond) ; + +static __inline__ __attribute__((device)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool all(bool cond) ; +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.hpp" 1 +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicAdd(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicAdd(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicExch(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicExch(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) float __fAtomicExch(float *address, float val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicMin(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicMin(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicMax(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicMax(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicInc(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicDec(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicAnd(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicAnd(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicOr(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicOr(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicXor(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicXor(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicCAS(int *address, int compare, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicCAS(unsigned int *address, unsigned int compare, unsigned int val); + + +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicAdd(unsigned long long int *address, unsigned long long int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicExch(unsigned long long int *address, unsigned long long int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val); +} +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.hpp" +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) +{ + return __iAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) +{ + return __uAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) +{ + return __iAtomicAdd(address, (unsigned int)-(int)val); +} + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) +{ + return __uAtomicAdd(address, (unsigned int)-(int)val); +} + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) +{ + return __iAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) +{ + return __uAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) +{ + return __fAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) +{ + return __iAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) +{ + return __uAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) +{ + return __iAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) +{ + return __uAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) +{ + return __uAtomicInc(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) +{ + return __uAtomicDec(address, val); +} + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) +{ + return __iAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) +{ + return __uAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) +{ + return __iAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) +{ + return __uAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) +{ + return __iAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) +{ + return __uAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) +{ + return __iAtomicCAS(address, compare, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) +{ + return __uAtomicCAS(address, compare, val); +} +# 224 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.hpp" +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) +{ + return __ullAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) +{ + return __ullAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) +{ + return __ullAtomicCAS(address, compare, val); +} + +static __inline__ __attribute__((device)) bool any(bool cond) +{ + return (bool)__any((int)cond); +} + +static __inline__ __attribute__((device)) bool all(bool cond) +{ + return (bool)__all((int)cond); +} +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" 2 +# 2903 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 + + + + +extern "C" +{ +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 266 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 423 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 580 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 749 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 773 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 809 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 821 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 857 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 881 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 890 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 944 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 962 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 980 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 998 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1007 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1016 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1025 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 1050 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1113 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1141 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); +} + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode); + + + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode = cudaRoundNearest); + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 2 + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __fma_rz(a, b, c) : + mode == cudaRoundPosInf ? __fma_ru(a, b, c) : + mode == cudaRoundMinInf ? __fma_rd(a, b, c) : + __fma_rn(a, b, c); +} + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dmul_rz(a, b) : + mode == cudaRoundPosInf ? __dmul_ru(a, b) : + mode == cudaRoundMinInf ? __dmul_rd(a, b) : + __dmul_rn(a, b); +} + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dadd_rz(a, b) : + mode == cudaRoundPosInf ? __dadd_ru(a, b) : + mode == cudaRoundMinInf ? __dadd_rd(a, b) : + __dadd_rn(a, b); +} + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dsub_rz(a, b) : + mode == cudaRoundPosInf ? __dsub_ru(a, b) : + mode == cudaRoundMinInf ? __dsub_rd(a, b) : + __dsub_rn(a, b); +} + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2int_rn(a) : + mode == cudaRoundPosInf ? __double2int_ru(a) : + mode == cudaRoundMinInf ? __double2int_rd(a) : + __double2int_rz(a); +} + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2uint_rn(a) : + mode == cudaRoundPosInf ? __double2uint_ru(a) : + mode == cudaRoundMinInf ? __double2uint_rd(a) : + __double2uint_rz(a); +} + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ll_rn(a) : + mode == cudaRoundPosInf ? __double2ll_ru(a) : + mode == cudaRoundMinInf ? __double2ll_rd(a) : + __double2ll_rz(a); +} + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ull_rn(a) : + mode == cudaRoundPosInf ? __double2ull_ru(a) : + mode == cudaRoundMinInf ? __double2ull_rd(a) : + __double2ull_rz(a); +} + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ll2double_rz(a) : + mode == cudaRoundPosInf ? __ll2double_ru(a) : + mode == cudaRoundMinInf ? __ll2double_rd(a) : + __ll2double_rn(a); +} + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ull2double_rz(a) : + mode == cudaRoundPosInf ? __ull2double_ru(a) : + mode == cudaRoundMinInf ? __ull2double_rd(a) : + __ull2double_rn(a); +} + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode) +{ + return (double)a; +} +# 1185 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 +# 2904 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" 1 +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) ; + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.hpp" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) float __fAtomicAdd(float *address, float val); +} +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.hpp" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) +{ + return __fAtomicAdd(address, val); +} +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" 2 +# 2905 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 1 +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) ; +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.hpp" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) long long __illAtomicMin(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __illAtomicMax(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicAnd(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicOr(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicXor(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicMin(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicMax(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicAnd(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicOr (unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicXor(unsigned long long *address, unsigned long long val); +} +# 94 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.hpp" +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) +{ + return __illAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) +{ + return __illAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) +{ + return __llAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) +{ + return __llAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) +{ + return __llAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicXor(address, val); +} +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 2 +# 2906 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" 1 +# 56 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 1 +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" 2 +# 2907 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" 1 +# 325 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.hpp" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) double __dAtomicAdd(double *address, double val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicAdd_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicAdd_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicAdd_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicAdd_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicAdd_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicAdd_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +float __fAtomicAdd_block(float *address, float val); + +extern __attribute__((device)) __attribute__((device_builtin)) +float __fAtomicAdd_system(float *address, float val); + +extern __attribute__((device)) __attribute__((device_builtin)) +double __dAtomicAdd_block(double *address, double val); + +extern __attribute__((device)) __attribute__((device_builtin)) +double __dAtomicAdd_system(double *address, double val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicExch_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicExch_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicExch_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicExch_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicExch_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicExch_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +float __fAtomicExch_block(float *address, float val); + +extern __attribute__((device)) __attribute__((device_builtin)) +float __fAtomicExch_system(float *address, float val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicMin_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicMin_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __illAtomicMin_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __illAtomicMin_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicMin_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicMin_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicMin_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicMin_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicMax_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicMax_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __illAtomicMax_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __illAtomicMax_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicMax_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicMax_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicMax_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicMax_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicInc_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicInc_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicDec_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicDec_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicCAS_block(int *address, int compare, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicCAS_system(int *address, int compare, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicCAS_block(unsigned int *address, unsigned int compare, + unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicCAS_system(unsigned int *address, unsigned int compare, + unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicCAS_block(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicCAS_system(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicAnd_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicAnd_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicAnd_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicAnd_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicAnd_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicAnd_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicAnd_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicAnd_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicOr_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicOr_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicOr_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicOr_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicOr_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicOr_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicOr_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicOr_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicXor_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicXor_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicXor_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicXor_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicXor_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicXor_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicXor_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicXor_system(unsigned long long *address, unsigned long long val); +} +# 326 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" 2 +# 2908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" 1 +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) void __threadfence_system(void); +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rn(double x, double y); +# 139 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rz(double x, double y); +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_ru(double x, double y); +# 179 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rd(double x, double y); +# 194 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rn(double x); +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rz(double x); +# 224 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_ru(double x); +# 239 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rd(double x); +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rn(double x); +# 269 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rz(double x); +# 284 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_ru(double x); +# 299 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rd(double x); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __ballot(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_count(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_and(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_or(int); +extern __attribute__((device)) __attribute__((device_builtin)) long long int clock64(void); +# 314 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rn(float x, float y, float z); +# 323 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rd(float x, float y, float z); +# 332 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_ru(float x, float y, float z); +# 341 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rz(float x, float y, float z); +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 407 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 451 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 539 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 558 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 577 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 596 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 615 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 634 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 653 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 672 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 691 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 709 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 727 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 745 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 763 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 772 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 781 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 790 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 799 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 809 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 829 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 839 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 849 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 859 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 879 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 889 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 944 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 962 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 980 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 998 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1007 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1016 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1025 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); + + +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int ballot(bool pred) ; + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) ; + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) ; + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) ; + + + + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) ; + + + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *ptr) ; + + + + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) ; +# 1140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static __inline__ __attribute__((host)) __attribute__((device)) unsigned short __nv_bswap16(unsigned short in); +static __inline__ __attribute__((host)) __attribute__((device)) unsigned int __nv_bswap32(unsigned int in); +static __inline__ __attribute__((host)) __attribute__((device)) unsigned long long __nv_bswap64(unsigned long long in); +# 1152 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.hpp" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.hpp" +static __inline__ __attribute__((device)) unsigned int ballot(bool pred) +{ + return __ballot((int)pred); +} + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) +{ + return __syncthreads_count((int)pred); +} + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) +{ + return (bool)__syncthreads_and((int)pred); +} + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) +{ + return (bool)__syncthreads_or((int)pred); +} + + +extern "C" { + __attribute__((device)) unsigned __nv_isGlobal_impl(const void *); + __attribute__((device)) unsigned __nv_isShared_impl(const void *); + __attribute__((device)) unsigned __nv_isConstant_impl(const void *); + __attribute__((device)) unsigned __nv_isLocal_impl(const void *); + __attribute__((device)) unsigned __nv_isGridConstant_impl(const void *); +} + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) +{ + return __nv_isGlobal_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) +{ + return __nv_isShared_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) +{ + return __nv_isConstant_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) +{ + return __nv_isLocal_impl(ptr); +} +# 133 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.hpp" +extern "C" { + __attribute__((device)) size_t __nv_cvta_generic_to_global_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_shared_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_constant_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_local_impl(const void *); + __attribute__((device)) void * __nv_cvta_global_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_shared_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_constant_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_local_to_generic_impl(size_t); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *p) +{ + return __nv_cvta_generic_to_global_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *p) +{ + return __nv_cvta_generic_to_shared_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *p) +{ + return __nv_cvta_generic_to_constant_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *p) +{ + return __nv_cvta_generic_to_local_impl(p); +} + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) +{ + return __nv_cvta_global_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) +{ + return __nv_cvta_shared_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) +{ + return __nv_cvta_constant_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) +{ + return __nv_cvta_local_to_generic_impl(rawbits); +} +# 217 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.hpp" +extern "C" { + __attribute__((device)) unsigned short __nv_bswap16_impl(unsigned short); + __attribute__((device)) unsigned int __nv_bswap32_impl(unsigned int); + __attribute__((device)) unsigned long long __nv_bswap64_impl(unsigned long long); +} + +static __inline__ __attribute__((host)) __attribute__((device)) unsigned short __nv_bswap16(unsigned short in) { + return __nv_bswap16_impl(in); +} + +static __inline__ __attribute__((host)) __attribute__((device)) unsigned int __nv_bswap32(unsigned int in) { + return __nv_bswap32_impl(in); +} + +static __inline__ __attribute__((host)) __attribute__((device)) unsigned long long __nv_bswap64(unsigned long long in) { + return __nv_bswap64_impl(in); +} +# 1153 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" 2 +# 2909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" 1 +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +static __attribute__((device)) __inline__ unsigned __fns(unsigned mask, unsigned base, int offset) ; +static __attribute__((device)) __inline__ void __barrier_sync(unsigned id) ; +static __attribute__((device)) __inline__ void __barrier_sync_count(unsigned id, unsigned cnt) ; +static __attribute__((device)) __inline__ void __syncwarp(unsigned mask=0xFFFFFFFF) ; +static __attribute__((device)) __inline__ int __all_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ int __any_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ int __uni_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ unsigned __ballot_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ unsigned __activemask() ; +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl(int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl(unsigned int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_up(int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_up(unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_down(int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_down(unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_xor(int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_xor(unsigned int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl(float var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_up(float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_down(float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_xor(float var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width=32) ; + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl(unsigned long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl(long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_up(long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_down(long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_xor(long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl(double var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_up(double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_down(double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_xor(double var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width=32) ; + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl(long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl(unsigned long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_up(long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_up(unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_down(long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_down(unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_xor(long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_xor(unsigned long var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width=32) ; +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp" +extern "C" +{ +} +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp" +static __attribute__((device)) __inline__ +unsigned __fns(unsigned mask, unsigned base, int offset) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __nvvm_fns(unsigned int mask, unsigned int base, int offset); + return __nvvm_fns(mask, base, offset); +} + +static __attribute__((device)) __inline__ +void __barrier_sync(unsigned id) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_barrier_sync(unsigned id); + return __nvvm_barrier_sync(id); +} + +static __attribute__((device)) __inline__ +void __barrier_sync_count(unsigned id, unsigned cnt) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_barrier_sync_cnt(unsigned id, unsigned cnt); + return __nvvm_barrier_sync_cnt(id, cnt); +} + +static __attribute__((device)) __inline__ +void __syncwarp(unsigned mask) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_bar_warp_sync(unsigned mask); + return __nvvm_bar_warp_sync(mask); +} + +static __attribute__((device)) __inline__ +int __all_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_all_sync(unsigned int mask, int pred); + return __nvvm_vote_all_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +int __any_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_any_sync(unsigned int mask, int pred); + return __nvvm_vote_any_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +int __uni_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_uni_sync(unsigned int mask, int pred); + return __nvvm_vote_uni_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +unsigned __ballot_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __nvvm_vote_ballot_sync(unsigned int mask, int pred); + return __nvvm_vote_ballot_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +unsigned __activemask() { + unsigned ret; + asm volatile ("activemask.b32 %0;" : "=r"(ret)); + return ret; +} + + + + +static __attribute__((device)) __inline__ int __shfl(int var, int srcLane, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.idx.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(srcLane), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl(unsigned int var, int srcLane, int width) { + return (unsigned int) __shfl((int)var, srcLane, width); +} + +static __attribute__((device)) __inline__ int __shfl_up(int var, unsigned int delta, int width) { + int ret; + int c = (32 -width) << 8; + asm volatile ("shfl.up.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_up(unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_up((int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_down(int var, unsigned int delta, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.down.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_down(unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_down((int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_xor(int var, int laneMask, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.bfly.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(laneMask), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_xor(unsigned int var, int laneMask, int width) { + return (unsigned int) __shfl_xor((int)var, laneMask, width); +} + +static __attribute__((device)) __inline__ float __shfl(float var, int srcLane, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.idx.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(srcLane), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_up(float var, unsigned int delta, int width) { + float ret; + int c; + c = (32 -width) << 8; + asm volatile ("shfl.up.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_down(float var, unsigned int delta, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.down.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_xor(float var, int laneMask, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.bfly.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(laneMask), "r"(c)); + return ret; +} + + + +static __attribute__((device)) __inline__ long long __shfl(long long var, int srcLane, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl(hi, srcLane, width); + lo = __shfl(lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl(unsigned long long var, int srcLane, int width) { + return (unsigned long long) __shfl((long long) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long long __shfl_up(long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_up(hi, delta, width); + lo = __shfl_up(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_up((long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_down(long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_down(hi, delta, width); + lo = __shfl_down(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_down((long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_xor(long long var, int laneMask, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_xor(hi, laneMask, width); + lo = __shfl_xor(lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width) { + return (unsigned long long) __shfl_xor((long long) var, laneMask, width); +} + +static __attribute__((device)) __inline__ double __shfl(double var, int srcLane, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl(hi, srcLane, width); + lo = __shfl(lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_up(double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_up(hi, delta, width); + lo = __shfl_up(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_down(double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_down(hi, delta, width); + lo = __shfl_down(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_xor(double var, int laneMask, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_xor(hi, laneMask, width); + lo = __shfl_xor(lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ long __shfl(long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl((long long) var, srcLane, width) : + __shfl((int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl(unsigned long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl((unsigned long long) var, srcLane, width) : + __shfl((unsigned int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long __shfl_up(long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up((long long) var, delta, width) : + __shfl_up((int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_up(unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up((unsigned long long) var, delta, width) : + __shfl_up((unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_down(long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down((long long) var, delta, width) : + __shfl_down((int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_down(unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down((unsigned long long) var, delta, width) : + __shfl_down((unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_xor(long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor((long long) var, laneMask, width) : + __shfl_xor((int) var, laneMask, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_xor(unsigned long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor((unsigned long long) var, laneMask, width) : + __shfl_xor((unsigned int) var, laneMask, width); +} +# 369 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp" +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_idx_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_idx_sync(mask, var, srcLane, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width) { + return (unsigned int) __shfl_sync(mask, (int)var, srcLane, width); +} + +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_up_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = (32 -width) << 8; + ret = __nvvm_shfl_up_sync(mask, var, delta, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_up_sync(mask, (int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_down_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_down_sync(mask, var, delta, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_down_sync(mask, (int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_bfly_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_bfly_sync(mask, var, laneMask, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width) { + return (unsigned int) __shfl_xor_sync(mask, (int)var, laneMask, width); +} + +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_idx_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_idx_sync(mask, __float_as_int(var), srcLane, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_up_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = (32 -width) << 8; + ret = __nvvm_shfl_up_sync(mask, __float_as_int(var), delta, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_down_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_down_sync(mask, __float_as_int(var), delta, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_bfly_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_bfly_sync(mask, __float_as_int(var), laneMask, c); + return __int_as_float(ret); +} + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_sync(mask, hi, srcLane, width); + lo = __shfl_sync(mask, lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width) { + return (unsigned long long) __shfl_sync(mask, (long long) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_up_sync(mask, hi, delta, width); + lo = __shfl_up_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_up_sync(mask, (long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_down_sync(mask, hi, delta, width); + lo = __shfl_down_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_down_sync(mask, (long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_xor_sync(mask, hi, laneMask, width); + lo = __shfl_xor_sync(mask, lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width) { + return (unsigned long long) __shfl_xor_sync(mask, (long long) var, laneMask, width); +} + +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_sync(mask, hi, srcLane, width); + lo = __shfl_sync(mask, lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_up_sync(mask, hi, delta, width); + lo = __shfl_up_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_down_sync(mask, hi, delta, width); + lo = __shfl_down_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_xor_sync(mask, hi, laneMask, width); + lo = __shfl_xor_sync(mask, lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_sync(mask, (long long) var, srcLane, width) : + __shfl_sync(mask, (int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_sync(mask, (unsigned long long) var, srcLane, width) : + __shfl_sync(mask, (unsigned int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up_sync(mask, (long long) var, delta, width) : + __shfl_up_sync(mask, (int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up_sync(mask, (unsigned long long) var, delta, width) : + __shfl_up_sync(mask, (unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down_sync(mask, (long long) var, delta, width) : + __shfl_down_sync(mask, (int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down_sync(mask, (unsigned long long) var, delta, width) : + __shfl_down_sync(mask, (unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor_sync(mask, (long long) var, laneMask, width) : + __shfl_xor_sync(mask, (int) var, laneMask, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor_sync(mask, (unsigned long long) var, laneMask, width) : + __shfl_xor_sync(mask, (unsigned int) var, laneMask, width); +} +# 234 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" 2 +# 2910 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" 1 +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ long __ldg(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldg(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldg(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldg(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) ; + + + + +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldca(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldca(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldca(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) ; +# 465 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 490 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 502 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 512 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" +extern "C" +{ + + +} +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" +static __attribute__((device)) __inline__ long __ldg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.nc.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.nc.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.nc.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.nc.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.nc.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.nc.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.nc.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.nc.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.nc.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.nc.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.nc.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.nc.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.nc.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.nc.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) { float ret; asm volatile ("ld.global.nc.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldg(const double *ptr) { double ret; asm volatile ("ld.global.nc.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) { float2 ret; asm volatile ("ld.global.nc.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) { float4 ret; asm volatile ("ld.global.nc.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) { double2 ret; asm volatile ("ld.global.nc.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.cg.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.cg.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.cg.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cg.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.cg.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.cg.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.cg.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.cg.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.cg.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.cg.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.cg.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.cg.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.cg.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cg.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.cg.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.cg.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.cg.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.cg.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.cg.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.cg.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.cg.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) { float ret; asm volatile ("ld.global.cg.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) { double ret; asm volatile ("ld.global.cg.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) { float2 ret; asm volatile ("ld.global.cg.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) { float4 ret; asm volatile ("ld.global.cg.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) { double2 ret; asm volatile ("ld.global.cg.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) { unsigned long ret; asm volatile ("ld.global.ca.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.ca.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldca(const short *ptr) { unsigned short ret; asm volatile ("ld.global.ca.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldca(const int *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.ca.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.ca.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.ca.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) { short2 ret; asm volatile ("ld.global.ca.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) { short4 ret; asm volatile ("ld.global.ca.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) { int2 ret; asm volatile ("ld.global.ca.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) { int4 ret; asm volatile ("ld.global.ca.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.ca.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.ca.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.ca.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.ca.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.ca.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.ca.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.ca.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.ca.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.ca.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.ca.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.ca.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) { float ret; asm volatile ("ld.global.ca.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldca(const double *ptr) { double ret; asm volatile ("ld.global.ca.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) { float2 ret; asm volatile ("ld.global.ca.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) { float4 ret; asm volatile ("ld.global.ca.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) { double2 ret; asm volatile ("ld.global.ca.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) { unsigned long ret; asm volatile ("ld.global.cs.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.cs.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) { unsigned short ret; asm volatile ("ld.global.cs.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cs.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.cs.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.cs.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) { short2 ret; asm volatile ("ld.global.cs.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) { short4 ret; asm volatile ("ld.global.cs.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) { int2 ret; asm volatile ("ld.global.cs.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) { int4 ret; asm volatile ("ld.global.cs.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.cs.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.cs.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.cs.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cs.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.cs.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.cs.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.cs.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.cs.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.cs.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.cs.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.cs.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) { float ret; asm volatile ("ld.global.cs.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) { double ret; asm volatile ("ld.global.cs.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) { float2 ret; asm volatile ("ld.global.cs.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) { float4 ret; asm volatile ("ld.global.cs.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) { double2 ret; asm volatile ("ld.global.cs.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) { unsigned long ret; asm ("ld.global.lu.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) { unsigned long ret; asm ("ld.global.lu.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) { unsigned int ret; asm ("ld.global.lu.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) { unsigned int ret; asm ("ld.global.lu.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) { unsigned short ret; asm ("ld.global.lu.s16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return (short)ret; } +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) { unsigned int ret; asm ("ld.global.lu.s32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) { unsigned long long ret; asm ("ld.global.lu.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) { char2 ret; int2 tmp; asm ("ld.global.lu.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) { char4 ret; int4 tmp; asm ("ld.global.lu.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) { short2 ret; asm ("ld.global.lu.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) { short4 ret; asm ("ld.global.lu.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) { int2 ret; asm ("ld.global.lu.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) { int4 ret; asm ("ld.global.lu.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) { longlong2 ret; asm ("ld.global.lu.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) { unsigned int ret; asm ("ld.global.lu.u8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) { unsigned short ret; asm ("ld.global.lu.u16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) { unsigned int ret; asm ("ld.global.lu.u32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) { unsigned long long ret; asm ("ld.global.lu.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm ("ld.global.lu.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm ("ld.global.lu.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) { ushort2 ret; asm ("ld.global.lu.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) { ushort4 ret; asm ("ld.global.lu.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) { uint2 ret; asm ("ld.global.lu.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) { uint4 ret; asm ("ld.global.lu.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) { ulonglong2 ret; asm ("ld.global.lu.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) { float ret; asm ("ld.global.lu.f32 %0, [%1];" : "=f"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) { double ret; asm ("ld.global.lu.f64 %0, [%1];" : "=d"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) { float2 ret; asm ("ld.global.lu.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) { float4 ret; asm ("ld.global.lu.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) { double2 ret; asm ("ld.global.lu.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr) : "memory"); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) { unsigned long ret; asm ("ld.global.cv.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) { unsigned long ret; asm ("ld.global.cv.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) { unsigned int ret; asm ("ld.global.cv.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) { unsigned int ret; asm ("ld.global.cv.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) { unsigned short ret; asm ("ld.global.cv.s16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) { unsigned int ret; asm ("ld.global.cv.s32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) { unsigned long long ret; asm ("ld.global.cv.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) { char2 ret; int2 tmp; asm ("ld.global.cv.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) { char4 ret; int4 tmp; asm ("ld.global.cv.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) { short2 ret; asm ("ld.global.cv.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) { short4 ret; asm ("ld.global.cv.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) { int2 ret; asm ("ld.global.cv.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) { int4 ret; asm ("ld.global.cv.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) { longlong2 ret; asm ("ld.global.cv.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) { unsigned int ret; asm ("ld.global.cv.u8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) { unsigned short ret; asm ("ld.global.cv.u16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) { unsigned int ret; asm ("ld.global.cv.u32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) { unsigned long long ret; asm ("ld.global.cv.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm ("ld.global.cv.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm ("ld.global.cv.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) { ushort2 ret; asm ("ld.global.cv.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) { ushort4 ret; asm ("ld.global.cv.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) { uint2 ret; asm ("ld.global.cv.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) { uint4 ret; asm ("ld.global.cv.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) { ulonglong2 ret; asm ("ld.global.cv.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) { float ret; asm ("ld.global.cv.f32 %0, [%1];" : "=f"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) { double ret; asm ("ld.global.cv.f64 %0, [%1];" : "=d"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) { float2 ret; asm ("ld.global.cv.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) { float4 ret; asm ("ld.global.cv.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) { double2 ret; asm ("ld.global.cv.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr) : "memory"); return ret; } + + + + + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) { asm ("st.global.wb.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) { asm ("st.global.wb.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) { asm ("st.global.wb.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) { asm ("st.global.wb.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) { asm ("st.global.wb.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) { asm ("st.global.wb.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) { asm ("st.global.wb.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.wb.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wb.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) { asm ("st.global.wb.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) { asm ("st.global.wb.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) { asm ("st.global.wb.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) { asm ("st.global.wb.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) { asm ("st.global.wb.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) { asm ("st.global.wb.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) { asm ("st.global.wb.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) { asm ("st.global.wb.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) { asm ("st.global.wb.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.wb.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wb.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) { asm ("st.global.wb.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) { asm ("st.global.wb.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) { asm ("st.global.wb.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) { asm ("st.global.wb.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.wb.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) { asm ("st.global.wb.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) { asm ("st.global.wb.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) { asm ("st.global.wb.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) { asm ("st.global.wb.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) { asm ("st.global.wb.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) { asm ("st.global.cg.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) { asm ("st.global.cg.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) { asm ("st.global.cg.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) { asm ("st.global.cg.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) { asm ("st.global.cg.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) { asm ("st.global.cg.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) { asm ("st.global.cg.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.cg.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cg.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) { asm ("st.global.cg.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) { asm ("st.global.cg.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) { asm ("st.global.cg.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) { asm ("st.global.cg.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) { asm ("st.global.cg.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) { asm ("st.global.cg.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) { asm ("st.global.cg.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) { asm ("st.global.cg.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) { asm ("st.global.cg.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.cg.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cg.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) { asm ("st.global.cg.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) { asm ("st.global.cg.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) { asm ("st.global.cg.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) { asm ("st.global.cg.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.cg.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) { asm ("st.global.cg.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) { asm ("st.global.cg.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) { asm ("st.global.cg.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) { asm ("st.global.cg.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) { asm ("st.global.cg.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) { asm ("st.global.cs.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) { asm ("st.global.cs.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) { asm ("st.global.cs.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) { asm ("st.global.cs.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) { asm ("st.global.cs.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) { asm ("st.global.cs.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) { asm ("st.global.cs.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.cs.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cs.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) { asm ("st.global.cs.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) { asm ("st.global.cs.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) { asm ("st.global.cs.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) { asm ("st.global.cs.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) { asm ("st.global.cs.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) { asm ("st.global.cs.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) { asm ("st.global.cs.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) { asm ("st.global.cs.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) { asm ("st.global.cs.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.cs.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cs.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) { asm ("st.global.cs.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) { asm ("st.global.cs.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) { asm ("st.global.cs.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) { asm ("st.global.cs.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.cs.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) { asm ("st.global.cs.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) { asm ("st.global.cs.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) { asm ("st.global.cs.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) { asm ("st.global.cs.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) { asm ("st.global.cs.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) { asm ("st.global.wt.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) { asm ("st.global.wt.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) { asm ("st.global.wt.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) { asm ("st.global.wt.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) { asm ("st.global.wt.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) { asm ("st.global.wt.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) { asm ("st.global.wt.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.wt.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wt.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) { asm ("st.global.wt.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) { asm ("st.global.wt.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) { asm ("st.global.wt.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) { asm ("st.global.wt.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) { asm ("st.global.wt.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) { asm ("st.global.wt.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) { asm ("st.global.wt.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) { asm ("st.global.wt.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) { asm ("st.global.wt.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.wt.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wt.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) { asm ("st.global.wt.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) { asm ("st.global.wt.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) { asm ("st.global.wt.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) { asm ("st.global.wt.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.wt.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) { asm ("st.global.wt.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) { asm ("st.global.wt.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) { asm ("st.global.wt.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) { asm ("st.global.wt.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) { asm ("st.global.wt.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } +# 553 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.l.wrap.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.l.clamp.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} + + +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.r.clamp.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +# 513 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" 2 +# 2911 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_intrinsics.h" 1 +# 2912 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" 1 +# 235 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.hpp" 1 +# 236 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" 2 +# 2913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 1 +# 128 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.hpp" 1 +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 2 +# 2914 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 1 +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.hpp" 1 +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 2 +# 2915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 1 +# 273 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.hpp" 1 +# 274 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 2 +# 2916 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 1 +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.hpp" 1 +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 2 +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" 1 +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template struct __nv_itex_trait { }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +{ + __nv_tex_surf_handler("__itex1Dfetch", ptr, obj, x); +} + +template +static __attribute__((device)) T tex1Dfetch(cudaTextureObject_t texObject, int x) +{ + T ret; + tex1Dfetch(&ret, texObject, x); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1D(T *ptr, cudaTextureObject_t obj, float x) +{ + __nv_tex_surf_handler("__itex1D", ptr, obj, x); +} + + +template +static __attribute__((device)) T tex1D(cudaTextureObject_t texObject, float x) +{ + T ret; + tex1D(&ret, texObject, x); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +{ + __nv_tex_surf_handler("__itex2D", ptr, obj, x, y); +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y) +{ + T ret; + tex2D(&ret, texObject, x, y); + return ret; +} +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + __nv_tex_surf_handler("__itex3D", ptr, obj, x, y, z); +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z) +{ + T ret; + tex3D(&ret, texObject, x, y, z); + return ret; +} +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +{ + __nv_tex_surf_handler("__itex1DLayered", ptr, obj, x, layer); +} + +template +static __attribute__((device)) T tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +{ + T ret; + tex1DLayered(&ret, texObject, x, layer); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +{ + __nv_tex_surf_handler("__itex2DLayered", ptr, obj, x, y, layer); +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +{ + T ret; + tex2DLayered(&ret, texObject, x, y, layer); + return ret; +} +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + __nv_tex_surf_handler("__itexCubemap", ptr, obj, x, y, z); +} + + +template +static __attribute__((device)) T texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +{ + T ret; + texCubemap(&ret, texObject, x, y, z); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +{ + __nv_tex_surf_handler("__itexCubemapLayered", ptr, obj, x, y, z, layer); +} + +template +static __attribute__((device)) T texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +{ + T ret; + texCubemapLayered(&ret, texObject, x, y, z, layer); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +{ + __nv_tex_surf_handler("__itex2Dgather", ptr, obj, x, y, comp); +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +{ + T ret; + tex2Dgather(&ret, to, x, y, comp); + return ret; +} +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +{ + __nv_tex_surf_handler("__itex1DLod", ptr, obj, x, level); +} + +template +static __attribute__((device)) T tex1DLod(cudaTextureObject_t texObject, float x, float level) +{ + T ret; + tex1DLod(&ret, texObject, x, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +{ + __nv_tex_surf_handler("__itex2DLod", ptr, obj, x, y, level); +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +{ + T ret; + tex2DLod(&ret, texObject, x, y, level); + return ret; +} +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + __nv_tex_surf_handler("__itex3DLod", ptr, obj, x, y, z, level); +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + T ret; + tex3DLod(&ret, texObject, x, y, z, level); + return ret; +} +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +{ + __nv_tex_surf_handler("__itex1DLayeredLod", ptr, obj, x, layer, level); +} + +template +static __attribute__((device)) T tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +{ + T ret; + tex1DLayeredLod(&ret, texObject, x, layer, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +{ + __nv_tex_surf_handler("__itex2DLayeredLod", ptr, obj, x, y, layer, level); +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +{ + T ret; + tex2DLayeredLod(&ret, texObject, x, y, layer, level); + return ret; +} +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + __nv_tex_surf_handler("__itexCubemapLod", ptr, obj, x, y, z, level); +} + +template +static __attribute__((device)) T texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + T ret; + texCubemapLod(&ret, texObject, x, y, z, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itexCubemapGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + T ret; + texCubemapGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +{ + __nv_tex_surf_handler("__itexCubemapLayeredLod", ptr, obj, x, y, z, layer, level); +} + +template +static __attribute__((device)) T texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +{ + T ret; + texCubemapLayeredLod(&ret, texObject, x, y, z, layer, level); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +{ + __nv_tex_surf_handler("__itex1DGrad", ptr, obj, x, dPdx, dPdy); +} + +template +static __attribute__((device)) T tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +{ + T ret; + tex1DGrad(&ret, texObject, x, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +{ + __nv_tex_surf_handler("__itex2DGrad_v2", ptr, obj, x, y, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +{ + T ret; + tex2DGrad(&ret, texObject, x, y, dPdx, dPdy); + return ret; +} +# 539 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itex3DGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + T ret; + tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; +} +# 573 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +{ + __nv_tex_surf_handler("__itex1DLayeredGrad", ptr, obj, x, layer, dPdx, dPdy); +} + +template +static __attribute__((device)) T tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +{ + T ret; + tex1DLayeredGrad(&ret, texObject, x, layer, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + __nv_tex_surf_handler("__itex2DLayeredGrad_v2", ptr, obj, x, y, layer, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + T ret; + tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy); + return ret; +} +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itexCubemapLayeredGrad_v2", ptr, obj, x, y, z, layer, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + T ret; + texCubemapLayeredGrad(&ret, texObject, x, y, z, layer, dPdx, dPdy); + return ret; +} +# 2919 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" 1 +# 58 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template struct __nv_isurf_trait { }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1Dread", ptr, obj, x, mode); +} + +template +static __attribute__((device)) T surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf1Dread(&ret, surfObject, x, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2Dread", ptr, obj, x, y, mode); +} + +template +static __attribute__((device)) T surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf2Dread(&ret, surfObject, x, y, boundaryMode); + return ret; +} + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf3Dread", ptr, obj, x, y, z, mode); +} + +template +static __attribute__((device)) T surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf3Dread(&ret, surfObject, x, y, z, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1DLayeredread", ptr, obj, x, layer, mode); +} + +template +static __attribute__((device)) T surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf1DLayeredread(&ret, surfObject, x, layer, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2DLayeredread", ptr, obj, x, y, layer, mode); +} + +template +static __attribute__((device)) T surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf2DLayeredread(&ret, surfObject, x, y, layer, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapread", ptr, obj, x, y, face, mode); +} + +template +static __attribute__((device)) T surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surfCubemapread(&ret, surfObject, x, y, face, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapLayeredread", ptr, obj, x, y, layerface, mode); +} + +template +static __attribute__((device)) T surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surfCubemapLayeredread(&ret, surfObject, x, y, layerface, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1Dwrite_v2", &val, obj, x, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2Dwrite_v2", &val, obj, x, y, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf3Dwrite_v2", &val, obj, x, y, z, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1DLayeredwrite_v2", &val, obj, x, layer, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2DLayeredwrite_v2", &val, obj, x, y, layer, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapwrite_v2", &val, obj, x, y, face, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapLayeredwrite_v2", &val, obj, x, y, layerface, mode); +} +# 2920 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/cudacc_ext.h" 1 +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + + +extern "C" __attribute__((host)) __attribute__((device)) unsigned __cudaPushCallConfiguration(dim3 gridDim, + dim3 blockDim, + size_t sharedMem = 0, + struct CUstream_st *stream = 0); +# 2969 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +enum { + __NV_ATOMIC_RELAXED, + __NV_ATOMIC_CONSUME, + __NV_ATOMIC_ACQUIRE, + __NV_ATOMIC_RELEASE, + __NV_ATOMIC_ACQ_REL, + __NV_ATOMIC_SEQ_CST +}; + +enum { + __NV_THREAD_SCOPE_THREAD, + __NV_THREAD_SCOPE_BLOCK, + __NV_THREAD_SCOPE_CLUSTER, + __NV_THREAD_SCOPE_DEVICE, + __NV_THREAD_SCOPE_SYSTEM +}; +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" 1 +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" +extern "C" { + + +uint3 __attribute__((device_builtin)) extern const threadIdx; +uint3 __attribute__((device_builtin)) extern const blockIdx; +dim3 __attribute__((device_builtin)) extern const blockDim; +dim3 __attribute__((device_builtin)) extern const gridDim; +int __attribute__((device_builtin)) extern const warpSize; + + + + +} +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 1 3 +# 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 + +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace rel_ops + { +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 99 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + } + + +} +# 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + template + class initializer_list + { + public: + typedef _E value_type; + typedef const _E& reference; + typedef const _E& const_reference; + typedef size_t size_type; + typedef const _E* iterator; + typedef const _E* const_iterator; + + private: + iterator _M_array; + size_type _M_len; + + + constexpr initializer_list(const_iterator __a, size_type __l) + : _M_array(__a), _M_len(__l) { } + + public: + constexpr initializer_list() noexcept + : _M_array(0), _M_len(0) { } + + + constexpr size_type + size() const noexcept { return _M_len; } + + + constexpr const_iterator + begin() const noexcept { return _M_array; } + + + constexpr const_iterator + end() const noexcept { return begin() + size(); } + }; + + + + + + + + template + constexpr const _Tp* + begin(initializer_list<_Tp> __ils) noexcept + { return __ils.begin(); } + + + + + + + + template + constexpr const _Tp* + end(initializer_list<_Tp> __ils) noexcept + { return __ils.end(); } +} +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 +# 96 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 97 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template + + inline _Tp + exchange(_Tp& __obj, _Up&& __new_val) + noexcept(__and_, + is_nothrow_assignable<_Tp&, _Up>>::value) + { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } + + + + template + [[nodiscard]] + constexpr add_const_t<_Tp>& + as_const(_Tp& __t) noexcept + { return __t; } + + template + void as_const(const _Tp&&) = delete; +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 + +} +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" + +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernel( + T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + void (*kernel)(ExpTypes...), + ActTypes &&... args +) +{ + return [&](ExpTypes... coercedArgs){ + void *pArgs[] = { &coercedArgs... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); + }(std::forward(args)...); +} +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + const cudaKernel_t kernel, + ActTypes &&... args +) +{ + void *pArgs[] = { &args... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); +} +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel( + T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 454 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaEventCreate( + cudaEvent_t *event, + unsigned int flags +) +{ + return ::cudaEventCreateWithFlags(event, flags); +} +# 498 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaGraphInstantiate( + cudaGraphExec_t *pGraphExec, + cudaGraph_t graph, + cudaGraphNode_t *pErrorNode, + char *pLogBuffer, + size_t bufferSize +) +{ + (void)pErrorNode; + (void)pLogBuffer; + (void)bufferSize; + return ::cudaGraphInstantiate(pGraphExec, graph, 0); +} +# 569 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + void **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc(ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostAlloc( + T **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostGetDevicePointer( + T **pDevice, + void *pHost, + unsigned int flags +) +{ + return ::cudaHostGetDevicePointer((void**)(void*)pDevice, pHost, flags); +} +# 698 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocManaged( + T **devPtr, + size_t size, + unsigned int flags = 0x01 +) +{ + return ::cudaMallocManaged((void**)(void*)devPtr, size, flags); +} +# 716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +cudaError_t cudaMemAdvise( + T *devPtr, + size_t count, + enum cudaMemoryAdvise advice, + struct cudaMemLocation location +) +{ + return ::cudaMemAdvise_v2((const void *)devPtr, count, advice, location); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMemPrefetchAsync( + T *devPtr, + size_t count, + struct cudaMemLocation location, + unsigned int flags, + cudaStream_t stream = 0 +) +{ + return ::cudaMemPrefetchAsync_v2((const void *)devPtr, count, location, flags, stream); +} +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaStreamAttachMemAsync( + cudaStream_t stream, + T *devPtr, + size_t length = 0, + unsigned int flags = 0x04 +) +{ + return ::cudaStreamAttachMemAsync(stream, (void*)devPtr, length, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMalloc( + T **devPtr, + size_t size +) +{ + return ::cudaMalloc((void**)(void*)devPtr, size); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + T **ptr, + size_t size, + unsigned int flags = 0 +) +{ + return cudaMallocHost((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocPitch( + T **devPtr, + size_t *pitch, + size_t width, + size_t height +) +{ + return ::cudaMallocPitch((void**)(void*)devPtr, pitch, width, height); +} +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + void **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaStream_t stream +) +{ + return ::cudaMallocAsync((void**)(void*)ptr, size, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocFromPoolAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyBatchAsync( + T **dsts, U **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes *attrs, + size_t *attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t hStream +) +{ + return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, attrs, attrsIdxs, numAttrs, failIdx, hStream); +} +# 938 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyBatchAsync( + T **dsts, U **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes attr, size_t *failIdx, cudaStream_t hStream +) +{ + size_t attrsIdxs = 0; + return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, &attr, &attrsIdxs, 1, failIdx, hStream); +} +# 984 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbol( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice +) +{ + return ::cudaMemcpyToSymbol((const void*)&symbol, src, count, offset, kind); +} +# 1038 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyToSymbolAsync((const void*)&symbol, src, count, offset, kind, stream); +} +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbol( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost +) +{ + return ::cudaMemcpyFromSymbol(dst, (const void*)&symbol, count, offset, kind); +} +# 1140 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyFromSymbolAsync(dst, (const void*)&symbol, count, offset, kind, stream); +} +# 1209 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void*)&symbol, src, count, offset, kind); +} +# 1280 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void*)&symbol, count, offset, kind); +} +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void*)&symbol, src, count, offset, kind); +} +# 1379 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void*)&symbol, count, offset, kind); +} +# 1437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void*)&symbol, src, count, offset, kind); +} +# 1496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void*)&symbol, count, offset, kind); +} + + +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, enum cudaGraphExecUpdateResult *updateResult_out) +{ + cudaGraphExecUpdateResultInfo resultInfo; + cudaError_t status = cudaGraphExecUpdate(hGraphExec, hGraph, &resultInfo); + if (hErrorNode_out) { + *hErrorNode_out = resultInfo.errorNode; + } + if (updateResult_out) { + *updateResult_out = resultInfo.result; + } + return status; +} +# 1549 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + unsigned int flags) +{ + return ::cudaUserObjectCreate( + object_out, + objectToWrap, + [](void *vpObj) { delete reinterpret_cast(vpObj); }, + initialRefcount, + flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + cudaUserObjectFlags flags) +{ + return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned int)flags); +} +# 1599 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolAddress( + void **devPtr, + const T &symbol +) +{ + return ::cudaGetSymbolAddress(devPtr, (const void*)&symbol); +} +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolSize( + size_t *size, + const T &symbol +) +{ + return ::cudaGetSymbolSize(size, (const void*)&symbol); +} +# 1683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetCacheConfig( + T *func, + enum cudaFuncCache cacheConfig +) +{ + return ::cudaFuncSetCacheConfig((const void*)func, cacheConfig); +} + +template +static __inline__ +__attribute__((deprecated)) +__attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig( + T *func, + enum cudaSharedMemConfig config +) +{ + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + + + + return ::cudaFuncSetSharedMemConfig((const void*)func, config); + +#pragma GCC diagnostic pop + +} +# 1743 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, 0x00); +} +# 1796 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize, + unsigned int flags) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, flags); +} + + + + +class __cudaOccupancyB2DHelper { + size_t n; +public: + inline __attribute__((host)) __attribute__((device)) __cudaOccupancyB2DHelper(size_t n_) : n(n_) {} + inline __attribute__((host)) __attribute__((device)) size_t operator()(int) + { + return n; + } +}; +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + cudaError_t status; + + + int device; + struct cudaFuncAttributes attr; + + + int maxThreadsPerMultiProcessor; + int warpSize; + int devMaxThreadsPerBlock; + int multiProcessorCount; + int funcMaxThreadsPerBlock; + int occupancyLimit; + int granularity; + + + int maxBlockSize = 0; + int numBlocks = 0; + int maxOccupancy = 0; + + + int blockSizeToTryAligned; + int blockSizeToTry; + int blockSizeLimitAligned; + int occupancyInBlocks; + int occupancyInThreads; + size_t dynamicSMemSize; + + + + + + if (!minGridSize || !blockSize || !func) { + return cudaErrorInvalidValue; + } + + + + + + status = ::cudaGetDevice(&device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &maxThreadsPerMultiProcessor, + cudaDevAttrMaxThreadsPerMultiProcessor, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &warpSize, + cudaDevAttrWarpSize, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &devMaxThreadsPerBlock, + cudaDevAttrMaxThreadsPerBlock, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &multiProcessorCount, + cudaDevAttrMultiProcessorCount, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaFuncGetAttributes(&attr, func); + if (status != cudaSuccess) { + return status; + } + + funcMaxThreadsPerBlock = attr.maxThreadsPerBlock; + + + + + + occupancyLimit = maxThreadsPerMultiProcessor; + granularity = warpSize; + + if (blockSizeLimit == 0) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (devMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (funcMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = funcMaxThreadsPerBlock; + } + + blockSizeLimitAligned = ((blockSizeLimit + (granularity - 1)) / granularity) * granularity; + + for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { + + + + if (blockSizeLimit < blockSizeToTryAligned) { + blockSizeToTry = blockSizeLimit; + } else { + blockSizeToTry = blockSizeToTryAligned; + } + + dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); + + status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + &occupancyInBlocks, + func, + blockSizeToTry, + dynamicSMemSize, + flags); + + if (status != cudaSuccess) { + return status; + } + + occupancyInThreads = blockSizeToTry * occupancyInBlocks; + + if (occupancyInThreads > maxOccupancy) { + maxBlockSize = blockSizeToTry; + numBlocks = occupancyInBlocks; + maxOccupancy = occupancyInThreads; + } + + + + if (occupancyLimit == maxOccupancy) { + break; + } + } + + + + + + + + *minGridSize = numBlocks * multiProcessorCount; + *blockSize = maxBlockSize; + + return status; +} +# 2062 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMem( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0x00); +} +# 2108 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSize( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, 0x00); +} +# 2147 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock( + size_t *dynamicSmemSize, + T *func, + int numBlocks, + int blockSize) +{ + return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void*)func, numBlocks, blockSize); +} +# 2206 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeWithFlags( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, flags); +} +# 2251 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxPotentialClusterSize( + int *clusterSize, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void*)func, config); +} +# 2295 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveClusters( + int *numClusters, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxActiveClusters(numClusters, (const void*)func, config); +} +# 2336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetAttributes( + struct cudaFuncAttributes *attr, + T *entry +) +{ + return ::cudaFuncGetAttributes(attr, (const void*)entry); +} +# 2402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetAttribute( + T *func, + enum cudaFuncAttribute attr, + int value +) +{ + return ::cudaFuncSetAttribute((const void*)func, attr, value); +} +# 2435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetName( + const char **name, + T *func +) +{ + return ::cudaFuncGetName(name, (const void *)func); +} +# 2458 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetKernel( + cudaKernel_t *kernelPtr, + T *func +) +{ + return ::cudaGetKernel(kernelPtr, (const void *)func); +} +# 2496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetGlobal(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +{ + return ::cudaLibraryGetGlobal((void**)(void*)dptr, bytes, library, name); +} +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetManaged(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +{ + return ::cudaLibraryGetManaged((void**)(void*)dptr, bytes, library, name); +} +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetUnifiedFunction(T **fptr, cudaLibrary_t library, const char *symbol) +{ + return ::cudaLibraryGetUnifiedFunction((void**)(void*)fptr, library, symbol); +} +# 2576 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 0 "" 2 +# 1 "CMakeCUDACompilerId.cu" +# 477 "CMakeCUDACompilerId.cu" +char const* info_compiler = "INFO" ":" "compiler[" "NVIDIA" "]"; + +char const* info_simulate = "INFO" ":" "simulate[" "GNU" "]"; +# 790 "CMakeCUDACompilerId.cu" +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((12) / 10000000)%10)), ('0' + (((12) / 1000000)%10)), ('0' + (((12) / 100000)%10)), ('0' + (((12) / 10000)%10)), ('0' + (((12) / 1000)%10)), ('0' + (((12) / 100)%10)), ('0' + (((12) / 10)%10)), ('0' + ((12) % 10)), + + '.', ('0' + (((8) / 10000000)%10)), ('0' + (((8) / 1000000)%10)), ('0' + (((8) / 100000)%10)), ('0' + (((8) / 10000)%10)), ('0' + (((8) / 1000)%10)), ('0' + (((8) / 100)%10)), ('0' + (((8) / 10)%10)), ('0' + ((8) % 10)), + + '.', ('0' + (((93) / 10000000)%10)), ('0' + (((93) / 1000000)%10)), ('0' + (((93) / 100000)%10)), ('0' + (((93) / 10000)%10)), ('0' + (((93) / 1000)%10)), ('0' + (((93) / 100)%10)), ('0' + (((93) / 10)%10)), ('0' + ((93) % 10)), + + + + + + ']','\0'}; +# 819 "CMakeCUDACompilerId.cu" +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + ('0' + (((14) / 10000000)%10)), ('0' + (((14) / 1000000)%10)), ('0' + (((14) / 100000)%10)), ('0' + (((14) / 10000)%10)), ('0' + (((14) / 1000)%10)), ('0' + (((14) / 100)%10)), ('0' + (((14) / 10)%10)), ('0' + ((14) % 10)), + + '.', ('0' + (((2) / 10000000)%10)), ('0' + (((2) / 1000000)%10)), ('0' + (((2) / 100000)%10)), ('0' + (((2) / 10000)%10)), ('0' + (((2) / 1000)%10)), ('0' + (((2) / 100)%10)), ('0' + (((2) / 10)%10)), ('0' + ((2) % 10)), + + + + + + + + ']','\0'}; + + + + + + +char const* info_platform = "INFO" ":" "platform[" "Linux" "]"; +char const* info_arch = "INFO" ":" "arch[" "]"; + + + + +char const* info_host_compiler = "INFO" ":" "host_compiler[" "GNU" "]"; + + + + +char const info_host_compiler_version[] = { + 'I', 'N', 'F', 'O', ':','h','o','s','t','_', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((14) / 10000000)%10)), ('0' + (((14) / 1000000)%10)), ('0' + (((14) / 100000)%10)), ('0' + (((14) / 10000)%10)), ('0' + (((14) / 1000)%10)), ('0' + (((14) / 100)%10)), ('0' + (((14) / 10)%10)), ('0' + ((14) % 10)), + + '.', ('0' + (((2) / 10000000)%10)), ('0' + (((2) / 1000000)%10)), ('0' + (((2) / 100000)%10)), ('0' + (((2) / 10000)%10)), ('0' + (((2) / 1000)%10)), ('0' + (((2) / 100)%10)), ('0' + (((2) / 10)%10)), ('0' + ((2) % 10)), + + '.', ('0' + (((1) / 10000000)%10)), ('0' + (((1) / 1000000)%10)), ('0' + (((1) / 100000)%10)), ('0' + (((1) / 10000)%10)), ('0' + (((1) / 1000)%10)), ('0' + (((1) / 100)%10)), ('0' + (((1) / 10)%10)), ('0' + ((1) % 10)), + + + + + + ']','\0'}; +# 882 "CMakeCUDACompilerId.cu" +const char* info_language_standard_default = "INFO" ":" "standard_default[" + + + + + + + + "17" + + + + + + + +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" + + + "ON" + + + +"]"; + + + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + + require += info_version[argc]; + + + require += info_simulate[argc]; + + + require += info_simulate_version[argc]; + + + require += info_host_compiler[argc]; + + + require += info_host_compiler_version[argc]; + + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii new file mode 100644 index 0000000..1a04387 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii @@ -0,0 +1,34363 @@ +# 0 "CMakeCUDACompilerId.cu" +# 0 "" +# 0 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 0 "" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic push + + +#pragma GCC diagnostic ignored "-Wunused-function" +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" 1 +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" +# 1 "/usr/include/features.h" 1 3 4 +# 415 "/usr/include/features.h" 3 4 +# 1 "/usr/include/features-time64.h" 1 3 4 +# 20 "/usr/include/features-time64.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 21 "/usr/include/features-time64.h" 2 3 4 +# 1 "/usr/include/bits/timesize.h" 1 3 4 +# 19 "/usr/include/bits/timesize.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/bits/timesize.h" 2 3 4 +# 22 "/usr/include/features-time64.h" 2 3 4 +# 416 "/usr/include/features.h" 2 3 4 +# 524 "/usr/include/features.h" 3 4 +# 1 "/usr/include/sys/cdefs.h" 1 3 4 +# 730 "/usr/include/sys/cdefs.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 731 "/usr/include/sys/cdefs.h" 2 3 4 +# 1 "/usr/include/bits/long-double.h" 1 3 4 +# 732 "/usr/include/sys/cdefs.h" 2 3 4 +# 525 "/usr/include/features.h" 2 3 4 +# 548 "/usr/include/features.h" 3 4 +# 1 "/usr/include/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/gnu/stubs.h" 3 4 +# 1 "/usr/include/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/gnu/stubs.h" 2 3 4 +# 549 "/usr/include/features.h" 2 3 4 +# 217 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" 2 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 56 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 1 +# 59 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 64 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" +# 1 "/usr/include/ctype.h" 1 3 4 +# 26 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/types.h" 1 3 4 +# 27 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/bits/types.h" 2 3 4 +# 1 "/usr/include/bits/timesize.h" 1 3 4 +# 19 "/usr/include/bits/timesize.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/bits/timesize.h" 2 3 4 +# 29 "/usr/include/bits/types.h" 2 3 4 + + + +# 31 "/usr/include/bits/types.h" 3 4 +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; + + + + + + +typedef __int8_t __int_least8_t; +typedef __uint8_t __uint_least8_t; +typedef __int16_t __int_least16_t; +typedef __uint16_t __uint_least16_t; +typedef __int32_t __int_least32_t; +typedef __uint32_t __uint_least32_t; +typedef __int64_t __int_least64_t; +typedef __uint64_t __uint_least64_t; + + + +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; + + + + + + + +typedef long int __intmax_t; +typedef unsigned long int __uintmax_t; +# 141 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/typesizes.h" 1 3 4 +# 142 "/usr/include/bits/types.h" 2 3 4 +# 1 "/usr/include/bits/time64.h" 1 3 4 +# 143 "/usr/include/bits/types.h" 2 3 4 + + +typedef unsigned long int __dev_t; +typedef unsigned int __uid_t; +typedef unsigned int __gid_t; +typedef unsigned long int __ino_t; +typedef unsigned long int __ino64_t; +typedef unsigned int __mode_t; +typedef unsigned long int __nlink_t; +typedef long int __off_t; +typedef long int __off64_t; +typedef int __pid_t; +typedef struct { int __val[2]; } __fsid_t; +typedef long int __clock_t; +typedef unsigned long int __rlim_t; +typedef unsigned long int __rlim64_t; +typedef unsigned int __id_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef long int __suseconds_t; +typedef long int __suseconds64_t; + +typedef int __daddr_t; +typedef int __key_t; + + +typedef int __clockid_t; + + +typedef void * __timer_t; + + +typedef long int __blksize_t; + + + + +typedef long int __blkcnt_t; +typedef long int __blkcnt64_t; + + +typedef unsigned long int __fsblkcnt_t; +typedef unsigned long int __fsblkcnt64_t; + + +typedef unsigned long int __fsfilcnt_t; +typedef unsigned long int __fsfilcnt64_t; + + +typedef long int __fsword_t; + +typedef long int __ssize_t; + + +typedef long int __syscall_slong_t; + +typedef unsigned long int __syscall_ulong_t; + + + +typedef __off64_t __loff_t; +typedef char *__caddr_t; + + +typedef long int __intptr_t; + + +typedef unsigned int __socklen_t; + + + + +typedef int __sig_atomic_t; +# 27 "/usr/include/ctype.h" 2 3 4 + +extern "C" { +# 39 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/endian.h" 1 3 4 +# 35 "/usr/include/bits/endian.h" 3 4 +# 1 "/usr/include/bits/endianness.h" 1 3 4 +# 36 "/usr/include/bits/endian.h" 2 3 4 +# 40 "/usr/include/ctype.h" 2 3 4 + + + + + + +enum +{ + _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), + _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), + _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), + _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), + _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), + _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), + _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), + _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), + _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), + _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), + _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), + _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) +}; +# 79 "/usr/include/ctype.h" 3 4 +extern const unsigned short int **__ctype_b_loc (void) + noexcept (true) __attribute__ ((__const__)); +extern const __int32_t **__ctype_tolower_loc (void) + noexcept (true) __attribute__ ((__const__)); +extern const __int32_t **__ctype_toupper_loc (void) + noexcept (true) __attribute__ ((__const__)); +# 108 "/usr/include/ctype.h" 3 4 +extern int isalnum (int) noexcept (true); +extern int isalpha (int) noexcept (true); +extern int iscntrl (int) noexcept (true); +extern int isdigit (int) noexcept (true); +extern int islower (int) noexcept (true); +extern int isgraph (int) noexcept (true); +extern int isprint (int) noexcept (true); +extern int ispunct (int) noexcept (true); +extern int isspace (int) noexcept (true); +extern int isupper (int) noexcept (true); +extern int isxdigit (int) noexcept (true); + + + +extern int tolower (int __c) noexcept (true); + + +extern int toupper (int __c) noexcept (true); + + + + +extern int isblank (int) noexcept (true); + + + + +extern int isctype (int __c, int __mask) noexcept (true); + + + + + + +extern int isascii (int __c) noexcept (true); + + + +extern int toascii (int __c) noexcept (true); + + + +extern int _toupper (int) noexcept (true); +extern int _tolower (int) noexcept (true); +# 237 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/types/locale_t.h" 1 3 4 +# 22 "/usr/include/bits/types/locale_t.h" 3 4 +# 1 "/usr/include/bits/types/__locale_t.h" 1 3 4 +# 27 "/usr/include/bits/types/__locale_t.h" 3 4 +struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +}; + +typedef struct __locale_struct *__locale_t; +# 23 "/usr/include/bits/types/locale_t.h" 2 3 4 + +typedef __locale_t locale_t; +# 238 "/usr/include/ctype.h" 2 3 4 +# 251 "/usr/include/ctype.h" 3 4 +extern int isalnum_l (int, locale_t) noexcept (true); +extern int isalpha_l (int, locale_t) noexcept (true); +extern int iscntrl_l (int, locale_t) noexcept (true); +extern int isdigit_l (int, locale_t) noexcept (true); +extern int islower_l (int, locale_t) noexcept (true); +extern int isgraph_l (int, locale_t) noexcept (true); +extern int isprint_l (int, locale_t) noexcept (true); +extern int ispunct_l (int, locale_t) noexcept (true); +extern int isspace_l (int, locale_t) noexcept (true); +extern int isupper_l (int, locale_t) noexcept (true); +extern int isxdigit_l (int, locale_t) noexcept (true); + +extern int isblank_l (int, locale_t) noexcept (true); + + + +extern int __tolower_l (int __c, locale_t __l) noexcept (true); +extern int tolower_l (int __c, locale_t __l) noexcept (true); + + +extern int __toupper_l (int __c, locale_t __l) noexcept (true); +extern int toupper_l (int __c, locale_t __l) noexcept (true); +# 327 "/usr/include/ctype.h" 3 4 +} +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 2 +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 2 +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" + +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +enum __attribute__((device_builtin)) cudaRoundMode +{ + cudaRoundNearest, + cudaRoundZero, + cudaRoundPosInf, + cudaRoundMinInf +}; +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 1 +# 59 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" 1 +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 66 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" 2 +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) char1 +{ + signed char x; +}; + +struct __attribute__((device_builtin)) uchar1 +{ + unsigned char x; +}; + + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) char2 +{ + signed char x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) uchar2 +{ + unsigned char x, y; +}; + +struct __attribute__((device_builtin)) char3 +{ + signed char x, y, z; +}; + +struct __attribute__((device_builtin)) uchar3 +{ + unsigned char x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) char4 +{ + signed char x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) uchar4 +{ + unsigned char x, y, z, w; +}; + +struct __attribute__((device_builtin)) short1 +{ + short x; +}; + +struct __attribute__((device_builtin)) ushort1 +{ + unsigned short x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) short2 +{ + short x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) ushort2 +{ + unsigned short x, y; +}; + +struct __attribute__((device_builtin)) short3 +{ + short x, y, z; +}; + +struct __attribute__((device_builtin)) ushort3 +{ + unsigned short x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) short4 { short x; short y; short z; short w; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; + +struct __attribute__((device_builtin)) int1 +{ + int x; +}; + +struct __attribute__((device_builtin)) uint1 +{ + unsigned int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) int2 { int x; int y; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) uint2 { unsigned int x; unsigned int y; }; + +struct __attribute__((device_builtin)) int3 +{ + int x, y, z; +}; + +struct __attribute__((device_builtin)) uint3 +{ + unsigned int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) int4 +{ + int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) uint4 +{ + unsigned int x, y, z, w; +}; + +struct __attribute__((device_builtin)) long1 +{ + long int x; +}; + +struct __attribute__((device_builtin)) ulong1 +{ + unsigned long x; +}; + + + + + + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(long int)))) long2 +{ + long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(unsigned long int)))) ulong2 +{ + unsigned long int x, y; +}; + + + +struct __attribute__((device_builtin)) long3 +{ + long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulong3 +{ + unsigned long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) long4 +{ + long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulong4 +{ + unsigned long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) float1 +{ + float x; +}; +# 280 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) __attribute__((aligned(8))) float2 { float x; float y; }; + + + + +struct __attribute__((device_builtin)) float3 +{ + float x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) float4 +{ + float x, y, z, w; +}; + +struct __attribute__((device_builtin)) longlong1 +{ + long long int x; +}; + +struct __attribute__((device_builtin)) ulonglong1 +{ + unsigned long long int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong2 +{ + long long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong2 +{ + unsigned long long int x, y; +}; + +struct __attribute__((device_builtin)) longlong3 +{ + long long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulonglong3 +{ + unsigned long long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong4 +{ + long long int x, y, z ,w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong4 +{ + unsigned long long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) double1 +{ + double x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double2 +{ + double x, y; +}; + +struct __attribute__((device_builtin)) double3 +{ + double x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double4 +{ + double x, y, z, w; +}; +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +typedef __attribute__((device_builtin)) struct char1 char1; +typedef __attribute__((device_builtin)) struct uchar1 uchar1; +typedef __attribute__((device_builtin)) struct char2 char2; +typedef __attribute__((device_builtin)) struct uchar2 uchar2; +typedef __attribute__((device_builtin)) struct char3 char3; +typedef __attribute__((device_builtin)) struct uchar3 uchar3; +typedef __attribute__((device_builtin)) struct char4 char4; +typedef __attribute__((device_builtin)) struct uchar4 uchar4; +typedef __attribute__((device_builtin)) struct short1 short1; +typedef __attribute__((device_builtin)) struct ushort1 ushort1; +typedef __attribute__((device_builtin)) struct short2 short2; +typedef __attribute__((device_builtin)) struct ushort2 ushort2; +typedef __attribute__((device_builtin)) struct short3 short3; +typedef __attribute__((device_builtin)) struct ushort3 ushort3; +typedef __attribute__((device_builtin)) struct short4 short4; +typedef __attribute__((device_builtin)) struct ushort4 ushort4; +typedef __attribute__((device_builtin)) struct int1 int1; +typedef __attribute__((device_builtin)) struct uint1 uint1; +typedef __attribute__((device_builtin)) struct int2 int2; +typedef __attribute__((device_builtin)) struct uint2 uint2; +typedef __attribute__((device_builtin)) struct int3 int3; +typedef __attribute__((device_builtin)) struct uint3 uint3; +typedef __attribute__((device_builtin)) struct int4 int4; +typedef __attribute__((device_builtin)) struct uint4 uint4; +typedef __attribute__((device_builtin)) struct long1 long1; +typedef __attribute__((device_builtin)) struct ulong1 ulong1; +typedef __attribute__((device_builtin)) struct long2 long2; +typedef __attribute__((device_builtin)) struct ulong2 ulong2; +typedef __attribute__((device_builtin)) struct long3 long3; +typedef __attribute__((device_builtin)) struct ulong3 ulong3; +typedef __attribute__((device_builtin)) struct long4 long4; +typedef __attribute__((device_builtin)) struct ulong4 ulong4; +typedef __attribute__((device_builtin)) struct float1 float1; +typedef __attribute__((device_builtin)) struct float2 float2; +typedef __attribute__((device_builtin)) struct float3 float3; +typedef __attribute__((device_builtin)) struct float4 float4; +typedef __attribute__((device_builtin)) struct longlong1 longlong1; +typedef __attribute__((device_builtin)) struct ulonglong1 ulonglong1; +typedef __attribute__((device_builtin)) struct longlong2 longlong2; +typedef __attribute__((device_builtin)) struct ulonglong2 ulonglong2; +typedef __attribute__((device_builtin)) struct longlong3 longlong3; +typedef __attribute__((device_builtin)) struct ulonglong3 ulonglong3; +typedef __attribute__((device_builtin)) struct longlong4 longlong4; +typedef __attribute__((device_builtin)) struct ulonglong4 ulonglong4; +typedef __attribute__((device_builtin)) struct double1 double1; +typedef __attribute__((device_builtin)) struct double2 double2; +typedef __attribute__((device_builtin)) struct double3 double3; +typedef __attribute__((device_builtin)) struct double4 double4; +# 426 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) dim3 +{ + unsigned int x, y, z; + + + __attribute__((host)) __attribute__((device)) constexpr dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {} + __attribute__((host)) __attribute__((device)) constexpr dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {} + __attribute__((host)) __attribute__((device)) constexpr operator uint3(void) const { return uint3{x, y, z}; } + + + + + + +}; + +typedef __attribute__((device_builtin)) struct dim3 dim3; +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 1 3 4 +# 210 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 26 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/limits.h" 2 3 4 +# 195 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/posix1_lim.h" 1 3 4 +# 27 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 161 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/bits/local_lim.h" 2 3 4 +# 81 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/bits/pthread_stack_min-dynamic.h" 1 3 4 +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 + +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 +extern "C" { +extern long int __sysconf (int __name) noexcept (true); +} +# 82 "/usr/include/bits/local_lim.h" 2 3 4 +# 162 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 196 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/posix2_lim.h" 1 3 4 +# 200 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/xopen_lim.h" 1 3 4 +# 64 "/usr/include/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/bits/uio_lim.h" 1 3 4 +# 65 "/usr/include/bits/xopen_lim.h" 2 3 4 +# 204 "/usr/include/limits.h" 2 3 4 +# 211 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 2 3 4 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 425 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef struct { + long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); + long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); +# 436 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum __attribute__((device_builtin)) cudaError +{ + + + + + + cudaSuccess = 0, + + + + + + cudaErrorInvalidValue = 1, + + + + + + cudaErrorMemoryAllocation = 2, + + + + + + cudaErrorInitializationError = 3, + + + + + + + cudaErrorCudartUnloading = 4, + + + + + + + cudaErrorProfilerDisabled = 5, + + + + + + + + cudaErrorProfilerNotInitialized = 6, + + + + + + + cudaErrorProfilerAlreadyStarted = 7, + + + + + + + cudaErrorProfilerAlreadyStopped = 8, + + + + + + + + cudaErrorInvalidConfiguration = 9, + + + + + + cudaErrorInvalidPitchValue = 12, + + + + + + cudaErrorInvalidSymbol = 13, + + + + + + + + cudaErrorInvalidHostPointer = 16, + + + + + + + + cudaErrorInvalidDevicePointer = 17, + + + + + cudaErrorInvalidTexture = 18, + + + + + + cudaErrorInvalidTextureBinding = 19, + + + + + + + cudaErrorInvalidChannelDescriptor = 20, + + + + + + cudaErrorInvalidMemcpyDirection = 21, +# 336 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorAddressOfConstant = 22, +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorTextureFetchFailed = 23, +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorTextureNotBound = 24, +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSynchronizationError = 25, + + + + + cudaErrorInvalidFilterSetting = 26, + + + + + + cudaErrorInvalidNormSetting = 27, + + + + + + + + cudaErrorMixedDeviceExecution = 28, + + + + + + + + cudaErrorNotYetImplemented = 31, +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorMemoryValueTooLarge = 32, + + + + + + cudaErrorStubLibrary = 34, + + + + + + + cudaErrorInsufficientDriver = 35, + + + + + + + cudaErrorCallRequiresNewerDriver = 36, + + + + + + cudaErrorInvalidSurface = 37, + + + + + + cudaErrorDuplicateVariableName = 43, + + + + + + cudaErrorDuplicateTextureName = 44, + + + + + + cudaErrorDuplicateSurfaceName = 45, +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorDevicesUnavailable = 46, +# 466 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorIncompatibleDriverContext = 49, + + + + + + cudaErrorMissingConfiguration = 52, +# 481 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorPriorLaunchFailure = 53, + + + + + + cudaErrorLaunchMaxDepthExceeded = 65, + + + + + + + + cudaErrorLaunchFileScopedTex = 66, + + + + + + + + cudaErrorLaunchFileScopedSurf = 67, +# 519 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSyncDepthExceeded = 68, +# 531 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchPendingCountExceeded = 69, + + + + + + cudaErrorInvalidDeviceFunction = 98, + + + + + + cudaErrorNoDevice = 100, + + + + + + + cudaErrorInvalidDevice = 101, + + + + + cudaErrorDeviceNotLicensed = 102, +# 564 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSoftwareValidityNotEstablished = 103, + + + + + cudaErrorStartupFailure = 127, + + + + + cudaErrorInvalidKernelImage = 200, +# 584 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorDeviceUninitialized = 201, + + + + + cudaErrorMapBufferObjectFailed = 205, + + + + + cudaErrorUnmapBufferObjectFailed = 206, + + + + + + cudaErrorArrayIsMapped = 207, + + + + + cudaErrorAlreadyMapped = 208, + + + + + + + + cudaErrorNoKernelImageForDevice = 209, + + + + + cudaErrorAlreadyAcquired = 210, + + + + + cudaErrorNotMapped = 211, + + + + + + cudaErrorNotMappedAsArray = 212, + + + + + + cudaErrorNotMappedAsPointer = 213, + + + + + + cudaErrorECCUncorrectable = 214, + + + + + + cudaErrorUnsupportedLimit = 215, + + + + + + cudaErrorDeviceAlreadyInUse = 216, + + + + + + cudaErrorPeerAccessUnsupported = 217, + + + + + + cudaErrorInvalidPtx = 218, + + + + + cudaErrorInvalidGraphicsContext = 219, + + + + + + cudaErrorNvlinkUncorrectable = 220, + + + + + + + cudaErrorJitCompilerNotFound = 221, + + + + + + + cudaErrorUnsupportedPtxVersion = 222, + + + + + + + cudaErrorJitCompilationDisabled = 223, + + + + + cudaErrorUnsupportedExecAffinity = 224, + + + + + + cudaErrorUnsupportedDevSideSync = 225, +# 719 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorContained = 226, + + + + + cudaErrorInvalidSource = 300, + + + + + cudaErrorFileNotFound = 301, + + + + + cudaErrorSharedObjectSymbolNotFound = 302, + + + + + cudaErrorSharedObjectInitFailed = 303, + + + + + cudaErrorOperatingSystem = 304, + + + + + + + cudaErrorInvalidResourceHandle = 400, + + + + + + cudaErrorIllegalState = 401, + + + + + + + + cudaErrorLossyQuery = 402, + + + + + + + cudaErrorSymbolNotFound = 500, + + + + + + + + cudaErrorNotReady = 600, + + + + + + + + cudaErrorIllegalAddress = 700, +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchOutOfResources = 701, +# 808 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchTimeout = 702, + + + + + + cudaErrorLaunchIncompatibleTexturing = 703, + + + + + + + cudaErrorPeerAccessAlreadyEnabled = 704, + + + + + + + cudaErrorPeerAccessNotEnabled = 705, +# 841 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSetOnActiveProcess = 708, + + + + + + + cudaErrorContextIsDestroyed = 709, + + + + + + + cudaErrorAssert = 710, + + + + + + + cudaErrorTooManyPeers = 711, + + + + + + cudaErrorHostMemoryAlreadyRegistered = 712, + + + + + + cudaErrorHostMemoryNotRegistered = 713, +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorHardwareStackError = 714, + + + + + + + + cudaErrorIllegalInstruction = 715, +# 900 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorMisalignedAddress = 716, +# 911 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorInvalidAddressSpace = 717, + + + + + + + + cudaErrorInvalidPc = 718, +# 930 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchFailure = 719, +# 939 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorCooperativeLaunchTooLarge = 720, + + + + + + + + cudaErrorTensorMemoryLeak = 721, + + + + + cudaErrorNotPermitted = 800, + + + + + + cudaErrorNotSupported = 801, +# 967 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSystemNotReady = 802, + + + + + + + cudaErrorSystemDriverMismatch = 803, +# 983 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorCompatNotSupportedOnDevice = 804, + + + + + cudaErrorMpsConnectionFailed = 805, + + + + + cudaErrorMpsRpcFailure = 806, + + + + + + cudaErrorMpsServerNotReady = 807, + + + + + cudaErrorMpsMaxClientsReached = 808, + + + + + cudaErrorMpsMaxConnectionsReached = 809, + + + + + cudaErrorMpsClientTerminated = 810, + + + + + cudaErrorCdpNotSupported = 811, + + + + + cudaErrorCdpVersionMismatch = 812, + + + + + cudaErrorStreamCaptureUnsupported = 900, + + + + + + cudaErrorStreamCaptureInvalidated = 901, + + + + + + cudaErrorStreamCaptureMerge = 902, + + + + + cudaErrorStreamCaptureUnmatched = 903, + + + + + + cudaErrorStreamCaptureUnjoined = 904, + + + + + + + cudaErrorStreamCaptureIsolation = 905, + + + + + + cudaErrorStreamCaptureImplicit = 906, + + + + + + cudaErrorCapturedEvent = 907, + + + + + + + cudaErrorStreamCaptureWrongThread = 908, + + + + + cudaErrorTimeout = 909, + + + + + + cudaErrorGraphExecUpdateFailure = 910, +# 1099 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorExternalDevice = 911, + + + + + + cudaErrorInvalidClusterSize = 912, + + + + + + cudaErrorFunctionNotLoaded = 913, + + + + + + cudaErrorInvalidResourceType = 914, + + + + + + cudaErrorInvalidResourceConfiguration = 915, + + + + + cudaErrorUnknown = 999 + + + + + + + + , cudaErrorApiFailureBase = 10000 +}; + + + + +enum __attribute__((device_builtin)) cudaChannelFormatKind +{ + cudaChannelFormatKindSigned = 0, + cudaChannelFormatKindUnsigned = 1, + cudaChannelFormatKindFloat = 2, + cudaChannelFormatKindNone = 3, + cudaChannelFormatKindNV12 = 4, + cudaChannelFormatKindUnsignedNormalized8X1 = 5, + cudaChannelFormatKindUnsignedNormalized8X2 = 6, + cudaChannelFormatKindUnsignedNormalized8X4 = 7, + cudaChannelFormatKindUnsignedNormalized16X1 = 8, + cudaChannelFormatKindUnsignedNormalized16X2 = 9, + cudaChannelFormatKindUnsignedNormalized16X4 = 10, + cudaChannelFormatKindSignedNormalized8X1 = 11, + cudaChannelFormatKindSignedNormalized8X2 = 12, + cudaChannelFormatKindSignedNormalized8X4 = 13, + cudaChannelFormatKindSignedNormalized16X1 = 14, + cudaChannelFormatKindSignedNormalized16X2 = 15, + cudaChannelFormatKindSignedNormalized16X4 = 16, + cudaChannelFormatKindUnsignedBlockCompressed1 = 17, + cudaChannelFormatKindUnsignedBlockCompressed1SRGB = 18, + cudaChannelFormatKindUnsignedBlockCompressed2 = 19, + cudaChannelFormatKindUnsignedBlockCompressed2SRGB = 20, + cudaChannelFormatKindUnsignedBlockCompressed3 = 21, + cudaChannelFormatKindUnsignedBlockCompressed3SRGB = 22, + cudaChannelFormatKindUnsignedBlockCompressed4 = 23, + cudaChannelFormatKindSignedBlockCompressed4 = 24, + cudaChannelFormatKindUnsignedBlockCompressed5 = 25, + cudaChannelFormatKindSignedBlockCompressed5 = 26, + cudaChannelFormatKindUnsignedBlockCompressed6H = 27, + cudaChannelFormatKindSignedBlockCompressed6H = 28, + cudaChannelFormatKindUnsignedBlockCompressed7 = 29, + cudaChannelFormatKindUnsignedBlockCompressed7SRGB = 30, + cudaChannelFormatKindUnsignedNormalized1010102 = 31 + +}; + + + + +struct __attribute__((device_builtin)) cudaChannelFormatDesc +{ + int x; + int y; + int z; + int w; + enum cudaChannelFormatKind f; +}; + + + + +typedef struct cudaArray *cudaArray_t; + + + + +typedef const struct cudaArray *cudaArray_const_t; + +struct cudaArray; + + + + +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; + + + + +typedef const struct cudaMipmappedArray *cudaMipmappedArray_const_t; + +struct cudaMipmappedArray; +# 1223 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaArraySparseProperties { + struct { + unsigned int width; + unsigned int height; + unsigned int depth; + } tileExtent; + unsigned int miptailFirstLevel; + unsigned long long miptailSize; + unsigned int flags; + unsigned int reserved[4]; +}; + + + + +struct __attribute__((device_builtin)) cudaArrayMemoryRequirements { + size_t size; + size_t alignment; + unsigned int reserved[4]; +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryType +{ + cudaMemoryTypeUnregistered = 0, + cudaMemoryTypeHost = 1, + cudaMemoryTypeDevice = 2, + cudaMemoryTypeManaged = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyKind +{ + cudaMemcpyHostToHost = 0, + cudaMemcpyHostToDevice = 1, + cudaMemcpyDeviceToHost = 2, + cudaMemcpyDeviceToDevice = 3, + cudaMemcpyDefault = 4 +}; + + + + + + +struct __attribute__((device_builtin)) cudaPitchedPtr +{ + void *ptr; + size_t pitch; + size_t xsize; + size_t ysize; +}; + + + + + + +struct __attribute__((device_builtin)) cudaExtent +{ + size_t width; + size_t height; + size_t depth; +}; + + + + + + +struct __attribute__((device_builtin)) cudaPos +{ + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + + struct cudaExtent extent; + enum cudaMemcpyKind kind; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpyNodeParams { + int flags; + int reserved[3]; + struct cudaMemcpy3DParms copyParams; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DPeerParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + int srcDevice; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + int dstDevice; + + struct cudaExtent extent; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParams { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParamsV2 { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +enum __attribute__((device_builtin)) cudaAccessProperty { + cudaAccessPropertyNormal = 0, + cudaAccessPropertyStreaming = 1, + cudaAccessPropertyPersisting = 2 +}; +# 1392 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaAccessPolicyWindow { + void *base_ptr; + size_t num_bytes; + float hitRatio; + enum cudaAccessProperty hitProp; + enum cudaAccessProperty missProp; +}; +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef void ( *cudaHostFn_t)(void *userData); + + + + +struct __attribute__((device_builtin)) cudaHostNodeParams { + cudaHostFn_t fn; + void* userData; +}; + + + + +struct __attribute__((device_builtin)) cudaHostNodeParamsV2 { + cudaHostFn_t fn; + void* userData; +}; + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureStatus { + cudaStreamCaptureStatusNone = 0, + cudaStreamCaptureStatusActive = 1, + cudaStreamCaptureStatusInvalidated = 2 + +}; + + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureMode { + cudaStreamCaptureModeGlobal = 0, + cudaStreamCaptureModeThreadLocal = 1, + cudaStreamCaptureModeRelaxed = 2 +}; + +enum __attribute__((device_builtin)) cudaSynchronizationPolicy { + cudaSyncPolicyAuto = 1, + cudaSyncPolicySpin = 2, + cudaSyncPolicyYield = 3, + cudaSyncPolicyBlockingSync = 4 +}; + + + + +enum __attribute__((device_builtin)) cudaClusterSchedulingPolicy { + cudaClusterSchedulingPolicyDefault = 0, + cudaClusterSchedulingPolicySpread = 1, + cudaClusterSchedulingPolicyLoadBalancing = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaStreamUpdateCaptureDependenciesFlags { + cudaStreamAddCaptureDependencies = 0x0, + cudaStreamSetCaptureDependencies = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectFlags { + cudaUserObjectNoDestructorSync = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectRetainFlags { + cudaGraphUserObjectMove = 0x1 +}; + + + + +struct cudaGraphicsResource; + + + + +enum __attribute__((device_builtin)) cudaGraphicsRegisterFlags +{ + cudaGraphicsRegisterFlagsNone = 0, + cudaGraphicsRegisterFlagsReadOnly = 1, + cudaGraphicsRegisterFlagsWriteDiscard = 2, + cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, + cudaGraphicsRegisterFlagsTextureGather = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsMapFlags +{ + cudaGraphicsMapFlagsNone = 0, + cudaGraphicsMapFlagsReadOnly = 1, + cudaGraphicsMapFlagsWriteDiscard = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsCubeFace +{ + cudaGraphicsCubeFacePositiveX = 0x00, + cudaGraphicsCubeFaceNegativeX = 0x01, + cudaGraphicsCubeFacePositiveY = 0x02, + cudaGraphicsCubeFaceNegativeY = 0x03, + cudaGraphicsCubeFacePositiveZ = 0x04, + cudaGraphicsCubeFaceNegativeZ = 0x05 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceType +{ + cudaResourceTypeArray = 0x00, + cudaResourceTypeMipmappedArray = 0x01, + cudaResourceTypeLinear = 0x02, + cudaResourceTypePitch2D = 0x03 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceViewFormat +{ + cudaResViewFormatNone = 0x00, + cudaResViewFormatUnsignedChar1 = 0x01, + cudaResViewFormatUnsignedChar2 = 0x02, + cudaResViewFormatUnsignedChar4 = 0x03, + cudaResViewFormatSignedChar1 = 0x04, + cudaResViewFormatSignedChar2 = 0x05, + cudaResViewFormatSignedChar4 = 0x06, + cudaResViewFormatUnsignedShort1 = 0x07, + cudaResViewFormatUnsignedShort2 = 0x08, + cudaResViewFormatUnsignedShort4 = 0x09, + cudaResViewFormatSignedShort1 = 0x0a, + cudaResViewFormatSignedShort2 = 0x0b, + cudaResViewFormatSignedShort4 = 0x0c, + cudaResViewFormatUnsignedInt1 = 0x0d, + cudaResViewFormatUnsignedInt2 = 0x0e, + cudaResViewFormatUnsignedInt4 = 0x0f, + cudaResViewFormatSignedInt1 = 0x10, + cudaResViewFormatSignedInt2 = 0x11, + cudaResViewFormatSignedInt4 = 0x12, + cudaResViewFormatHalf1 = 0x13, + cudaResViewFormatHalf2 = 0x14, + cudaResViewFormatHalf4 = 0x15, + cudaResViewFormatFloat1 = 0x16, + cudaResViewFormatFloat2 = 0x17, + cudaResViewFormatFloat4 = 0x18, + cudaResViewFormatUnsignedBlockCompressed1 = 0x19, + cudaResViewFormatUnsignedBlockCompressed2 = 0x1a, + cudaResViewFormatUnsignedBlockCompressed3 = 0x1b, + cudaResViewFormatUnsignedBlockCompressed4 = 0x1c, + cudaResViewFormatSignedBlockCompressed4 = 0x1d, + cudaResViewFormatUnsignedBlockCompressed5 = 0x1e, + cudaResViewFormatSignedBlockCompressed5 = 0x1f, + cudaResViewFormatUnsignedBlockCompressed6H = 0x20, + cudaResViewFormatSignedBlockCompressed6H = 0x21, + cudaResViewFormatUnsignedBlockCompressed7 = 0x22 +}; + + + + +struct __attribute__((device_builtin)) cudaResourceDesc { + enum cudaResourceType resType; + + union { + struct { + cudaArray_t array; + } array; + struct { + cudaMipmappedArray_t mipmap; + } mipmap; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t sizeInBytes; + } linear; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t width; + size_t height; + size_t pitchInBytes; + } pitch2D; + } res; +}; + + + + +struct __attribute__((device_builtin)) cudaResourceViewDesc +{ + enum cudaResourceViewFormat format; + size_t width; + size_t height; + size_t depth; + unsigned int firstMipmapLevel; + unsigned int lastMipmapLevel; + unsigned int firstLayer; + unsigned int lastLayer; +}; + + + + +struct __attribute__((device_builtin)) cudaPointerAttributes +{ + + + + + enum cudaMemoryType type; +# 1642 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int device; + + + + + + void *devicePointer; +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + void *hostPointer; +}; + + + + +struct __attribute__((device_builtin)) cudaFuncAttributes +{ + + + + + + size_t sharedSizeBytes; + + + + + + size_t constSizeBytes; + + + + + size_t localSizeBytes; + + + + + + + int maxThreadsPerBlock; + + + + + int numRegs; + + + + + + + int ptxVersion; + + + + + + + int binaryVersion; + + + + + + int cacheModeCA; + + + + + + + int maxDynamicSharedSizeBytes; +# 1729 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int preferredShmemCarveout; + + + + + + int clusterDimMustBeSet; +# 1746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int requiredClusterWidth; + int requiredClusterHeight; + int requiredClusterDepth; + + + + + + int clusterSchedulingPolicyPreference; +# 1776 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int nonPortableClusterSizeAllowed; + + + + + int reserved[16]; +}; + + + + +enum __attribute__((device_builtin)) cudaFuncAttribute +{ + cudaFuncAttributeMaxDynamicSharedMemorySize = 8, + cudaFuncAttributePreferredSharedMemoryCarveout = 9, + cudaFuncAttributeClusterDimMustBeSet = 10, + cudaFuncAttributeRequiredClusterWidth = 11, + cudaFuncAttributeRequiredClusterHeight = 12, + cudaFuncAttributeRequiredClusterDepth = 13, + cudaFuncAttributeNonPortableClusterSizeAllowed = 14, + cudaFuncAttributeClusterSchedulingPolicyPreference = 15, + cudaFuncAttributeMax +}; + + + + +enum __attribute__((device_builtin)) cudaFuncCache +{ + cudaFuncCachePreferNone = 0, + cudaFuncCachePreferShared = 1, + cudaFuncCachePreferL1 = 2, + cudaFuncCachePreferEqual = 3 +}; + + + + + +enum __attribute__((device_builtin)) cudaSharedMemConfig +{ + cudaSharedMemBankSizeDefault = 0, + cudaSharedMemBankSizeFourByte = 1, + cudaSharedMemBankSizeEightByte = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSharedCarveout { + cudaSharedmemCarveoutDefault = -1, + cudaSharedmemCarveoutMaxShared = 100, + cudaSharedmemCarveoutMaxL1 = 0 +}; + + + + +enum __attribute__((device_builtin)) cudaComputeMode +{ + cudaComputeModeDefault = 0, + cudaComputeModeExclusive = 1, + cudaComputeModeProhibited = 2, + cudaComputeModeExclusiveProcess = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaLimit +{ + cudaLimitStackSize = 0x00, + cudaLimitPrintfFifoSize = 0x01, + cudaLimitMallocHeapSize = 0x02, + cudaLimitDevRuntimeSyncDepth = 0x03, + cudaLimitDevRuntimePendingLaunchCount = 0x04, + cudaLimitMaxL2FetchGranularity = 0x05, + cudaLimitPersistingL2CacheSize = 0x06 +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryAdvise +{ + cudaMemAdviseSetReadMostly = 1, + cudaMemAdviseUnsetReadMostly = 2, + cudaMemAdviseSetPreferredLocation = 3, + cudaMemAdviseUnsetPreferredLocation = 4, + cudaMemAdviseSetAccessedBy = 5, + cudaMemAdviseUnsetAccessedBy = 6 +}; + + + + +enum __attribute__((device_builtin)) cudaMemRangeAttribute +{ + cudaMemRangeAttributeReadMostly = 1, + cudaMemRangeAttributePreferredLocation = 2, + cudaMemRangeAttributeAccessedBy = 3, + cudaMemRangeAttributeLastPrefetchLocation = 4 + , cudaMemRangeAttributePreferredLocationType = 5 + , cudaMemRangeAttributePreferredLocationId = 6 + , cudaMemRangeAttributeLastPrefetchLocationType = 7 + , cudaMemRangeAttributeLastPrefetchLocationId = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesOptions { + cudaFlushGPUDirectRDMAWritesOptionHost = 1<<0, + cudaFlushGPUDirectRDMAWritesOptionMemOps = 1<<1 +}; + + + + +enum __attribute__((device_builtin)) cudaGPUDirectRDMAWritesOrdering { + cudaGPUDirectRDMAWritesOrderingNone = 0, + cudaGPUDirectRDMAWritesOrderingOwner = 100, + cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesScope { + cudaFlushGPUDirectRDMAWritesToOwner = 100, + cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesTarget { + cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceAttr +{ + cudaDevAttrMaxThreadsPerBlock = 1, + cudaDevAttrMaxBlockDimX = 2, + cudaDevAttrMaxBlockDimY = 3, + cudaDevAttrMaxBlockDimZ = 4, + cudaDevAttrMaxGridDimX = 5, + cudaDevAttrMaxGridDimY = 6, + cudaDevAttrMaxGridDimZ = 7, + cudaDevAttrMaxSharedMemoryPerBlock = 8, + cudaDevAttrTotalConstantMemory = 9, + cudaDevAttrWarpSize = 10, + cudaDevAttrMaxPitch = 11, + cudaDevAttrMaxRegistersPerBlock = 12, + cudaDevAttrClockRate = 13, + cudaDevAttrTextureAlignment = 14, + cudaDevAttrGpuOverlap = 15, + cudaDevAttrMultiProcessorCount = 16, + cudaDevAttrKernelExecTimeout = 17, + cudaDevAttrIntegrated = 18, + cudaDevAttrCanMapHostMemory = 19, + cudaDevAttrComputeMode = 20, + cudaDevAttrMaxTexture1DWidth = 21, + cudaDevAttrMaxTexture2DWidth = 22, + cudaDevAttrMaxTexture2DHeight = 23, + cudaDevAttrMaxTexture3DWidth = 24, + cudaDevAttrMaxTexture3DHeight = 25, + cudaDevAttrMaxTexture3DDepth = 26, + cudaDevAttrMaxTexture2DLayeredWidth = 27, + cudaDevAttrMaxTexture2DLayeredHeight = 28, + cudaDevAttrMaxTexture2DLayeredLayers = 29, + cudaDevAttrSurfaceAlignment = 30, + cudaDevAttrConcurrentKernels = 31, + cudaDevAttrEccEnabled = 32, + cudaDevAttrPciBusId = 33, + cudaDevAttrPciDeviceId = 34, + cudaDevAttrTccDriver = 35, + cudaDevAttrMemoryClockRate = 36, + cudaDevAttrGlobalMemoryBusWidth = 37, + cudaDevAttrL2CacheSize = 38, + cudaDevAttrMaxThreadsPerMultiProcessor = 39, + cudaDevAttrAsyncEngineCount = 40, + cudaDevAttrUnifiedAddressing = 41, + cudaDevAttrMaxTexture1DLayeredWidth = 42, + cudaDevAttrMaxTexture1DLayeredLayers = 43, + cudaDevAttrMaxTexture2DGatherWidth = 45, + cudaDevAttrMaxTexture2DGatherHeight = 46, + cudaDevAttrMaxTexture3DWidthAlt = 47, + cudaDevAttrMaxTexture3DHeightAlt = 48, + cudaDevAttrMaxTexture3DDepthAlt = 49, + cudaDevAttrPciDomainId = 50, + cudaDevAttrTexturePitchAlignment = 51, + cudaDevAttrMaxTextureCubemapWidth = 52, + cudaDevAttrMaxTextureCubemapLayeredWidth = 53, + cudaDevAttrMaxTextureCubemapLayeredLayers = 54, + cudaDevAttrMaxSurface1DWidth = 55, + cudaDevAttrMaxSurface2DWidth = 56, + cudaDevAttrMaxSurface2DHeight = 57, + cudaDevAttrMaxSurface3DWidth = 58, + cudaDevAttrMaxSurface3DHeight = 59, + cudaDevAttrMaxSurface3DDepth = 60, + cudaDevAttrMaxSurface1DLayeredWidth = 61, + cudaDevAttrMaxSurface1DLayeredLayers = 62, + cudaDevAttrMaxSurface2DLayeredWidth = 63, + cudaDevAttrMaxSurface2DLayeredHeight = 64, + cudaDevAttrMaxSurface2DLayeredLayers = 65, + cudaDevAttrMaxSurfaceCubemapWidth = 66, + cudaDevAttrMaxSurfaceCubemapLayeredWidth = 67, + cudaDevAttrMaxSurfaceCubemapLayeredLayers = 68, + cudaDevAttrMaxTexture1DLinearWidth = 69, + cudaDevAttrMaxTexture2DLinearWidth = 70, + cudaDevAttrMaxTexture2DLinearHeight = 71, + cudaDevAttrMaxTexture2DLinearPitch = 72, + cudaDevAttrMaxTexture2DMipmappedWidth = 73, + cudaDevAttrMaxTexture2DMipmappedHeight = 74, + cudaDevAttrComputeCapabilityMajor = 75, + cudaDevAttrComputeCapabilityMinor = 76, + cudaDevAttrMaxTexture1DMipmappedWidth = 77, + cudaDevAttrStreamPrioritiesSupported = 78, + cudaDevAttrGlobalL1CacheSupported = 79, + cudaDevAttrLocalL1CacheSupported = 80, + cudaDevAttrMaxSharedMemoryPerMultiprocessor = 81, + cudaDevAttrMaxRegistersPerMultiprocessor = 82, + cudaDevAttrManagedMemory = 83, + cudaDevAttrIsMultiGpuBoard = 84, + cudaDevAttrMultiGpuBoardGroupID = 85, + cudaDevAttrHostNativeAtomicSupported = 86, + cudaDevAttrSingleToDoublePrecisionPerfRatio = 87, + cudaDevAttrPageableMemoryAccess = 88, + cudaDevAttrConcurrentManagedAccess = 89, + cudaDevAttrComputePreemptionSupported = 90, + cudaDevAttrCanUseHostPointerForRegisteredMem = 91, + cudaDevAttrReserved92 = 92, + cudaDevAttrReserved93 = 93, + cudaDevAttrReserved94 = 94, + cudaDevAttrCooperativeLaunch = 95, + cudaDevAttrCooperativeMultiDeviceLaunch = 96, + cudaDevAttrMaxSharedMemoryPerBlockOptin = 97, + cudaDevAttrCanFlushRemoteWrites = 98, + cudaDevAttrHostRegisterSupported = 99, + cudaDevAttrPageableMemoryAccessUsesHostPageTables = 100, + cudaDevAttrDirectManagedMemAccessFromHost = 101, + cudaDevAttrMaxBlocksPerMultiprocessor = 106, + cudaDevAttrMaxPersistingL2CacheSize = 108, + cudaDevAttrMaxAccessPolicyWindowSize = 109, + cudaDevAttrReservedSharedMemoryPerBlock = 111, + cudaDevAttrSparseCudaArraySupported = 112, + cudaDevAttrHostRegisterReadOnlySupported = 113, + cudaDevAttrTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMemoryPoolsSupported = 115, + cudaDevAttrGPUDirectRDMASupported = 116, + cudaDevAttrGPUDirectRDMAFlushWritesOptions = 117, + cudaDevAttrGPUDirectRDMAWritesOrdering = 118, + cudaDevAttrMemoryPoolSupportedHandleTypes = 119, + cudaDevAttrClusterLaunch = 120, + cudaDevAttrDeferredMappingCudaArraySupported = 121, + cudaDevAttrReserved122 = 122, + cudaDevAttrReserved123 = 123, + cudaDevAttrReserved124 = 124, + cudaDevAttrIpcEventSupport = 125, + cudaDevAttrMemSyncDomainCount = 126, + cudaDevAttrReserved127 = 127, + cudaDevAttrReserved128 = 128, + cudaDevAttrReserved129 = 129, + cudaDevAttrNumaConfig = 130, + cudaDevAttrNumaId = 131, + cudaDevAttrReserved132 = 132, + cudaDevAttrMpsEnabled = 133, + cudaDevAttrHostNumaId = 134, + cudaDevAttrD3D12CigSupported = 135, + cudaDevAttrGpuPciDeviceId = 139, + cudaDevAttrGpuPciSubsystemId = 140, + cudaDevAttrHostNumaMultinodeIpcSupported = 143, + cudaDevAttrMax +}; + + + + +enum __attribute__((device_builtin)) cudaMemPoolAttr +{ +# 2070 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemPoolReuseFollowEventDependencies = 0x1, + + + + + + + cudaMemPoolReuseAllowOpportunistic = 0x2, + + + + + + + + cudaMemPoolReuseAllowInternalDependencies = 0x3, +# 2096 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemPoolAttrReleaseThreshold = 0x4, + + + + + + cudaMemPoolAttrReservedMemCurrent = 0x5, + + + + + + + cudaMemPoolAttrReservedMemHigh = 0x6, + + + + + + cudaMemPoolAttrUsedMemCurrent = 0x7, + + + + + + + cudaMemPoolAttrUsedMemHigh = 0x8 +}; + + + + +enum __attribute__((device_builtin)) cudaMemLocationType { + cudaMemLocationTypeInvalid = 0, + cudaMemLocationTypeDevice = 1 + , cudaMemLocationTypeHost = 2 + , cudaMemLocationTypeHostNuma = 3 + , cudaMemLocationTypeHostNumaCurrent = 4 +}; + + + + + + + +struct __attribute__((device_builtin)) cudaMemLocation { + enum cudaMemLocationType type; + int id; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAccessFlags { + cudaMemAccessFlagsProtNone = 0, + cudaMemAccessFlagsProtRead = 1, + cudaMemAccessFlagsProtReadWrite = 3 +}; + + + + +struct __attribute__((device_builtin)) cudaMemAccessDesc { + struct cudaMemLocation location; + enum cudaMemAccessFlags flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationType { + cudaMemAllocationTypeInvalid = 0x0, + + + + cudaMemAllocationTypePinned = 0x1, + cudaMemAllocationTypeMax = 0x7FFFFFFF +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationHandleType { + cudaMemHandleTypeNone = 0x0, + cudaMemHandleTypePosixFileDescriptor = 0x1, + cudaMemHandleTypeWin32 = 0x2, + cudaMemHandleTypeWin32Kmt = 0x4, + cudaMemHandleTypeFabric = 0x8 +}; +# 2196 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaMemPoolProps { + enum cudaMemAllocationType allocType; + enum cudaMemAllocationHandleType handleTypes; + struct cudaMemLocation location; + + + + + + + void *win32SecurityAttributes; + size_t maxSize; + unsigned short usage; + unsigned char reserved[54]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolPtrExportData { + unsigned char reserved[64]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParams { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParamsV2 { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +struct __attribute__((device_builtin)) cudaMemFreeNodeParams { + void *dptr; +}; + + + + +enum __attribute__((device_builtin)) cudaGraphMemAttributeType { + + + + + cudaGraphMemAttrUsedMemCurrent = 0x0, + + + + + + + cudaGraphMemAttrUsedMemHigh = 0x1, + + + + + + + cudaGraphMemAttrReservedMemCurrent = 0x2, + + + + + + + cudaGraphMemAttrReservedMemHigh = 0x3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyFlags { + cudaMemcpyFlagDefault = 0x0, + + + + + cudaMemcpyFlagPreferOverlapWithCompute = 0x1 +}; + +enum __attribute__((device_builtin)) cudaMemcpySrcAccessOrder { + + + + cudaMemcpySrcAccessOrderInvalid = 0x0, + + + + + cudaMemcpySrcAccessOrderStream = 0x1, +# 2320 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemcpySrcAccessOrderDuringApiCall = 0x2, +# 2329 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemcpySrcAccessOrderAny = 0x3, + + cudaMemcpySrcAccessOrderMax = 0x7FFFFFFF +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpyAttributes { + enum cudaMemcpySrcAccessOrder srcAccessOrder; + struct cudaMemLocation srcLocHint; + struct cudaMemLocation dstLocHint; + unsigned int flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpy3DOperandType { + cudaMemcpyOperandTypePointer = 0x1, + cudaMemcpyOperandTypeArray = 0x2, + cudaMemcpyOperandTypeMax = 0x7FFFFFFF +}; + + + + +struct __attribute__((device_builtin)) cudaOffset3D { + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DOperand { + enum cudaMemcpy3DOperandType type; + union { + + + + struct { + void *ptr; + size_t rowLength; + size_t layerHeight; + struct cudaMemLocation locHint; + } ptr; + + + + + struct { + cudaArray_t array; + struct cudaOffset3D offset; + } array; + } op; +}; + +struct __attribute__((device_builtin)) cudaMemcpy3DBatchOp { + struct cudaMemcpy3DOperand src; + struct cudaMemcpy3DOperand dst; + struct cudaExtent extent; + enum cudaMemcpySrcAccessOrder srcAccessOrder; + unsigned int flags; +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceP2PAttr { + cudaDevP2PAttrPerformanceRank = 1, + cudaDevP2PAttrAccessSupported = 2, + cudaDevP2PAttrNativeAtomicSupported = 3, + cudaDevP2PAttrCudaArrayAccessSupported = 4 +}; + + + + + + +struct __attribute__((device_builtin)) CUuuid_st { + char bytes[16]; +}; +typedef __attribute__((device_builtin)) struct CUuuid_st CUuuid; + +typedef __attribute__((device_builtin)) struct CUuuid_st cudaUUID_t; + + + + +struct __attribute__((device_builtin)) cudaDeviceProp +{ + char name[256]; + cudaUUID_t uuid; + char luid[8]; + unsigned int luidDeviceNodeMask; + size_t totalGlobalMem; + size_t sharedMemPerBlock; + int regsPerBlock; + int warpSize; + size_t memPitch; + int maxThreadsPerBlock; + int maxThreadsDim[3]; + int maxGridSize[3]; + int clockRate; + size_t totalConstMem; + int major; + int minor; + size_t textureAlignment; + size_t texturePitchAlignment; + int deviceOverlap; + int multiProcessorCount; + int kernelExecTimeoutEnabled; + int integrated; + int canMapHostMemory; + int computeMode; + int maxTexture1D; + int maxTexture1DMipmap; + int maxTexture1DLinear; + int maxTexture2D[2]; + int maxTexture2DMipmap[2]; + int maxTexture2DLinear[3]; + int maxTexture2DGather[2]; + int maxTexture3D[3]; + int maxTexture3DAlt[3]; + int maxTextureCubemap; + int maxTexture1DLayered[2]; + int maxTexture2DLayered[3]; + int maxTextureCubemapLayered[2]; + int maxSurface1D; + int maxSurface2D[2]; + int maxSurface3D[3]; + int maxSurface1DLayered[2]; + int maxSurface2DLayered[3]; + int maxSurfaceCubemap; + int maxSurfaceCubemapLayered[2]; + size_t surfaceAlignment; + int concurrentKernels; + int ECCEnabled; + int pciBusID; + int pciDeviceID; + int pciDomainID; + int tccDriver; + int asyncEngineCount; + int unifiedAddressing; + int memoryClockRate; + int memoryBusWidth; + int l2CacheSize; + int persistingL2CacheMaxSize; + int maxThreadsPerMultiProcessor; + int streamPrioritiesSupported; + int globalL1CacheSupported; + int localL1CacheSupported; + size_t sharedMemPerMultiprocessor; + int regsPerMultiprocessor; + int managedMemory; + int isMultiGpuBoard; + int multiGpuBoardGroupID; + int hostNativeAtomicSupported; + int singleToDoublePrecisionPerfRatio; + int pageableMemoryAccess; + int concurrentManagedAccess; + int computePreemptionSupported; + int canUseHostPointerForRegisteredMem; + int cooperativeLaunch; + int cooperativeMultiDeviceLaunch; + size_t sharedMemPerBlockOptin; + int pageableMemoryAccessUsesHostPageTables; + int directManagedMemAccessFromHost; + int maxBlocksPerMultiProcessor; + int accessPolicyMaxWindowSize; + size_t reservedSharedMemPerBlock; + int hostRegisterSupported; + int sparseCudaArraySupported; + int hostRegisterReadOnlySupported; + int timelineSemaphoreInteropSupported; + int memoryPoolsSupported; + int gpuDirectRDMASupported; + unsigned int gpuDirectRDMAFlushWritesOptions; + int gpuDirectRDMAWritesOrdering; + unsigned int memoryPoolSupportedHandleTypes; + int deferredMappingCudaArraySupported; + int ipcEventSupported; + int clusterLaunch; + int unifiedFunctionPointers; + int reserved[63]; +}; +# 2528 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcEventHandle_st +{ + char reserved[64]; +}cudaIpcEventHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcMemHandle_st +{ + char reserved[64]; +}cudaIpcMemHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaMemFabricHandle_st +{ + char reserved[64]; +}cudaMemFabricHandle_t; + + + + +enum __attribute__((device_builtin)) cudaExternalMemoryHandleType { + + + + cudaExternalMemoryHandleTypeOpaqueFd = 1, + + + + cudaExternalMemoryHandleTypeOpaqueWin32 = 2, + + + + cudaExternalMemoryHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalMemoryHandleTypeD3D12Heap = 4, + + + + cudaExternalMemoryHandleTypeD3D12Resource = 5, + + + + cudaExternalMemoryHandleTypeD3D11Resource = 6, + + + + cudaExternalMemoryHandleTypeD3D11ResourceKmt = 7, + + + + cudaExternalMemoryHandleTypeNvSciBuf = 8 +}; +# 2627 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaExternalMemoryHandleDesc { + + + + enum cudaExternalMemoryHandleType type; + union { + + + + + + int fd; +# 2654 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + + const void *nvSciBufObject; + } handle; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryBufferDesc { + + + + unsigned long long offset; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryMipmappedArrayDesc { + + + + + unsigned long long offset; + + + + struct cudaChannelFormatDesc formatDesc; + + + + struct cudaExtent extent; + + + + + unsigned int flags; + + + + unsigned int numLevels; +}; + + + + +enum __attribute__((device_builtin)) cudaExternalSemaphoreHandleType { + + + + cudaExternalSemaphoreHandleTypeOpaqueFd = 1, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32 = 2, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalSemaphoreHandleTypeD3D12Fence = 4, + + + + cudaExternalSemaphoreHandleTypeD3D11Fence = 5, + + + + cudaExternalSemaphoreHandleTypeNvSciSync = 6, + + + + cudaExternalSemaphoreHandleTypeKeyedMutex = 7, + + + + cudaExternalSemaphoreHandleTypeKeyedMutexKmt = 8, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd = 9, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 = 10 +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreHandleDesc { + + + + enum cudaExternalSemaphoreHandleType type; + union { + + + + + + + int fd; +# 2804 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + const void* nvSciSyncObj; + } handle; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + } params; +# 2868 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + } params; +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams{ + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + unsigned int reserved[12]; + } params; +# 2963 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + unsigned int reserved[10]; + } params; +# 3014 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; +# 3027 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaError cudaError_t; + + + + +typedef __attribute__((device_builtin)) struct CUstream_st *cudaStream_t; + + + + +typedef __attribute__((device_builtin)) struct CUevent_st *cudaEvent_t; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphicsResource *cudaGraphicsResource_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalMemory_st *cudaExternalMemory_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalSemaphore_st *cudaExternalSemaphore_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraph_st *cudaGraph_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraphNode_st *cudaGraphNode_t; + + + + +typedef __attribute__((device_builtin)) struct CUuserObject_st *cudaUserObject_t; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaGraphConditionalHandle; + + + + +typedef __attribute__((device_builtin)) struct CUfunc_st *cudaFunction_t; + + + + +typedef __attribute__((device_builtin)) struct CUkern_st *cudaKernel_t; + + + + +enum __attribute__((device_builtin)) cudaJitOption +{ + + + + + + cudaJitMaxRegisters = 0, +# 3108 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitThreadsPerBlock = 1, + + + + + + + + cudaJitWallTime = 2, +# 3125 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitInfoLogBuffer = 3, +# 3134 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitInfoLogBufferSizeBytes = 4, +# 3143 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitErrorLogBuffer = 5, +# 3152 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitErrorLogBufferSizeBytes = 6, + + + + + + + + cudaJitOptimizationLevel = 7, + + + + + + + + cudaJitFallbackStrategy = 10, + + + + + + + + cudaJitGenerateDebugInfo = 11, + + + + + + + cudaJitLogVerbose = 12, + + + + + + + cudaJitGenerateLineInfo = 13, + + + + + + + + cudaJitCacheMode = 14, + + + + + + + cudaJitPositionIndependentCode = 30, +# 3218 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitMinCtaPerSm = 31, +# 3231 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitMaxThreadsPerBlock = 32, +# 3241 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitOverrideDirectiveValues = 33, +}; + + + + + +enum __attribute__((device_builtin)) cudaLibraryOption +{ + cudaLibraryHostUniversalFunctionAndDataTable = 0, +# 3261 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaLibraryBinaryIsPreserved = 1, +}; + +struct __attribute__((device_builtin)) cudalibraryHostUniversalFunctionAndDataTable +{ + void *functionTable; + size_t functionWindowSize; + void *dataTable; + size_t dataWindowSize; +}; + + + + +enum __attribute__((device_builtin)) cudaJit_CacheMode +{ + cudaJitCacheOptionNone = 0, + cudaJitCacheOptionCG, + cudaJitCacheOptionCA +}; + + + + +enum __attribute__((device_builtin)) cudaJit_Fallback +{ + cudaPreferPtx = 0, + + cudaPreferBinary +}; + + + + +typedef __attribute__((device_builtin)) struct CUlib_st *cudaLibrary_t; + + + + +typedef __attribute__((device_builtin)) struct CUmemPoolHandle_st *cudaMemPool_t; + + + + +enum __attribute__((device_builtin)) cudaCGScope { + cudaCGScopeInvalid = 0, + cudaCGScopeGrid = 1, + cudaCGScopeMultiGrid = 2 +}; + + + + +struct __attribute__((device_builtin)) cudaLaunchParams +{ + void *func; + dim3 gridDim; + dim3 blockDim; + void **args; + size_t sharedMem; + cudaStream_t stream; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParams { + void* func; + dim3 gridDim; + dim3 blockDim; + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParamsV2 { + void* func; + + dim3 gridDim; + dim3 blockDim; + + + + + + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParamsV2 { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParamsV2 { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + +enum __attribute__((device_builtin)) cudaGraphConditionalHandleFlags { + cudaGraphCondAssignDefault = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphConditionalNodeType { + cudaGraphCondTypeIf = 0, + cudaGraphCondTypeWhile = 1, + cudaGraphCondTypeSwitch = 2, +}; + + + + +struct __attribute__((device_builtin)) cudaConditionalNodeParams { + cudaGraphConditionalHandle handle; + + + enum cudaGraphConditionalNodeType type; + unsigned int size; + + cudaGraph_t *phGraph_out; +# 3432 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +}; + + + + +enum __attribute__((device_builtin)) cudaGraphNodeType { + cudaGraphNodeTypeKernel = 0x00, + cudaGraphNodeTypeMemcpy = 0x01, + cudaGraphNodeTypeMemset = 0x02, + cudaGraphNodeTypeHost = 0x03, + cudaGraphNodeTypeGraph = 0x04, + cudaGraphNodeTypeEmpty = 0x05, + cudaGraphNodeTypeWaitEvent = 0x06, + cudaGraphNodeTypeEventRecord = 0x07, + cudaGraphNodeTypeExtSemaphoreSignal = 0x08, + cudaGraphNodeTypeExtSemaphoreWait = 0x09, + cudaGraphNodeTypeMemAlloc = 0x0a, + cudaGraphNodeTypeMemFree = 0x0b, + cudaGraphNodeTypeConditional = 0x0d, +# 3467 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaGraphNodeTypeCount +}; + + + + +struct __attribute__((device_builtin)) cudaChildGraphNodeParams { + cudaGraph_t graph; + +}; + + + + +struct __attribute__((device_builtin)) cudaEventRecordNodeParams { + cudaEvent_t event; +}; + + + + +struct __attribute__((device_builtin)) cudaEventWaitNodeParams { + cudaEvent_t event; +}; + + + + +struct __attribute__((device_builtin)) cudaGraphNodeParams { + enum cudaGraphNodeType type; + int reserved0[3]; + + union { + long long reserved1[29]; + struct cudaKernelNodeParamsV2 kernel; + struct cudaMemcpyNodeParams memcpy; + struct cudaMemsetParamsV2 memset; + struct cudaHostNodeParamsV2 host; + struct cudaChildGraphNodeParams graph; + struct cudaEventWaitNodeParams eventWait; + struct cudaEventRecordNodeParams eventRecord; + struct cudaExternalSemaphoreSignalNodeParamsV2 extSemSignal; + struct cudaExternalSemaphoreWaitNodeParamsV2 extSemWait; + struct cudaMemAllocNodeParamsV2 alloc; + struct cudaMemFreeNodeParams free; + struct cudaConditionalNodeParams conditional; + }; + + long long reserved2; +}; + + + + +typedef __attribute__((device_builtin)) enum cudaGraphDependencyType_enum { + cudaGraphDependencyTypeDefault = 0, + cudaGraphDependencyTypeProgrammatic = 1 + + + + +} cudaGraphDependencyType; + + + + + + +typedef __attribute__((device_builtin)) struct cudaGraphEdgeData_st { + unsigned char from_port; +# 3546 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned char to_port; + + + + + + + unsigned char type; + + + unsigned char reserved[5]; + +} cudaGraphEdgeData; +# 3579 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct CUgraphExec_st* cudaGraphExec_t; + + + + +enum __attribute__((device_builtin)) cudaGraphExecUpdateResult { + cudaGraphExecUpdateSuccess = 0x0, + cudaGraphExecUpdateError = 0x1, + cudaGraphExecUpdateErrorTopologyChanged = 0x2, + cudaGraphExecUpdateErrorNodeTypeChanged = 0x3, + cudaGraphExecUpdateErrorFunctionChanged = 0x4, + cudaGraphExecUpdateErrorParametersChanged = 0x5, + cudaGraphExecUpdateErrorNotSupported = 0x6, + cudaGraphExecUpdateErrorUnsupportedFunctionChange = 0x7, + cudaGraphExecUpdateErrorAttributesChanged = 0x8 +}; + + + + +typedef __attribute__((device_builtin)) enum cudaGraphInstantiateResult { + cudaGraphInstantiateSuccess = 0, + cudaGraphInstantiateError = 1, + cudaGraphInstantiateInvalidStructure = 2, + cudaGraphInstantiateNodeOperationNotSupported = 3, + cudaGraphInstantiateMultipleDevicesNotSupported = 4, + cudaGraphInstantiateConditionalHandleUnused = 5 +} cudaGraphInstantiateResult; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphInstantiateParams_st +{ + unsigned long long flags; + cudaStream_t uploadStream; + cudaGraphNode_t errNode_out; + cudaGraphInstantiateResult result_out; +} cudaGraphInstantiateParams; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphExecUpdateResultInfo_st { + + + + enum cudaGraphExecUpdateResult result; + + + + + + + cudaGraphNode_t errorNode; + + + + + cudaGraphNode_t errorFromNode; +} cudaGraphExecUpdateResultInfo; + + + + +typedef struct CUgraphDeviceUpdatableNode_st* cudaGraphDeviceNode_t; + + + + +enum __attribute__((device_builtin)) cudaGraphKernelNodeField +{ + cudaGraphKernelNodeFieldInvalid = 0, + cudaGraphKernelNodeFieldGridDim, + cudaGraphKernelNodeFieldParam, + cudaGraphKernelNodeFieldEnabled +}; + + + + +struct __attribute__((device_builtin)) cudaGraphKernelNodeUpdate { + cudaGraphDeviceNode_t node; + enum cudaGraphKernelNodeField field; + union { + + dim3 gridDim; + + + + + struct { + const void *pValue; + size_t offset; + size_t size; + } param; + unsigned int isEnabled; + } updateData; +}; + + + + + +enum __attribute__((device_builtin)) cudaGetDriverEntryPointFlags { + cudaEnableDefault = 0x0, + cudaEnableLegacyStream = 0x1, + cudaEnablePerThreadDefaultStream = 0x2 +}; + + + + +enum __attribute__((device_builtin)) cudaDriverEntryPointQueryResult { + cudaDriverEntryPointSuccess = 0, + cudaDriverEntryPointSymbolNotFound = 1, + cudaDriverEntryPointVersionNotSufficent = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphDebugDotFlags { + cudaGraphDebugDotFlagsVerbose = 1<<0, + cudaGraphDebugDotFlagsKernelNodeParams = 1<<2, + cudaGraphDebugDotFlagsMemcpyNodeParams = 1<<3, + cudaGraphDebugDotFlagsMemsetNodeParams = 1<<4, + cudaGraphDebugDotFlagsHostNodeParams = 1<<5, + cudaGraphDebugDotFlagsEventNodeParams = 1<<6, + cudaGraphDebugDotFlagsExtSemasSignalNodeParams = 1<<7, + cudaGraphDebugDotFlagsExtSemasWaitNodeParams = 1<<8, + cudaGraphDebugDotFlagsKernelNodeAttributes = 1<<9, + cudaGraphDebugDotFlagsHandles = 1<<10, + cudaGraphDebugDotFlagsConditionalNodeParams = 1<<15, +}; + + + + +enum __attribute__((device_builtin)) cudaGraphInstantiateFlags { + cudaGraphInstantiateFlagAutoFreeOnLaunch = 1 + , cudaGraphInstantiateFlagUpload = 2 + + + , cudaGraphInstantiateFlagDeviceLaunch = 4 + + + , cudaGraphInstantiateFlagUseNodePriority = 8 + +}; +# 3746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaLaunchMemSyncDomain { + cudaLaunchMemSyncDomainDefault = 0, + cudaLaunchMemSyncDomainRemote = 1 +} cudaLaunchMemSyncDomain; +# 3762 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) struct cudaLaunchMemSyncDomainMap_st { + unsigned char default_; + unsigned char remote; +} cudaLaunchMemSyncDomainMap; + + + + +typedef __attribute__((device_builtin)) enum cudaLaunchAttributeID { + cudaLaunchAttributeIgnore = 0 + , cudaLaunchAttributeAccessPolicyWindow = 1 + + , cudaLaunchAttributeCooperative = 2 + + , cudaLaunchAttributeSynchronizationPolicy = 3 + , cudaLaunchAttributeClusterDimension = 4 + + , cudaLaunchAttributeClusterSchedulingPolicyPreference = 5 + + , cudaLaunchAttributeProgrammaticStreamSerialization = 6 +# 3792 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeProgrammaticEvent = 7 +# 3818 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributePriority = 8 + + , cudaLaunchAttributeMemSyncDomainMap = 9 + + , cudaLaunchAttributeMemSyncDomain = 10 + + , cudaLaunchAttributePreferredClusterDimension = 11 +# 3860 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeLaunchCompletionEvent = 12 +# 3882 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeDeviceUpdatableKernelNode = 13 +# 3910 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributePreferredSharedMemoryCarveout = 14 + + + + + + +} cudaLaunchAttributeID; + + + + +typedef __attribute__((device_builtin)) union cudaLaunchAttributeValue { + char pad[64]; + struct cudaAccessPolicyWindow accessPolicyWindow; + int cooperative; + + enum cudaSynchronizationPolicy syncPolicy; +# 3941 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } clusterDim; + enum cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; + + + int programmaticStreamSerializationAllowed; +# 3960 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + cudaEvent_t event; + int flags; + int triggerAtBlockStart; + } programmaticEvent; + int priority; + cudaLaunchMemSyncDomainMap memSyncDomainMap; + + + cudaLaunchMemSyncDomain memSyncDomain; +# 3984 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } preferredClusterDim; +# 3997 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + cudaEvent_t event; + int flags; + } launchCompletionEvent; + + + + + + + + struct { + int deviceUpdatable; + cudaGraphDeviceNode_t devNode; + } deviceUpdatableKernelNode; + unsigned int sharedMemCarveout; +} cudaLaunchAttributeValue; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchAttribute_st { + cudaLaunchAttributeID id; + char pad[8 - sizeof(cudaLaunchAttributeID)]; + cudaLaunchAttributeValue val; +} cudaLaunchAttribute; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchConfig_st { + dim3 gridDim; + dim3 blockDim; + size_t dynamicSmemBytes; + cudaStream_t stream; + cudaLaunchAttribute *attrs; + unsigned int numAttrs; +} cudaLaunchConfig_t; +# 4061 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum __attribute__((device_builtin)) cudaDeviceNumaConfig { + cudaDeviceNumaConfigNone = 0, + cudaDeviceNumaConfigNumaNode, +}; + + + + +typedef struct cudaAsyncCallbackEntry* cudaAsyncCallbackHandle_t; + +struct cudaAsyncCallbackEntry; + + + + +typedef __attribute__((device_builtin)) enum cudaAsyncNotificationType_enum { + cudaAsyncNotificationTypeOverBudget = 0x1 +} cudaAsyncNotificationType; + + + + +typedef __attribute__((device_builtin)) struct cudaAsyncNotificationInfo +{ + cudaAsyncNotificationType type; + union { + struct { + unsigned long long bytesOverBudget; + } overBudget; + } info; +} cudaAsyncNotificationInfo_t; + +typedef void (*cudaAsyncCallback)(cudaAsyncNotificationInfo_t*, void*, cudaAsyncCallbackHandle_t); +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +enum __attribute__((device_builtin)) cudaSurfaceBoundaryMode +{ + cudaBoundaryModeZero = 0, + cudaBoundaryModeClamp = 1, + cudaBoundaryModeTrap = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSurfaceFormatMode +{ + cudaFormatModeForced = 0, + cudaFormatModeAuto = 1 +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaSurfaceObject_t; +# 63 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +enum __attribute__((device_builtin)) cudaTextureAddressMode +{ + cudaAddressModeWrap = 0, + cudaAddressModeClamp = 1, + cudaAddressModeMirror = 2, + cudaAddressModeBorder = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureFilterMode +{ + cudaFilterModePoint = 0, + cudaFilterModeLinear = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureReadMode +{ + cudaReadModeElementType = 0, + cudaReadModeNormalizedFloat = 1 +}; + + + + +struct __attribute__((device_builtin)) cudaTextureDesc +{ + + + + enum cudaTextureAddressMode addressMode[3]; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureReadMode readMode; + + + + int sRGB; + + + + float borderColor[4]; + + + + int normalizedCoords; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; + + + + int seamlessCubemap; +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaTextureObject_t; +# 64 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" 1 +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" +typedef enum cudaDataType_t +{ + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, + CUDA_R_8F_E4M3 = 28, + CUDA_R_8F_UE4M3 = CUDA_R_8F_E4M3, + CUDA_R_8F_E5M2 = 29, + CUDA_R_8F_UE8M0 = 30, + CUDA_R_6F_E2M3 = 31, + CUDA_R_6F_E3M2 = 32, + CUDA_R_4F_E2M1 = 33, +} cudaDataType; + + +typedef enum libraryPropertyType_t +{ + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 1 +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 151 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 + +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + + +#pragma GCC visibility push(default) + + + extern "C++" __attribute__ ((__noreturn__, __always_inline__)) + inline void __terminate() noexcept + { + void terminate() noexcept __attribute__ ((__noreturn__,__cold__)); + terminate(); + } +#pragma GCC visibility pop +} +# 341 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 534 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ +#pragma GCC visibility push(default) + + + + + __attribute__((__always_inline__)) + constexpr inline bool + __is_constant_evaluated() noexcept + { + + + + + + return __builtin_is_constant_evaluated(); + + + + } +#pragma GCC visibility pop +} +# 573 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ +#pragma GCC visibility push(default) + + extern "C++" __attribute__ ((__noreturn__)) + void + __glibcxx_assert_fail + (const char* __file, int __line, const char* __function, + const char* __condition) + noexcept; +#pragma GCC visibility pop +} +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + __attribute__((__always_inline__,__visibility__("default"))) + inline void + __glibcxx_assert_fail() + { } +} +# 683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/os_defines.h" 1 3 +# 684 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/cpu_defines.h" 1 3 +# 687 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 +# 828 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace __gnu_cxx +{ + typedef __decltype(0.0bf16) __bfloat16_t; +} +# 890 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/pstl/pstl_config.h" 1 3 +# 891 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +# 1 "/usr/include/stdlib.h" 1 3 4 +# 26 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/stdlib.h" 2 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 33 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + +# 1 "/usr/include/bits/waitflags.h" 1 3 4 +# 41 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/bits/waitstatus.h" 1 3 4 +# 42 "/usr/include/stdlib.h" 2 3 4 +# 56 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/floatn.h" 1 3 4 +# 131 "/usr/include/bits/floatn.h" 3 4 +# 1 "/usr/include/bits/floatn-common.h" 1 3 4 +# 24 "/usr/include/bits/floatn-common.h" 3 4 +# 1 "/usr/include/bits/long-double.h" 1 3 4 +# 25 "/usr/include/bits/floatn-common.h" 2 3 4 +# 132 "/usr/include/bits/floatn.h" 2 3 4 +# 57 "/usr/include/stdlib.h" 2 3 4 + + +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; +# 98 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) noexcept (true) ; + + + +extern double atof (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern int atoi (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern long int atol (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +__extension__ extern long long int atoll (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern double strtod (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern float strtof (const char *__restrict __nptr, + char **__restrict __endptr) noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern long double strtold (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 141 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float64 strtof64 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float128 strtof128 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float32x strtof32x (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float64x strtof64x (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 177 "/usr/include/stdlib.h" 3 4 +extern long int strtol (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern unsigned long int strtoul (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + +extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtol") + + + __attribute__ ((__nonnull__ (1))); +extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoul") + + + + __attribute__ ((__nonnull__ (1))); + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") + + + __attribute__ ((__nonnull__ (1))); +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") + + + + __attribute__ ((__nonnull__ (1))); + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") + + + __attribute__ ((__nonnull__ (1))); +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") + + + + __attribute__ ((__nonnull__ (1))); +# 278 "/usr/include/stdlib.h" 3 4 +extern int strfromd (char *__dest, size_t __size, const char *__format, + double __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + +extern int strfromf (char *__dest, size_t __size, const char *__format, + float __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + +extern int strfroml (char *__dest, size_t __size, const char *__format, + long double __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); +# 298 "/usr/include/stdlib.h" 3 4 +extern int strfromf32 (char *__dest, size_t __size, const char * __format, + _Float32 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64 (char *__dest, size_t __size, const char * __format, + _Float64 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf128 (char *__dest, size_t __size, const char * __format, + _Float128 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf32x (char *__dest, size_t __size, const char * __format, + _Float32x __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64x (char *__dest, size_t __size, const char * __format, + _Float64x __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); +# 340 "/usr/include/stdlib.h" 3 4 +extern long int strtol_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +extern unsigned long int strtoul_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + + + + + +extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtol_l") + + + + __attribute__ ((__nonnull__ (1, 4))); +extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoul_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoll_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoull_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +# 415 "/usr/include/stdlib.h" 3 4 +extern double strtod_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + +extern float strtof_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + +extern long double strtold_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); +# 436 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64 strtof64_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float128 strtof128_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float32x strtof32x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64x strtof64x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); +# 505 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) noexcept (true) ; + + +extern long int a64l (const char *__s) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + +# 1 "/usr/include/sys/types.h" 1 3 4 +# 27 "/usr/include/sys/types.h" 3 4 +extern "C" { + + + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + +typedef __loff_t loff_t; + + + + +typedef __ino_t ino_t; + + + + + + +typedef __ino64_t ino64_t; + + + + +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; + + + + + +typedef __off_t off_t; + + + + + + +typedef __off64_t off64_t; + + + + +typedef __pid_t pid_t; + + + + + +typedef __id_t id_t; + + + + +typedef __ssize_t ssize_t; + + + + + +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; + + + + +# 1 "/usr/include/bits/types/clock_t.h" 1 3 4 + + + + + + +typedef __clock_t clock_t; +# 127 "/usr/include/sys/types.h" 2 3 4 + +# 1 "/usr/include/bits/types/clockid_t.h" 1 3 4 + + + + + + +typedef __clockid_t clockid_t; +# 129 "/usr/include/sys/types.h" 2 3 4 +# 1 "/usr/include/bits/types/time_t.h" 1 3 4 +# 10 "/usr/include/bits/types/time_t.h" 3 4 +typedef __time_t time_t; +# 130 "/usr/include/sys/types.h" 2 3 4 +# 1 "/usr/include/bits/types/timer_t.h" 1 3 4 + + + + + + +typedef __timer_t timer_t; +# 131 "/usr/include/sys/types.h" 2 3 4 + + + +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 145 "/usr/include/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; + + + + +# 1 "/usr/include/bits/stdint-intn.h" 1 3 4 +# 24 "/usr/include/bits/stdint-intn.h" 3 4 +typedef __int8_t int8_t; +typedef __int16_t int16_t; +typedef __int32_t int32_t; +typedef __int64_t int64_t; +# 156 "/usr/include/sys/types.h" 2 3 4 + + +typedef __uint8_t u_int8_t; +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; + + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 176 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 35 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/bits/byteswap.h" 1 3 4 +# 33 "/usr/include/bits/byteswap.h" 3 4 +static __inline __uint16_t +__bswap_16 (__uint16_t __bsx) +{ + + return __builtin_bswap16 (__bsx); + + + +} + + + + + + +static __inline __uint32_t +__bswap_32 (__uint32_t __bsx) +{ + + return __builtin_bswap32 (__bsx); + + + +} +# 69 "/usr/include/bits/byteswap.h" 3 4 +__extension__ static __inline __uint64_t +__bswap_64 (__uint64_t __bsx) +{ + + return __builtin_bswap64 (__bsx); + + + +} +# 36 "/usr/include/endian.h" 2 3 4 +# 1 "/usr/include/bits/uintn-identity.h" 1 3 4 +# 32 "/usr/include/bits/uintn-identity.h" 3 4 +static __inline __uint16_t +__uint16_identity (__uint16_t __x) +{ + return __x; +} + +static __inline __uint32_t +__uint32_identity (__uint32_t __x) +{ + return __x; +} + +static __inline __uint64_t +__uint64_identity (__uint64_t __x) +{ + return __x; +} +# 37 "/usr/include/endian.h" 2 3 4 +# 177 "/usr/include/sys/types.h" 2 3 4 + + +# 1 "/usr/include/sys/select.h" 1 3 4 +# 30 "/usr/include/sys/select.h" 3 4 +# 1 "/usr/include/bits/select.h" 1 3 4 +# 31 "/usr/include/sys/select.h" 2 3 4 + + +# 1 "/usr/include/bits/types/sigset_t.h" 1 3 4 + + + +# 1 "/usr/include/bits/types/__sigset_t.h" 1 3 4 + + + + +typedef struct +{ + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; +} __sigset_t; +# 5 "/usr/include/bits/types/sigset_t.h" 2 3 4 + + +typedef __sigset_t sigset_t; +# 34 "/usr/include/sys/select.h" 2 3 4 + + + +# 1 "/usr/include/bits/types/struct_timeval.h" 1 3 4 + + + + + + + +struct timeval +{ + + + + + __time_t tv_sec; + __suseconds_t tv_usec; + +}; +# 38 "/usr/include/sys/select.h" 2 3 4 + +# 1 "/usr/include/bits/types/struct_timespec.h" 1 3 4 +# 11 "/usr/include/bits/types/struct_timespec.h" 3 4 +struct timespec +{ + + + + __time_t tv_sec; + + + + + __syscall_slong_t tv_nsec; +# 31 "/usr/include/bits/types/struct_timespec.h" 3 4 +}; +# 40 "/usr/include/sys/select.h" 2 3 4 +# 49 "/usr/include/sys/select.h" 3 4 +typedef long int __fd_mask; +# 59 "/usr/include/sys/select.h" 3 4 +typedef struct + { + + + + __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 91 "/usr/include/sys/select.h" 3 4 +extern "C" { +# 102 "/usr/include/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 127 "/usr/include/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); +# 153 "/usr/include/sys/select.h" 3 4 +} +# 180 "/usr/include/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; + + + + + + +typedef __blkcnt_t blkcnt_t; + + + +typedef __fsblkcnt_t fsblkcnt_t; + + + +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/bits/thread-shared-types.h" 1 3 4 +# 44 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/pthreadtypes-arch.h" 1 3 4 +# 21 "/usr/include/bits/pthreadtypes-arch.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/bits/pthreadtypes-arch.h" 2 3 4 +# 45 "/usr/include/bits/thread-shared-types.h" 2 3 4 + +# 1 "/usr/include/bits/atomic_wide_counter.h" 1 3 4 +# 25 "/usr/include/bits/atomic_wide_counter.h" 3 4 +typedef union +{ + __extension__ unsigned long long int __value64; + struct + { + unsigned int __low; + unsigned int __high; + } __value32; +} __atomic_wide_counter; +# 47 "/usr/include/bits/thread-shared-types.h" 2 3 4 + + + + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; + +typedef struct __pthread_internal_slist +{ + struct __pthread_internal_slist *__next; +} __pthread_slist_t; +# 76 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/struct_mutex.h" 1 3 4 +# 22 "/usr/include/bits/struct_mutex.h" 3 4 +struct __pthread_mutex_s +{ + int __lock; + unsigned int __count; + int __owner; + + unsigned int __nusers; + + + + int __kind; + + short __spins; + short __elision; + __pthread_list_t __list; +# 53 "/usr/include/bits/struct_mutex.h" 3 4 +}; +# 77 "/usr/include/bits/thread-shared-types.h" 2 3 4 +# 89 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/struct_rwlock.h" 1 3 4 +# 23 "/usr/include/bits/struct_rwlock.h" 3 4 +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + + int __cur_writer; + int __shared; + signed char __rwelision; + + + + + unsigned char __pad1[7]; + + + unsigned long int __pad2; + + + unsigned int __flags; +# 55 "/usr/include/bits/struct_rwlock.h" 3 4 +}; +# 90 "/usr/include/bits/thread-shared-types.h" 2 3 4 + + + + +struct __pthread_cond_s +{ + __atomic_wide_counter __wseq; + __atomic_wide_counter __g1_start; + unsigned int __g_size[2] ; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; + unsigned int __unused_initialized_1; + unsigned int __unused_initialized_2; +}; + +typedef unsigned int __tss_t; +typedef unsigned long int __thrd_t; + +typedef struct +{ + int __data ; +} __once_flag; +# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 + + + +typedef unsigned long int pthread_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + +union pthread_attr_t +{ + char __size[56]; + long int __align; +}; + +typedef union pthread_attr_t pthread_attr_t; + + + + +typedef union +{ + struct __pthread_mutex_s __data; + char __size[40]; + long int __align; +} pthread_mutex_t; + + +typedef union +{ + struct __pthread_cond_s __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + + + + + +typedef union +{ + struct __pthread_rwlock_arch_t __data; + char __size[56]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[32]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 228 "/usr/include/sys/types.h" 2 3 4 + + +} +# 515 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) noexcept (true); + + +extern void srandom (unsigned int __seed) noexcept (true); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + noexcept (true) __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + noexcept (true) __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int rand (void) noexcept (true); + +extern void srand (unsigned int __seed) noexcept (true); + + + +extern int rand_r (unsigned int *__seed) noexcept (true); + + + + + + + +extern double drand48 (void) noexcept (true); +extern double erand48 (unsigned short int __xsubi[3]) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) noexcept (true); +extern long int nrand48 (unsigned short int __xsubi[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) noexcept (true); +extern long int jrand48 (unsigned short int __xsubi[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) noexcept (true); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + __extension__ unsigned long long int __a; + + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + noexcept (true) __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern __uint32_t arc4random (void) + noexcept (true) ; + + +extern void arc4random_buf (void *__buf, size_t __size) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) + noexcept (true) ; + + + + +extern void *malloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + +extern void *calloc (size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ; + + + + + + +extern void *realloc (void *__ptr, size_t __size) + noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); + + +extern void free (void *__ptr) noexcept (true); + + + + + + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__warn_unused_result__)) + __attribute__ ((__alloc_size__ (2, 3))) + __attribute__ ((__malloc__ (__builtin_free, 1))); + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__malloc__ (reallocarray, 1))); + + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 24 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) noexcept (true); + + + + + +} +# 707 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + +extern void *aligned_alloc (size_t __alignment, size_t __size) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1))) + __attribute__ ((__alloc_size__ (2))) ; + + + +extern void abort (void) noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + + +extern int atexit (void (*__func) (void)) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +extern "C++" int at_quick_exit (void (*__func) (void)) + noexcept (true) __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); +# 749 "/usr/include/stdlib.h" 3 4 +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +extern void exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + + +extern void quick_exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + + +extern void _Exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + +extern char *getenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + +extern char *secure_getenv (const char *__name) + noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + + + +extern int putenv (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (const char *__name, const char *__value, int __replace) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) noexcept (true); +# 814 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 827 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 837 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 849 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 859 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 870 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 881 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 891 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 901 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 913 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 923 "/usr/include/stdlib.h" 3 4 +extern int system (const char *__command) ; + + + + + +extern char *canonicalize_file_name (const char *__name) + noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__malloc__)) + __attribute__ ((__malloc__ (__builtin_free, 1))) ; +# 940 "/usr/include/stdlib.h" 3 4 +extern char *realpath (const char *__restrict __name, + char *__restrict __resolved) noexcept (true) ; + + + + + + +typedef int (*__compar_fn_t) (const void *, const void *); + + +typedef __compar_fn_t comparison_fn_t; + + + +typedef int (*__compar_d_fn_t) (const void *, const void *, void *); + + + + +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; + + + + + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); + +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __attribute__ ((__nonnull__ (1, 4))); + + + + +extern int abs (int __x) noexcept (true) __attribute__ ((__const__)) ; +extern long int labs (long int __x) noexcept (true) __attribute__ ((__const__)) ; + + +__extension__ extern long long int llabs (long long int __x) + noexcept (true) __attribute__ ((__const__)) ; + + + + + + +extern div_t div (int __numer, int __denom) + noexcept (true) __attribute__ ((__const__)) ; +extern ldiv_t ldiv (long int __numer, long int __denom) + noexcept (true) __attribute__ ((__const__)) ; + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + noexcept (true) __attribute__ ((__const__)) ; +# 1012 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + noexcept (true) __attribute__ ((__nonnull__ (3))) ; + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + noexcept (true) __attribute__ ((__nonnull__ (3))) ; + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + +extern int mblen (const char *__s, size_t __n) noexcept (true); + + +extern int mbtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n) noexcept (true); + + +extern int wctomb (char *__s, wchar_t __wchar) noexcept (true); + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + const char *__restrict __s, size_t __n) noexcept (true) + __attribute__ ((__access__ (__read_only__, 2))); + +extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + noexcept (true) + __attribute__ ((__access__ (__write_only__, 1, 3))) + __attribute__ ((__access__ (__read_only__, 2))); + + + + + + +extern int rpmatch (const char *__response) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 1099 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *const *__restrict __tokens, + char **__restrict __valuep) + noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))) ; + + + + + + + +extern int posix_openpt (int __oflag) ; + + + + + + + +extern int grantpt (int __fd) noexcept (true); + + + +extern int unlockpt (int __fd) noexcept (true); + + + + +extern char *ptsname (int __fd) noexcept (true) ; + + + + + + +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); + + +extern int getpt (void); + + + + + + +extern int getloadavg (double __loadavg[], int __nelem) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 1155 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/stdlib-float.h" 1 3 4 +# 1156 "/usr/include/stdlib.h" 2 3 4 +# 1167 "/usr/include/stdlib.h" 3 4 +} +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::abs; + + + inline long + abs(long __i) { return __builtin_labs(__i); } + + + + inline long long + abs(long long __x) { return __builtin_llabs (__x); } +# 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + inline constexpr double + abs(double __x) + { return __builtin_fabs(__x); } + + inline constexpr float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + + + __extension__ inline constexpr __int128 + abs(__int128 __x) { return __x >= 0 ? __x : -__x; } +# 135 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + __extension__ inline constexpr + __float128 + abs(__float128 __x) + { + + + + return __builtin_fabsf128(__x); + + + + + } + + + +} +} +# 82 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::div_t; + using ::ldiv_t; + + using ::abort; + + using ::aligned_alloc; + + using ::atexit; + + + using ::at_quick_exit; + + + using ::atof; + using ::atoi; + using ::atol; + using ::bsearch; + using ::calloc; + using ::div; + using ::exit; + using ::free; + using ::getenv; + using ::labs; + using ::ldiv; + using ::malloc; + + using ::mblen; + using ::mbstowcs; + using ::mbtowc; + + using ::qsort; + + + using ::quick_exit; + + + using ::rand; + using ::realloc; + using ::srand; + using ::strtod; + using ::strtol; + using ::strtoul; + using ::system; + + using ::wcstombs; + using ::wctomb; + + + + inline ldiv_t + div(long __i, long __j) noexcept { return ldiv(__i, __j); } + + + + +} +# 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" + using ::llabs; + + inline lldiv_t + div(long long __n, long long __d) + { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } + + using ::lldiv; +#pragma GCC diagnostic pop +# 234 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + using ::atoll; + using ::strtoll; + using ::strtoull; + + using ::strtof; + using ::strtold; + + +} + +namespace std +{ + + using ::__gnu_cxx::lldiv_t; + + using ::__gnu_cxx::_Exit; + + using ::__gnu_cxx::llabs; + using ::__gnu_cxx::div; + using ::__gnu_cxx::lldiv; + + using ::__gnu_cxx::atoll; + using ::__gnu_cxx::strtof; + using ::__gnu_cxx::strtoll; + using ::__gnu_cxx::strtoull; + using ::__gnu_cxx::strtold; +} +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 2 3 + +using std::abort; +using std::atexit; +using std::exit; + + + using std::at_quick_exit; + + + using std::quick_exit; + + + using std::_Exit; + + + + +using std::div_t; +using std::ldiv_t; + +using std::abs; +using std::atof; +using std::atoi; +using std::atol; +using std::bsearch; +using std::calloc; +using std::div; +using std::free; +using std::getenv; +using std::labs; +using std::ldiv; +using std::malloc; + +using std::mblen; +using std::mbstowcs; +using std::mbtowc; + +using std::qsort; +using std::rand; +using std::realloc; +using std::srand; +using std::strtod; +using std::strtol; +using std::strtoul; +using std::system; + +using std::wcstombs; +using std::wctomb; +# 55 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 2 +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 2 +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" + +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern "C" +{ + + + + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(void); +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetLimit(size_t *pValue, enum cudaLimit limit); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2PeekAtLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* __cudaCDP2GetErrorString(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* __cudaCDP2GetErrorName(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetDeviceCount(int *count); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetDevice(int *device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamDestroy(cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecord(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventDestroy(cudaEvent_t event); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2FuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Free(void *devPtr); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Malloc(void **devPtr, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemcpyAsync_ptsz(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy2DAsync_ptsz(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy3DAsync_ptsz(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemsetAsync_ptsz(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset2DAsync_ptsz(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset3DAsync_ptsz(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2RuntimeGetVersion(int *runtimeVersion); +extern __attribute__((device)) __attribute__((cudart_builtin)) void * __cudaCDP2GetParameterBuffer(size_t alignment, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) void * __cudaCDP2GetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDeviceV2(void *parameterBuffer, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 311 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) cudaGraphExec_t cudaGetCurrentGraphExec(void) +{ + unsigned long long current_graph_exec; + asm ("mov.u64 %0, %%current_graph_exec;" : "=l"(current_graph_exec)); + return (cudaGraphExec_t)current_graph_exec; +} +# 346 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const void *value , size_t size); +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 430 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate *updates, size_t updateCount); +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaTriggerProgrammaticLaunchCompletion(void) +{ + asm volatile("griddepcontrol.launch_dependents;":::); +} +# 464 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaGridDependencySynchronize(void) +{ + asm volatile("griddepcontrol.wait;":::"memory"); +} +# 479 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) void cudaGraphSetConditional(cudaGraphConditionalHandle handle, unsigned int value); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long cudaCGGetIntrinsicHandle(enum cudaCGScope scope); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetSize(unsigned int *numThreads, unsigned int *numGrids, unsigned long long handle); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetRank(unsigned int *threadRank, unsigned int *gridRank, unsigned long long handle); +# 714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBuffer(size_t alignment, size_t size) +{ + return __cudaCDP2GetParameterBuffer(alignment, size); +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize) +{ + return __cudaCDP2GetParameterBufferV2(func, gridDimension, blockDimension, sharedMemSize); +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream) +{ + return __cudaCDP2LaunchDevice_ptsz(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream) +{ + return __cudaCDP2LaunchDeviceV2_ptsz(parameterBuffer, stream); +} +# 800 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" + static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream) + { + return __cudaCDP2LaunchDevice(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); + } + + static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream) + { + return __cudaCDP2LaunchDeviceV2(parameterBuffer, stream); + } +# 862 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +} + + + + + +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(T **devPtr, size_t size); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, T *entry); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned int flags); +# 901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +template +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const T &value) +{ + return cudaGraphKernelNodeSetParam(node, offset, &value, sizeof(T)); +} +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 +# 287 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern "C" { +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceReset(void); +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetLimit(enum cudaLimit limit, size_t value); +# 478 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +# 501 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t *maxWidthInElements, const struct cudaChannelFormatDesc *fmtDesc, int device); +# 535 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 572 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority); +# 616 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetCacheConfig(enum cudaFuncCache cacheConfig); +# 643 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetByPCIBusId(int *device, const char *pciBusId); +# 673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetPCIBusId(char *pciBusId, int len, int device); +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t *handle, cudaEvent_t event); +# 768 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenEventHandle(cudaEvent_t *event, cudaIpcEventHandle_t handle); +# 813 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t *handle, void *devPtr); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenMemHandle(void **devPtr, cudaIpcMemHandle_t handle, unsigned int flags); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcCloseMemHandle(void *devPtr); +# 951 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(enum cudaFlushGPUDirectRDMAWritesTarget target, enum cudaFlushGPUDirectRDMAWritesScope scope); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void* userData, cudaAsyncCallbackHandle_t* callback); +# 1012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +# 1105 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaDeviceSetSharedMemConfig(enum cudaSharedMemConfig config); +# 1146 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadExit(void); +# 1172 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSynchronize(void); +# 1221 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetLimit(enum cudaLimit limit, size_t value); +# 1254 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetLimit(size_t *pValue, enum cudaLimit limit); +# 1290 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 1337 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetCacheConfig(enum cudaFuncCache cacheConfig); +# 1402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +# 1453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +# 1469 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +# 1485 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +# 1514 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +# 1818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceProperties_v2(struct cudaDeviceProp *prop, int device); +# 2024 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +# 2042 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t *memPool, int device); +# 2066 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetMemPool(cudaMemPool_t *memPool, int device); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetNvSciSyncAttributes(void *nvSciSyncAttrList, int device, int flags); +# 2188 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetP2PAttribute(int *value, enum cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2210 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaChooseDevice(int *device, const struct cudaDeviceProp *prop); +# 2239 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaInitDevice(int device, unsigned int deviceFlags, unsigned int flags); +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDevice(int device); +# 2307 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +# 2338 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetValidDevices(int *device_arr, int len); +# 2408 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDeviceFlags( unsigned int flags ); +# 2453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDeviceFlags( unsigned int *flags ); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamCreate(cudaStream_t *pStream); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +# 2585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithPriority(cudaStream_t *pStream, unsigned int flags, int priority); +# 2613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int *priority); +# 2639 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned int *flags); +# 2676 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long *streamId); +# 2702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetDevice(cudaStream_t hStream, int *device); +# 2717 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCtxResetPersistingL2Cache(void); +# 2737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2758 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 2782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamSetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2847 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags = 0); + + + + + + + +typedef void ( *cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void *userData); +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamAddCallback(cudaStream_t stream, + cudaStreamCallback_t callback, void *userData, unsigned int flags); +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamQuery(cudaStream_t stream); +# 3055 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void *devPtr, size_t length = 0, unsigned int flags = 0x04); +# 3094 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode); +# 3135 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCaptureToGraph(cudaStream_t stream, cudaGraph_t graph, const cudaGraphNode_t *dependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, enum cudaStreamCaptureMode mode); +# 3186 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode); +# 3215 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph); +# 3253 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus); +# 3303 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, size_t *numDependencies_out = 0); +# 3362 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v3(cudaStream_t stream, + enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, + cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, + const cudaGraphEdgeData **edgeData_out = 0, size_t *numDependencies_out = 0); +# 3402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t *dependencies, size_t numDependencies, unsigned int flags = 0); +# 3437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies_v2(cudaStream_t stream, cudaGraphNode_t *dependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, unsigned int flags = 0); +# 3474 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventCreate(cudaEvent_t *event); +# 3511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +# 3552 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3600 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned int flags = 0); +# 3633 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventQuery(cudaEvent_t event); +# 3664 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3694 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3787 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime_v2(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc); +# 4023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedBuffer(void **devPtr, cudaExternalMemory_t extMem, const struct cudaExternalMemoryBufferDesc *bufferDesc); +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t *mipmap, cudaExternalMemory_t extMem, const struct cudaExternalMemoryMipmappedArrayDesc *mipmapDesc); +# 4107 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t *extSem_out, const struct cudaExternalSemaphoreHandleDesc *semHandleDesc); +# 4344 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreSignalParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 4420 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreWaitParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 4443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t *config, const void *func, void **args); +# 4632 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4733 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaLaunchCooperativeKernelMultiDevice(struct cudaLaunchParams *launchParamsList, unsigned int numDevices, unsigned int flags = 0); +# 4783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFuncSetCacheConfig(const void *func, enum cudaFuncCache cacheConfig); +# 4818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +# 4877 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncSetAttribute(const void *func, enum cudaFuncAttribute attr, int value); +# 4903 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetName(const char **name, const void *func); +# 4926 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetParamInfo(const void *func, size_t paramIndex, size_t *paramOffset, size_t *paramSize); +# 4950 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForDevice(double *d); +# 4974 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForHost(double *d); +# 5040 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void *userData); +# 5114 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig(const void *func, enum cudaSharedMemConfig config); +# 5171 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize); +# 5201 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t *dynamicSmemSize, const void *func, int numBlocks, int blockSize); +# 5247 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize, unsigned int flags); +# 5283 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxPotentialClusterSize(int *clusterSize, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5323 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveClusters(int *numClusters, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags = 0x01); +# 5476 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +# 5513 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocHost(void **ptr, size_t size); +# 5556 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height); +# 5608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocArray(cudaArray_t *array, const struct cudaChannelFormatDesc *desc, size_t width, size_t height = 0, unsigned int flags = 0); +# 5647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +# 5670 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeHost(void *ptr); +# 5693 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeArray(cudaArray_t array); +# 5716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostAlloc(void **pHost, size_t size, unsigned int flags); +# 5879 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostRegister(void *ptr, size_t size, unsigned int flags); +# 5902 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostUnregister(void *ptr); +# 5947 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags); +# 5969 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetFlags(unsigned int *pFlags, void *pHost); +# 6008 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3D(struct cudaPitchedPtr* pitchedDevPtr, struct cudaExtent extent); +# 6153 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3DArray(cudaArray_t *array, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int flags = 0); +# 6298 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t *mipmappedArray, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int numLevels, unsigned int flags = 0); +# 6331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t *levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned int level); +# 6436 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3D(const struct cudaMemcpy3DParms *p); +# 6468 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p); +# 6586 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream = 0); +# 6613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeerAsync(const struct cudaMemcpy3DPeerParms *p, cudaStream_t stream = 0); +# 6647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemGetInfo(size_t *free, size_t *total); +# 6673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetInfo(struct cudaChannelFormatDesc *desc, struct cudaExtent *extent, unsigned int *flags, cudaArray_t array); +# 6702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetPlane(cudaArray_t *pPlaneArray, cudaArray_t hArray, unsigned int planeIdx); +# 6725 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaArray_t array, int device); +# 6749 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6777 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaArray_t array); +# 6807 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaMipmappedArray_t mipmap); +# 6852 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind); +# 6887 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count); +# 6936 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6986 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 7036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArray(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind); +# 7083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbol(const void *symbol, const void *src, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 7170 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbol(void *dst, const void *symbol, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 7227 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7262 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeerAsync(void *dst, int dstDevice, const void *src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 7334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyBatchAsync(void **dsts, void **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes *attrs, size_t *attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t stream); +# 7402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DBatchAsync(size_t numOps, struct cudaMemcpy3DBatchOp *opList, size_t *failIdx, unsigned long long flags, cudaStream_t stream); +# 7465 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7523 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7580 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArrayAsync(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync(const void *symbol, const void *src, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7682 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync(void *dst, const void *symbol, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7711 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset(void *devPtr, int value, size_t count); +# 7745 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height); +# 7791 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent); +# 7827 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7868 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7921 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream = 0); +# 7949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolAddress(void **devPtr, const void *symbol); +# 7976 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolSize(size_t *size, const void *symbol); +# 8048 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync(const void *devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 8129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync_v2(const void *devPtr, size_t count, struct cudaMemLocation location, unsigned int flags, cudaStream_t stream = 0); +# 8243 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, int device); +# 8366 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise_v2(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, struct cudaMemLocation location); +# 8448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttribute(void *data, size_t dataSize, enum cudaMemRangeAttribute attribute, const void *devPtr, size_t count); +# 8491 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttributes(void **data, size_t *dataSizes, enum cudaMemRangeAttribute *attributes, size_t numAttributes, const void *devPtr, size_t count); +# 8551 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind); +# 8593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArray(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind); +# 8636 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 8687 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArrayAsync(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8806 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocAsync(void **devPtr, size_t size, cudaStream_t hStream); +# 8832 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeAsync(void *devPtr, cudaStream_t hStream); +# 8857 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8964 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const struct cudaMemAccessDesc *descList, size_t count); +# 8977 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAccess(enum cudaMemAccessFlags *flags, cudaMemPool_t memPool, struct cudaMemLocation *location); +# 9021 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolCreate(cudaMemPool_t *memPool, const struct cudaMemPoolProps *poolProps); +# 9043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 9079 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocFromPoolAsync(void **ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 9104 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportToShareableHandle( + void *shareableHandle, + cudaMemPool_t memPool, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 9131 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportFromShareableHandle( + cudaMemPool_t *memPool, + void *shareableHandle, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 9154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportPointer(struct cudaMemPoolPtrExportData *exportData, void *ptr); +# 9183 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportPointer(void **ptr, cudaMemPool_t memPool, struct cudaMemPoolPtrExportData *exportData); +# 9336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr); +# 9377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice); +# 9419 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags); +# 9441 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9505 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9540 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned int flags); +# 9579 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9646 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, cudaGraphicsResource_t resource); +# 9684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t *array, cudaGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel); +# 9713 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t *mipmappedArray, cudaGraphicsResource_t resource); +# 9748 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetChannelDesc(struct cudaChannelFormatDesc *desc, cudaArray_const_t array); +# 9778 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) struct cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, enum cudaChannelFormatKind f); +# 10003 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateTextureObject(cudaTextureObject_t *pTexObject, const struct cudaResourceDesc *pResDesc, const struct cudaTextureDesc *pTexDesc, const struct cudaResourceViewDesc *pResViewDesc); +# 10023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 10043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaTextureObject_t texObject); +# 10063 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc(struct cudaTextureDesc *pTexDesc, cudaTextureObject_t texObject); +# 10084 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceViewDesc(struct cudaResourceViewDesc *pResViewDesc, cudaTextureObject_t texObject); +# 10129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t *pSurfObject, const struct cudaResourceDesc *pResDesc); +# 10149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 10168 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSurfaceObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaSurfaceObject_t surfObject); +# 10202 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDriverGetVersion(int *driverVersion); +# 10231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 10278 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphCreate(cudaGraph_t *pGraph, unsigned int flags); +# 10377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaKernelNodeParams *pNodeParams); +# 10410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, struct cudaKernelNodeParams *pNodeParams); +# 10437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 10457 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeCopyAttributes( + cudaGraphNode_t hSrc, + cudaGraphNode_t hDst); +# 10480 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 10504 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 10555 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemcpy3DParms *pCopyParams); +# 10614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10751 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode1D( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, struct cudaMemcpy3DParms *pNodeParams); +# 10810 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 10849 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10895 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10941 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams1D( + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemsetParams *pMemsetParams); +# 11012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, struct cudaMemsetParams *pNodeParams); +# 11036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 11078 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddHostNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaHostNodeParams *pNodeParams); +# 11101 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, struct cudaHostNodeParams *pNodeParams); +# 11125 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 11166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 11193 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t *pGraph); +# 11231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies); +# 11275 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11302 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11330 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11404 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11432 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11482 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11515 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreSignalNodeParams *params_out); +# 11543 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11626 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreWaitNodeParams *params_out); +# 11654 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11732 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaMemAllocNodeParams *nodeParams); +# 11759 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, struct cudaMemAllocNodeParams *params_out); +# 11820 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, void *dptr); +# 11844 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void *dptr_out); +# 11872 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGraphMemTrim(int device); +# 11909 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11943 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphClone(cudaGraph_t *pGraphClone, cudaGraph_t originalGraph); +# 11999 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t *pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 12030 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, enum cudaGraphNodeType *pType); +# 12061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t *nodes, size_t *numNodes); +# 12092 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t *pRootNodes, size_t *pNumRootNodes); +# 12126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, size_t *numEdges); +# 12166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges_v2(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, cudaGraphEdgeData *edgeData, size_t *numEdges); +# 12197 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, size_t *pNumDependencies); +# 12234 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, cudaGraphEdgeData *edgeData, size_t *pNumDependencies); +# 12266 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, size_t *pNumDependentNodes); +# 12304 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, cudaGraphEdgeData *edgeData, size_t *pNumDependentNodes); +# 12335 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 12367 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, const cudaGraphEdgeData *edgeData, size_t numDependencies); +# 12398 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 12433 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, const cudaGraphEdgeData *edgeData, size_t numDependencies); +# 12463 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12534 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiate(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12607 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams *instantiateParams); +# 12739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long *flags); +# 12799 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 12850 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 12905 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 12968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 13029 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams1D( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 13088 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 13128 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 13175 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 13220 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13265 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13313 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 13361 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 13401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int isEnabled); +# 13435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int *isEnabled); +# 13529 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo *resultInfo); +# 13554 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13629 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13648 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char *path, unsigned int flags); +# 13684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectCreate(cudaUserObject_t *object_out, void *ptr, cudaHostFn_t destroy, unsigned int initialRefcount, unsigned int flags); +# 13708 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned int count = 1); +# 13736 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned int count = 1); +# 13764 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1, unsigned int flags = 0); +# 13789 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1); +# 13831 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaGraphNodeParams *nodeParams); +# 13875 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddNode_v2(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, struct cudaGraphNodeParams *nodeParams); +# 13904 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13953 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13980 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphConditionalHandleCreate(cudaGraphConditionalHandle *pHandle_out, cudaGraph_t graph, unsigned int defaultLaunchValue = 0, unsigned int flags = 0); +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPoint(const char *symbol, void **funcPtr, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 3 4 + __null +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + ); +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPointByVersion(const char *symbol, void **funcPtr, unsigned int cudaVersion, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 3 4 + __null +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + ); +# 14212 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryLoadData(cudaLibrary_t *library, const void *code, + enum cudaJitOption *jitOptions, void **jitOptionsValues, unsigned int numJitOptions, + enum cudaLibraryOption *libraryOptions, void** libraryOptionValues, unsigned int numLibraryOptions); +# 14272 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryLoadFromFile(cudaLibrary_t *library, const char *fileName, + enum cudaJitOption *jitOptions, void **jitOptionsValues, unsigned int numJitOptions, + enum cudaLibraryOption *libraryOptions, void **libraryOptionValues, unsigned int numLibraryOptions); +# 14293 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryUnload(cudaLibrary_t library); +# 14318 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetKernel(cudaKernel_t *pKernel, cudaLibrary_t library, const char *name); +# 14352 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetGlobal(void **dptr, size_t *bytes, cudaLibrary_t library, const char *name); +# 14385 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetManaged(void **dptr, size_t *bytes, cudaLibrary_t library, const char *name); +# 14412 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetUnifiedFunction(void **fptr, cudaLibrary_t library, const char *symbol); +# 14434 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetKernelCount(unsigned int *count, cudaLibrary_t lib); +# 14456 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryEnumerateKernels(cudaKernel_t *kernels, unsigned int numKernels, cudaLibrary_t lib); +# 14525 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaKernelSetAttributeForDevice(cudaKernel_t kernel, enum cudaFuncAttribute attr, int value, int device); + + + + +extern __attribute__((host)) cudaError_t cudaGetExportTable(const void **ppExportTable, const cudaUUID_t *pExportTableId); +# 14716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetFuncBySymbol(cudaFunction_t* functionPtr, const void* symbolPtr); +# 14740 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetKernel(cudaKernel_t *kernelPtr, const void *entryFuncAddr); +# 14918 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +} +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" 2 +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf1(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf2(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf4(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(char) * 8; + + + + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); + +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescNV12(void) +{ + int e = (int)sizeof(char) * 8; + + return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +} + +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(10, 10, 10, 2, cudaChannelFormatKindUnsignedNormalized1010102); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +} +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 1 +# 53 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 55 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 2 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +{ + struct cudaPitchedPtr s; + + s.ptr = d; + s.pitch = p; + s.xsize = xsz; + s.ysize = ysz; + + return s; +} +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaPos make_cudaPos(size_t x, size_t y, size_t z) +{ + struct cudaPos p; + + p.x = x; + p.y = y; + p.z = z; + + return p; +} +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +{ + struct cudaExtent e; + + e.width = w; + e.height = h; + e.depth = d; + + return e; +} +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x); + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y); + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x); + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y); + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x); + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x); + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y); + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y); + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z); + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z); + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w); + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w); + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x); + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y); + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z); + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x); + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y); + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z); + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w); + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x) +{ + char1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x) +{ + uchar1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y) +{ + char2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y) +{ + uchar2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z) +{ + char3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +{ + uchar3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w) +{ + char4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + uchar4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x) +{ + short1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x) +{ + ushort1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y) +{ + short2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y) +{ + ushort2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z) +{ + short3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +{ + ushort3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w) +{ + short4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +{ + ushort4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x) +{ + int1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x) +{ + uint1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y) +{ + int2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y) +{ + uint2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z) +{ + int3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z) +{ + uint3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w) +{ + int4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w) +{ + uint4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x) +{ + long1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x) +{ + ulong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y) +{ + long2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y) +{ + ulong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z) +{ + long3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z) +{ + ulong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w) +{ + long4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w) +{ + ulong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x) +{ + float1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y) +{ + float2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z) +{ + float3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w) +{ + float4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x) +{ + longlong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x) +{ + ulonglong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y) +{ + longlong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y) +{ + ulonglong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z) +{ + longlong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z) +{ + ulonglong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w) +{ + longlong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w) +{ + ulonglong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x) +{ + double1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y) +{ + double2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z) +{ + double3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w) +{ + double4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" 2 +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 1 +# 71 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 72 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/usr/include/string.h" 1 3 4 +# 26 "/usr/include/string.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/string.h" 2 3 4 + + +# 28 "/usr/include/string.h" 3 4 +extern "C" { + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 34 "/usr/include/string.h" 2 3 4 +# 43 "/usr/include/string.h" 3 4 +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, + size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, const void *__src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memccpy (void *__restrict __dest, const void *__restrict __src, + int __c, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4))); + + + + +extern void *memset (void *__s, int __c, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 80 "/usr/include/string.h" 3 4 +extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern "C++" +{ +extern void *memchr (void *__s, int __c, size_t __n) + noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const void *memchr (const void *__s, int __c, size_t __n) + noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 105 "/usr/include/string.h" 3 4 +} +# 115 "/usr/include/string.h" 3 4 +extern "C++" void *rawmemchr (void *__s, int __c) + noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *rawmemchr (const void *__s, int __c) + noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" void *memrchr (void *__s, int __c, size_t __n) + noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_only__, 1, 3))); +extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) + noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_only__, 1, 3))); +# 141 "/usr/include/string.h" 3 4 +extern char *strcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, const char *__restrict __src, + size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (const char *__s1, const char *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3))); + + + + + + +extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, + locale_t __l) noexcept (true) __attribute__ ((__nonnull__ (2, 4))) + __attribute__ ((__access__ (__write_only__, 1, 3))); + + + + + +extern char *strdup (const char *__s) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (const char *__string, size_t __n) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 224 "/usr/include/string.h" 3 4 +extern "C++" +{ +extern char *strchr (char *__s, int __c) + noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strchr (const char *__s, int __c) + noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 244 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strrchr (char *__s, int __c) + noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strrchr (const char *__s, int __c) + noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 271 "/usr/include/string.h" 3 4 +} +# 281 "/usr/include/string.h" 3 4 +extern "C++" char *strchrnul (char *__s, int __c) + noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const char *strchrnul (const char *__s, int __c) + noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 293 "/usr/include/string.h" 3 4 +extern size_t strcspn (const char *__s, const char *__reject) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (const char *__s, const char *__accept) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern "C++" +{ +extern char *strpbrk (char *__s, const char *__accept) + noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strpbrk (const char *__s, const char *__accept) + noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 321 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strstr (char *__haystack, const char *__needle) + noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strstr (const char *__haystack, const char *__needle) + noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 348 "/usr/include/string.h" 3 4 +} + + + + + + + +extern char *strtok (char *__restrict __s, const char *__restrict __delim) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + + +extern char *__strtok_r (char *__restrict __s, + const char *__restrict __delim, + char **__restrict __save_ptr) + noexcept (true) __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, + char **__restrict __save_ptr) + noexcept (true) __attribute__ ((__nonnull__ (2, 3))); + + + + + +extern "C++" char *strcasestr (char *__haystack, const char *__needle) + noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern "C++" const char *strcasestr (const char *__haystack, + const char *__needle) + noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 389 "/usr/include/string.h" 3 4 +extern void *memmem (const void *__haystack, size_t __haystacklen, + const void *__needle, size_t __needlelen) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))) + __attribute__ ((__access__ (__read_only__, 1, 2))) + __attribute__ ((__access__ (__read_only__, 3, 4))); + + + +extern void *__mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern void *mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlen (const char *__s) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern size_t strnlen (const char *__string, size_t __maxlen) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern char *strerror (int __errnum) noexcept (true); +# 444 "/usr/include/string.h" 3 4 +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); + + + + +extern const char *strerrordesc_np (int __err) noexcept (true); + +extern const char *strerrorname_np (int __err) noexcept (true); + + + + + +extern char *strerror_l (int __errnum, locale_t __l) noexcept (true); + + + +# 1 "/usr/include/strings.h" 1 3 4 +# 23 "/usr/include/strings.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 24 "/usr/include/strings.h" 2 3 4 + + + + + + +extern "C" { + + + +extern int bcmp (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bcopy (const void *__src, void *__dest, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern "C++" +{ +extern char *index (char *__s, int __c) + noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *index (const char *__s, int __c) + noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 66 "/usr/include/strings.h" 3 4 +} + + + + + + + +extern "C++" +{ +extern char *rindex (char *__s, int __c) + noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *rindex (const char *__s, int __c) + noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 94 "/usr/include/strings.h" 3 4 +} +# 104 "/usr/include/strings.h" 3 4 +extern int ffs (int __i) noexcept (true) __attribute__ ((__const__)); + + + + + +extern int ffsl (long int __l) noexcept (true) __attribute__ ((__const__)); +__extension__ extern int ffsll (long long int __ll) + noexcept (true) __attribute__ ((__const__)); + + + +extern int strcasecmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + + +extern int strncasecmp_l (const char *__s1, const char *__s2, + size_t __n, locale_t __loc) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); + + +} +# 463 "/usr/include/string.h" 2 3 4 + + + +extern void explicit_bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__write_only__, 1, 2))); + + + +extern char *strsep (char **__restrict __stringp, + const char *__restrict __delim) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) noexcept (true); + + + +extern const char *sigabbrev_np (int __sig) noexcept (true); + + +extern const char *sigdescr_np (int __sig) noexcept (true); + + + +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlcpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); + + + +extern size_t strlcat (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); + + + + +extern int strverscmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strfry (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void *memfrob (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_write__, 1, 2))); + + + + + + + +extern "C++" char *basename (char *__filename) + noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); +extern "C++" const char *basename (const char *__filename) + noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); +# 552 "/usr/include/string.h" 3 4 +} +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/usr/include/time.h" 1 3 4 +# 29 "/usr/include/time.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 30 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 73 "/usr/include/bits/time.h" 3 4 +# 1 "/usr/include/bits/timex.h" 1 3 4 +# 26 "/usr/include/bits/timex.h" 3 4 +struct timex +{ +# 58 "/usr/include/bits/timex.h" 3 4 + unsigned int modes; + __syscall_slong_t offset; + __syscall_slong_t freq; + __syscall_slong_t maxerror; + __syscall_slong_t esterror; + int status; + __syscall_slong_t constant; + __syscall_slong_t precision; + __syscall_slong_t tolerance; + struct timeval time; + __syscall_slong_t tick; + __syscall_slong_t ppsfreq; + __syscall_slong_t jitter; + int shift; + __syscall_slong_t stabil; + __syscall_slong_t jitcnt; + __syscall_slong_t calcnt; + __syscall_slong_t errcnt; + __syscall_slong_t stbcnt; + + int tai; + + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; + +}; +# 74 "/usr/include/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __attribute__ ((__nonnull__ (2))); +# 90 "/usr/include/bits/time.h" 3 4 +} +# 34 "/usr/include/time.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/types/struct_tm.h" 1 3 4 + + + + + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + const char *tm_zone; + + + + +}; +# 40 "/usr/include/time.h" 2 3 4 +# 48 "/usr/include/time.h" 3 4 +# 1 "/usr/include/bits/types/struct_itimerspec.h" 1 3 4 + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; +# 49 "/usr/include/time.h" 2 3 4 +struct sigevent; +# 68 "/usr/include/time.h" 3 4 +extern "C" { + + + +extern clock_t clock (void) noexcept (true); + + + +extern time_t time (time_t *__timer) noexcept (true); + + +extern double difftime (time_t __time1, time_t __time0); + + +extern time_t mktime (struct tm *__tp) noexcept (true); +# 99 "/usr/include/time.h" 3 4 +extern size_t strftime (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp) + noexcept (true) __attribute__ ((__nonnull__ (1, 3, 4))); + + + + +extern char *strptime (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp) + noexcept (true); + + + + + + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp, + locale_t __loc) noexcept (true); + + + +extern char *strptime_l (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp, + locale_t __loc) noexcept (true); + + + + + + +extern struct tm *gmtime (const time_t *__timer) noexcept (true); + + + +extern struct tm *localtime (const time_t *__timer) noexcept (true); +# 154 "/usr/include/time.h" 3 4 +extern struct tm *gmtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) noexcept (true); + + + +extern struct tm *localtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) noexcept (true); +# 179 "/usr/include/time.h" 3 4 +extern char *asctime (const struct tm *__tp) noexcept (true); + + + +extern char *ctime (const time_t *__timer) noexcept (true); +# 197 "/usr/include/time.h" 3 4 +extern char *asctime_r (const struct tm *__restrict __tp, + char *__restrict __buf) noexcept (true); + + + +extern char *ctime_r (const time_t *__restrict __timer, + char *__restrict __buf) noexcept (true); +# 217 "/usr/include/time.h" 3 4 +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) noexcept (true); + + + +extern int daylight; +extern long int timezone; +# 246 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) noexcept (true); +# 263 "/usr/include/time.h" 3 4 +extern time_t timelocal (struct tm *__tp) noexcept (true); + + + + + + + +extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); +# 281 "/usr/include/time.h" 3 4 +extern int nanosleep (const struct timespec *__requested_time, + struct timespec *__remaining); + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) noexcept (true); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + noexcept (true) __attribute__ ((__nonnull__ (2))); +# 323 "/usr/include/time.h" 3 4 +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); +# 338 "/usr/include/time.h" 3 4 +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) noexcept (true); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) noexcept (true); + + +extern int timer_delete (timer_t __timerid) noexcept (true); + + + +extern int timer_settime (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) noexcept (true); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + noexcept (true); +# 376 "/usr/include/time.h" 3 4 +extern int timer_getoverrun (timer_t __timerid) noexcept (true); + + + + + + +extern int timespec_get (struct timespec *__ts, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 399 "/usr/include/time.h" 3 4 +extern int timespec_getres (struct timespec *__ts, int __base) + noexcept (true); +# 425 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 434 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 448 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 87 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 + + +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" +{ + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) clock_t clock(void) + + + + +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 +noexcept (true) +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memset(void*, int, size_t) +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memcpy(void*, const void*, size_t) +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; + +} +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 1 +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C" +{ +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int abs(int a) +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long int labs(long int a) +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long long int llabs(long long int a) +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fabs(double x) +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fabsf(float x) +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int min(const int a, const int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umin(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmin(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmin(const unsigned long long int a, const unsigned long long int b); +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fminf(float x, float y) +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmin(double x, double y) +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int max(const int a, const int b); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umax(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmax(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmax(const unsigned long long int a, const unsigned long long int b); +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaxf(float x, float y) +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmax(double, double) +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sin(double x) +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cos(double x) +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincos(double x, double *sptr, double *cptr) +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincosf(float x, float *sptr, float *cptr) +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tan(double x) +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sqrt(double x) +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rsqrt(double x); +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rsqrtf(float x); +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log2(double x) +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp2(double x) +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp2f(float x) +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp10(double x) +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp10f(float x) +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double expm1(double x) +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expm1f(float x) +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log2f(float x) +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log10(double x) +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log(double x) +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log1p(double x) +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log1pf(float x) +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double floor(double x) +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp(double x) +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cosh(double x) +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinh(double x) +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tanh(double x) +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acosh(double x) +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acoshf(float x) +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asinh(double x) +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinhf(float x) +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atanh(double x) +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanhf(float x) +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ldexp(double x, int exp) +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ldexpf(float x, int exp) +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double logb(double x) +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logbf(float x) +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogb(double x) +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogbf(float x) +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbn(double x, int n) +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalbnf(float x, int n) +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbln(double x, long int n) +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalblnf(float x, long int n) +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double frexp(double x, int *nptr) +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float frexpf(float x, int *nptr) +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double round(double x) +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float roundf(float x) +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lround(double x) +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lroundf(float x) +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llround(double x) +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llroundf(float x) +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rintf(float x) +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrint(double x) +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrintf(float x) +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrint(double x) +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrintf(float x) +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nearbyint(double x) +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nearbyintf(float x) +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ceil(double x) +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double trunc(double x) +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float truncf(float x) +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fdim(double x, double y) +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fdimf(float x, float y) +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan2(double y, double x) +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan(double x) +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acos(double x) +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asin(double x) +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double hypot(double x, double y) +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rhypot(double x, double y) +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float hypotf(float x, float y) +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rhypotf(float x, float y) +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm3d(double a, double b, double c) +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm3d(double a, double b, double c) +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm4d(double a, double b, double c, double d) +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm4d(double a, double b, double c, double d) +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +__attribute__((device)) __attribute__((device_builtin)) double norm(int dim, double const * p) +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm(int dim, double const * p) +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnormf(int dim, float const * p) +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +__attribute__((device)) __attribute__((device_builtin)) float normf(int dim, float const * p) +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm3df(float a, float b, float c) +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm3df(float a, float b, float c) +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm4df(float a, float b, float c, float d) +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm4df(float a, float b, float c, float d) +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cbrt(double x) +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cbrtf(float x) +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2512 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rcbrt(double x); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rcbrtf(float x); +# 2556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinpi(double x) noexcept (true); +# 2579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinpif(float x) noexcept (true); +# 2601 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cospi(double x) noexcept (true); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cospif(float x) noexcept (true); +# 2636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospi(double x, double *sptr, double *cptr); +# 2649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospif(float x, float *sptr, float *cptr); +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double pow(double x, double y) +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double modf(double x, double *iptr) +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmod(double x, double y) +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remainder(double x, double y) +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remainderf(float x, float y) +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remquo(double x, double y, int *quo) +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remquof(float x, float y, int *quo) +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j0(double x) +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j0f(float x) +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j1(double x) +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j1f(float x) +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double jn(int n, double x) +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float jnf(int n, float x) +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y0(double x) +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y0f(float x) +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y1(double x) +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y1f(float x) +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double yn(int n, double x) +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ynf(int n, float x) +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i0(double x) +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i0f(float x) +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i1(double x) +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i1f(float x) +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erf(double x) +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erff(float x) +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfinv(double x); +# 3406 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfinvf(float x); +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfc(double x) +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcf(float x) +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double lgamma(double x) +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcinv(double x); +# 3534 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcinvf(float x); +# 3556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdfinv(double x); +# 3578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdfinvf(float x); +# 3597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdf(double x); +# 3616 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdff(float x); +# 3636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcx(double x); +# 3656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcxf(float x); +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float lgammaf(float x) +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tgamma(double x) +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tgammaf(float x) +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double copysign(double x, double y) +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float copysignf(float x, float y) +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nextafter(double x, double y) +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nextafterf(float x, float y) +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nan(const char *tagp) +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nanf(const char *tagp) +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinff(float) +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanf(float) +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finite(double) +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitef(float) +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbit(double) +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnan(double) +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinf(double) +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitf(float) +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fma(double x, double y, double z) +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaf(float x, float y, float z) +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitl(long double) +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitel(long double) +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinfl(long double) +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanl(long double) +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acosf(float x) +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinf(float x) +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanf(float x) +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atan2f(float y, float x) +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cosf(float x) +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinf(float x) +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanf(float x) +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float coshf(float x) +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinhf(float x) +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanhf(float x) +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logf(float x) +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expf(float x) +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log10f(float x) +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float modff(float x, float *iptr) +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float powf(float x, float y) +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sqrtf(float x) +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ceilf(float x) +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float floorf(float x) +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmodf(float x, float y) +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/requires_hosted.h" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 2 3 +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +extern "C++" { + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + struct __true_type { }; + struct __false_type { }; + + template + struct __truth_type + { typedef __false_type __type; }; + + template<> + struct __truth_type + { typedef __true_type __type; }; + + + + template + struct __traitor + { + enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; + typedef typename __truth_type<__value>::__type __type; + }; + + + template + struct __are_same + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __are_same<_Tp, _Tp> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_void + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_void + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_integer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 273 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +__extension__ template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; __extension__ template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template + struct __is_floating + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 367 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template + struct __is_pointer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __is_pointer<_Tp*> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_arithmetic + : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > + { }; + + + + + template + struct __is_scalar + : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > + { }; + + + + + template + struct __is_char + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_byte + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + enum class byte : unsigned char; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 471 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template struct iterator_traits; + + + template + struct __is_nonvolatile_trivially_copyable + { + enum { __value = __is_trivially_copyable(_Tp) }; + }; + + + + + template + struct __is_nonvolatile_trivially_copyable + { + enum { __value = 0 }; + }; + + + template + struct __memcpyable + { + enum { __value = 0 }; + }; + + template + struct __memcpyable<_Tp*, _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcpyable<_Tp*, const _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + + + + + + template + struct __memcmpable + { + enum { __value = 0 }; + }; + + + template + struct __memcmpable<_Tp*, _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcmpable + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcmpable<_Tp*, const _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + + + + + + + template::__value + + > + struct __is_memcmp_ordered + { + static const bool __value = _Tp(-1) > _Tp(1); + }; + + template + struct __is_memcmp_ordered<_Tp, false> + { + static const bool __value = false; + }; + + + template + struct __is_memcmp_ordered_with + { + static const bool __value = __is_memcmp_ordered<_Tp>::__value + && __is_memcmp_ordered<_Up>::__value; + }; + + template + struct __is_memcmp_ordered_with<_Tp, _Up, false> + { + static const bool __value = false; + }; +# 580 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template<> + struct __is_memcmp_ordered_with + { static constexpr bool __value = true; }; + + template + struct __is_memcmp_ordered_with<_Tp, std::byte, _SameSize> + { static constexpr bool __value = false; }; + + template + struct __is_memcmp_ordered_with + { static constexpr bool __value = false; }; + + + + + + template + struct __is_move_iterator + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + template + + inline _Iterator + __miter_base(_Iterator __it) + { return __it; } + + +} +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + + + + +extern "C++" { + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct __enable_if + { }; + + template + struct __enable_if + { typedef _Tp __type; }; + + + + template + struct __conditional_type + { typedef _Iftrue __type; }; + + template + struct __conditional_type + { typedef _Iffalse __type; }; + + + + template + struct __add_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned short __type; }; + + template<> + struct __add_unsigned + { typedef unsigned int __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __add_unsigned; + + template<> + struct __add_unsigned; + + + + template + struct __remove_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef short __type; }; + + template<> + struct __remove_unsigned + { typedef int __type; }; + + template<> + struct __remove_unsigned + { typedef long __type; }; + + template<> + struct __remove_unsigned + { typedef long long __type; }; + + + template<> + struct __remove_unsigned; + + template<> + struct __remove_unsigned; + + + + template + constexpr + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + constexpr + inline bool + __is_null_pointer(_Type) + { return false; } + + + constexpr bool + __is_null_pointer(std::nullptr_t) + { return true; } + + + + + template::__value> + struct __promote + { typedef double __type; }; + + + + + template + struct __promote<_Tp, false> + { }; + + template<> + struct __promote + { typedef long double __type; }; + + template<> + struct __promote + { typedef double __type; }; + + template<> + struct __promote + { typedef float __type; }; +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + template + using __promoted_t = decltype((typename __promote<_Tp>::__type(0) + ...)); + + + + template + using __promote_2 = __promote<__promoted_t<_Tp, _Up>>; + + template + using __promote_3 = __promote<__promoted_t<_Tp, _Up, _Vp>>; + + template + using __promote_4 = __promote<__promoted_t<_Tp, _Up, _Vp, _Wp>>; +# 269 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + +} +} +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + +# 1 "/usr/include/math.h" 1 3 4 +# 27 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/math.h" 2 3 4 + + + + + + +extern "C" { + + + + + +# 1 "/usr/include/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/bits/math-vector.h" 3 4 +# 1 "/usr/include/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/bits/math-vector.h" 2 3 4 +# 41 "/usr/include/math.h" 2 3 4 +# 156 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/flt-eval-method.h" 1 3 4 +# 157 "/usr/include/math.h" 2 3 4 +# 167 "/usr/include/math.h" 3 4 +typedef float float_t; +typedef double double_t; +# 208 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/fp-logb.h" 1 3 4 +# 209 "/usr/include/math.h" 2 3 4 +# 251 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/fp-fast.h" 1 3 4 +# 252 "/usr/include/math.h" 2 3 4 + + + +enum + { + FP_INT_UPWARD = + + 0, + FP_INT_DOWNWARD = + + 1, + FP_INT_TOWARDZERO = + + 2, + FP_INT_TONEARESTFROMZERO = + + 3, + FP_INT_TONEAREST = + + 4, + }; + + +# 1 "/usr/include/bits/mathcalls-macros.h" 1 3 4 +# 276 "/usr/include/math.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassify (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbit (double __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinf (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finite (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnan (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsig (double __x, double __y) noexcept (true); + + +extern int __issignaling (double __value) noexcept (true) + __attribute__ ((__const__)); +# 282 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern double acos (double __x) noexcept (true); extern double __acos (double __x) noexcept (true); + + extern double asin (double __x) noexcept (true); extern double __asin (double __x) noexcept (true); + + extern double atan (double __x) noexcept (true); extern double __atan (double __x) noexcept (true); + + extern double atan2 (double __y, double __x) noexcept (true); extern double __atan2 (double __y, double __x) noexcept (true); + + + extern double cos (double __x) noexcept (true); extern double __cos (double __x) noexcept (true); + + extern double sin (double __x) noexcept (true); extern double __sin (double __x) noexcept (true); + + extern double tan (double __x) noexcept (true); extern double __tan (double __x) noexcept (true); + + + +extern double acospi (double __x) noexcept (true); extern double __acospi (double __x) noexcept (true); + +extern double asinpi (double __x) noexcept (true); extern double __asinpi (double __x) noexcept (true); + +extern double atanpi (double __x) noexcept (true); extern double __atanpi (double __x) noexcept (true); + +extern double atan2pi (double __y, double __x) noexcept (true); extern double __atan2pi (double __y, double __x) noexcept (true); + + + extern double cospi (double __x) noexcept (true); extern double __cospi (double __x) noexcept (true); + + extern double sinpi (double __x) noexcept (true); extern double __sinpi (double __x) noexcept (true); + + extern double tanpi (double __x) noexcept (true); extern double __tanpi (double __x) noexcept (true); + + + + + + extern double cosh (double __x) noexcept (true); extern double __cosh (double __x) noexcept (true); + + extern double sinh (double __x) noexcept (true); extern double __sinh (double __x) noexcept (true); + + extern double tanh (double __x) noexcept (true); extern double __tanh (double __x) noexcept (true); + + + + extern void sincos (double __x, double *__sinx, double *__cosx) noexcept (true); extern void __sincos (double __x, double *__sinx, double *__cosx) noexcept (true) + ; + + + + + extern double acosh (double __x) noexcept (true); extern double __acosh (double __x) noexcept (true); + + extern double asinh (double __x) noexcept (true); extern double __asinh (double __x) noexcept (true); + + extern double atanh (double __x) noexcept (true); extern double __atanh (double __x) noexcept (true); + + + + + + extern double exp (double __x) noexcept (true); extern double __exp (double __x) noexcept (true); + + +extern double frexp (double __x, int *__exponent) noexcept (true); extern double __frexp (double __x, int *__exponent) noexcept (true); + + +extern double ldexp (double __x, int __exponent) noexcept (true); extern double __ldexp (double __x, int __exponent) noexcept (true); + + + extern double log (double __x) noexcept (true); extern double __log (double __x) noexcept (true); + + + extern double log10 (double __x) noexcept (true); extern double __log10 (double __x) noexcept (true); + + +extern double modf (double __x, double *__iptr) noexcept (true); extern double __modf (double __x, double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern double exp10 (double __x) noexcept (true); extern double __exp10 (double __x) noexcept (true); + + +extern double exp2m1 (double __x) noexcept (true); extern double __exp2m1 (double __x) noexcept (true); + + +extern double exp10m1 (double __x) noexcept (true); extern double __exp10m1 (double __x) noexcept (true); + + +extern double log2p1 (double __x) noexcept (true); extern double __log2p1 (double __x) noexcept (true); + + +extern double log10p1 (double __x) noexcept (true); extern double __log10p1 (double __x) noexcept (true); + + + extern double logp1 (double __x) noexcept (true); extern double __logp1 (double __x) noexcept (true); + + + + + extern double expm1 (double __x) noexcept (true); extern double __expm1 (double __x) noexcept (true); + + + extern double log1p (double __x) noexcept (true); extern double __log1p (double __x) noexcept (true); + + +extern double logb (double __x) noexcept (true); extern double __logb (double __x) noexcept (true); + + + + + extern double exp2 (double __x) noexcept (true); extern double __exp2 (double __x) noexcept (true); + + + extern double log2 (double __x) noexcept (true); extern double __log2 (double __x) noexcept (true); + + + + + + + extern double pow (double __x, double __y) noexcept (true); extern double __pow (double __x, double __y) noexcept (true); + + +extern double sqrt (double __x) noexcept (true); extern double __sqrt (double __x) noexcept (true); + + + + extern double hypot (double __x, double __y) noexcept (true); extern double __hypot (double __x, double __y) noexcept (true); + + + + + extern double cbrt (double __x) noexcept (true); extern double __cbrt (double __x) noexcept (true); + + + + + + +extern double ceil (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fabs (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double floor (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fmod (double __x, double __y) noexcept (true); extern double __fmod (double __x, double __y) noexcept (true); +# 216 "/usr/include/bits/mathcalls.h" 3 4 +extern int finite (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern double drem (double __x, double __y) noexcept (true); extern double __drem (double __x, double __y) noexcept (true); + + + +extern double significand (double __x) noexcept (true); extern double __significand (double __x) noexcept (true); + + + + + + +extern double copysign (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern double nan (const char *__tagb) noexcept (true); extern double __nan (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern double j0 (double) noexcept (true); extern double __j0 (double) noexcept (true); +extern double j1 (double) noexcept (true); extern double __j1 (double) noexcept (true); +extern double jn (int, double) noexcept (true); extern double __jn (int, double) noexcept (true); +extern double y0 (double) noexcept (true); extern double __y0 (double) noexcept (true); +extern double y1 (double) noexcept (true); extern double __y1 (double) noexcept (true); +extern double yn (int, double) noexcept (true); extern double __yn (int, double) noexcept (true); + + + + + + extern double erf (double) noexcept (true); extern double __erf (double) noexcept (true); + extern double erfc (double) noexcept (true); extern double __erfc (double) noexcept (true); +extern double lgamma (double) noexcept (true); extern double __lgamma (double) noexcept (true); + + + + +extern double tgamma (double) noexcept (true); extern double __tgamma (double) noexcept (true); + + + + + +extern double gamma (double) noexcept (true); extern double __gamma (double) noexcept (true); + + + + + + + +extern double lgamma_r (double, int *__signgamp) noexcept (true); extern double __lgamma_r (double, int *__signgamp) noexcept (true); + + + + + + +extern double rint (double __x) noexcept (true); extern double __rint (double __x) noexcept (true); + + +extern double nextafter (double __x, double __y) noexcept (true); extern double __nextafter (double __x, double __y) noexcept (true); + +extern double nexttoward (double __x, long double __y) noexcept (true); extern double __nexttoward (double __x, long double __y) noexcept (true); + + + + +extern double nextdown (double __x) noexcept (true); extern double __nextdown (double __x) noexcept (true); + +extern double nextup (double __x) noexcept (true); extern double __nextup (double __x) noexcept (true); + + + +extern double remainder (double __x, double __y) noexcept (true); extern double __remainder (double __x, double __y) noexcept (true); + + + +extern double scalbn (double __x, int __n) noexcept (true); extern double __scalbn (double __x, int __n) noexcept (true); + + + +extern int ilogb (double __x) noexcept (true); extern int __ilogb (double __x) noexcept (true); + + + + +extern long int llogb (double __x) noexcept (true); extern long int __llogb (double __x) noexcept (true); + + + + +extern double scalbln (double __x, long int __n) noexcept (true); extern double __scalbln (double __x, long int __n) noexcept (true); + + + +extern double nearbyint (double __x) noexcept (true); extern double __nearbyint (double __x) noexcept (true); + + + +extern double round (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern double trunc (double __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern double remquo (double __x, double __y, int *__quo) noexcept (true); extern double __remquo (double __x, double __y, int *__quo) noexcept (true); + + + + + + +extern long int lrint (double __x) noexcept (true); extern long int __lrint (double __x) noexcept (true); +__extension__ +extern long long int llrint (double __x) noexcept (true); extern long long int __llrint (double __x) noexcept (true); + + + +extern long int lround (double __x) noexcept (true); extern long int __lround (double __x) noexcept (true); +__extension__ +extern long long int llround (double __x) noexcept (true); extern long long int __llround (double __x) noexcept (true); + + + +extern double fdim (double __x, double __y) noexcept (true); extern double __fdim (double __x, double __y) noexcept (true); + + + +extern double fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmin (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + +extern double fma (double __x, double __y, double __z) noexcept (true); extern double __fma (double __x, double __y, double __z) noexcept (true); + + + + +extern double roundeven (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalize (double *__cx, const double *__x) noexcept (true); + + + + + + +extern double fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern double fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorder (const double *__x, const double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermag (const double *__x, const double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern double getpayload (const double *__x) noexcept (true); extern double __getpayload (const double *__x) noexcept (true); + + +extern int setpayload (double *__x, double __payload) noexcept (true); + + +extern int setpayloadsig (double *__x, double __payload) noexcept (true); + + + + + + + +extern double scalb (double __x, double __n) noexcept (true); extern double __scalb (double __x, double __n) noexcept (true); +# 283 "/usr/include/math.h" 2 3 4 +# 298 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitf (float __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinff (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitef (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanf (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigf (float __x, float __y) noexcept (true); + + +extern int __issignalingf (float __value) noexcept (true) + __attribute__ ((__const__)); +# 299 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern float acosf (float __x) noexcept (true); extern float __acosf (float __x) noexcept (true); + + extern float asinf (float __x) noexcept (true); extern float __asinf (float __x) noexcept (true); + + extern float atanf (float __x) noexcept (true); extern float __atanf (float __x) noexcept (true); + + extern float atan2f (float __y, float __x) noexcept (true); extern float __atan2f (float __y, float __x) noexcept (true); + + + extern float cosf (float __x) noexcept (true); extern float __cosf (float __x) noexcept (true); + + extern float sinf (float __x) noexcept (true); extern float __sinf (float __x) noexcept (true); + + extern float tanf (float __x) noexcept (true); extern float __tanf (float __x) noexcept (true); + + + +extern float acospif (float __x) noexcept (true); extern float __acospif (float __x) noexcept (true); + +extern float asinpif (float __x) noexcept (true); extern float __asinpif (float __x) noexcept (true); + +extern float atanpif (float __x) noexcept (true); extern float __atanpif (float __x) noexcept (true); + +extern float atan2pif (float __y, float __x) noexcept (true); extern float __atan2pif (float __y, float __x) noexcept (true); + + + extern float cospif (float __x) noexcept (true); extern float __cospif (float __x) noexcept (true); + + extern float sinpif (float __x) noexcept (true); extern float __sinpif (float __x) noexcept (true); + + extern float tanpif (float __x) noexcept (true); extern float __tanpif (float __x) noexcept (true); + + + + + + extern float coshf (float __x) noexcept (true); extern float __coshf (float __x) noexcept (true); + + extern float sinhf (float __x) noexcept (true); extern float __sinhf (float __x) noexcept (true); + + extern float tanhf (float __x) noexcept (true); extern float __tanhf (float __x) noexcept (true); + + + + extern void sincosf (float __x, float *__sinx, float *__cosx) noexcept (true); extern void __sincosf (float __x, float *__sinx, float *__cosx) noexcept (true) + ; + + + + + extern float acoshf (float __x) noexcept (true); extern float __acoshf (float __x) noexcept (true); + + extern float asinhf (float __x) noexcept (true); extern float __asinhf (float __x) noexcept (true); + + extern float atanhf (float __x) noexcept (true); extern float __atanhf (float __x) noexcept (true); + + + + + + extern float expf (float __x) noexcept (true); extern float __expf (float __x) noexcept (true); + + +extern float frexpf (float __x, int *__exponent) noexcept (true); extern float __frexpf (float __x, int *__exponent) noexcept (true); + + +extern float ldexpf (float __x, int __exponent) noexcept (true); extern float __ldexpf (float __x, int __exponent) noexcept (true); + + + extern float logf (float __x) noexcept (true); extern float __logf (float __x) noexcept (true); + + + extern float log10f (float __x) noexcept (true); extern float __log10f (float __x) noexcept (true); + + +extern float modff (float __x, float *__iptr) noexcept (true); extern float __modff (float __x, float *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern float exp10f (float __x) noexcept (true); extern float __exp10f (float __x) noexcept (true); + + +extern float exp2m1f (float __x) noexcept (true); extern float __exp2m1f (float __x) noexcept (true); + + +extern float exp10m1f (float __x) noexcept (true); extern float __exp10m1f (float __x) noexcept (true); + + +extern float log2p1f (float __x) noexcept (true); extern float __log2p1f (float __x) noexcept (true); + + +extern float log10p1f (float __x) noexcept (true); extern float __log10p1f (float __x) noexcept (true); + + + extern float logp1f (float __x) noexcept (true); extern float __logp1f (float __x) noexcept (true); + + + + + extern float expm1f (float __x) noexcept (true); extern float __expm1f (float __x) noexcept (true); + + + extern float log1pf (float __x) noexcept (true); extern float __log1pf (float __x) noexcept (true); + + +extern float logbf (float __x) noexcept (true); extern float __logbf (float __x) noexcept (true); + + + + + extern float exp2f (float __x) noexcept (true); extern float __exp2f (float __x) noexcept (true); + + + extern float log2f (float __x) noexcept (true); extern float __log2f (float __x) noexcept (true); + + + + + + + extern float powf (float __x, float __y) noexcept (true); extern float __powf (float __x, float __y) noexcept (true); + + +extern float sqrtf (float __x) noexcept (true); extern float __sqrtf (float __x) noexcept (true); + + + + extern float hypotf (float __x, float __y) noexcept (true); extern float __hypotf (float __x, float __y) noexcept (true); + + + + + extern float cbrtf (float __x) noexcept (true); extern float __cbrtf (float __x) noexcept (true); + + + + + + +extern float ceilf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fabsf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float floorf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fmodf (float __x, float __y) noexcept (true); extern float __fmodf (float __x, float __y) noexcept (true); +# 210 "/usr/include/bits/mathcalls.h" 3 4 +extern int isinff (float __value) noexcept (true) + __attribute__ ((__const__)); + + + + +extern int finitef (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern float dremf (float __x, float __y) noexcept (true); extern float __dremf (float __x, float __y) noexcept (true); + + + +extern float significandf (float __x) noexcept (true); extern float __significandf (float __x) noexcept (true); + + + + + + +extern float copysignf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern float nanf (const char *__tagb) noexcept (true); extern float __nanf (const char *__tagb) noexcept (true); +# 246 "/usr/include/bits/mathcalls.h" 3 4 +extern int isnanf (float __value) noexcept (true) + __attribute__ ((__const__)); + + + + + +extern float j0f (float) noexcept (true); extern float __j0f (float) noexcept (true); +extern float j1f (float) noexcept (true); extern float __j1f (float) noexcept (true); +extern float jnf (int, float) noexcept (true); extern float __jnf (int, float) noexcept (true); +extern float y0f (float) noexcept (true); extern float __y0f (float) noexcept (true); +extern float y1f (float) noexcept (true); extern float __y1f (float) noexcept (true); +extern float ynf (int, float) noexcept (true); extern float __ynf (int, float) noexcept (true); + + + + + + extern float erff (float) noexcept (true); extern float __erff (float) noexcept (true); + extern float erfcf (float) noexcept (true); extern float __erfcf (float) noexcept (true); +extern float lgammaf (float) noexcept (true); extern float __lgammaf (float) noexcept (true); + + + + +extern float tgammaf (float) noexcept (true); extern float __tgammaf (float) noexcept (true); + + + + + +extern float gammaf (float) noexcept (true); extern float __gammaf (float) noexcept (true); + + + + + + + +extern float lgammaf_r (float, int *__signgamp) noexcept (true); extern float __lgammaf_r (float, int *__signgamp) noexcept (true); + + + + + + +extern float rintf (float __x) noexcept (true); extern float __rintf (float __x) noexcept (true); + + +extern float nextafterf (float __x, float __y) noexcept (true); extern float __nextafterf (float __x, float __y) noexcept (true); + +extern float nexttowardf (float __x, long double __y) noexcept (true); extern float __nexttowardf (float __x, long double __y) noexcept (true); + + + + +extern float nextdownf (float __x) noexcept (true); extern float __nextdownf (float __x) noexcept (true); + +extern float nextupf (float __x) noexcept (true); extern float __nextupf (float __x) noexcept (true); + + + +extern float remainderf (float __x, float __y) noexcept (true); extern float __remainderf (float __x, float __y) noexcept (true); + + + +extern float scalbnf (float __x, int __n) noexcept (true); extern float __scalbnf (float __x, int __n) noexcept (true); + + + +extern int ilogbf (float __x) noexcept (true); extern int __ilogbf (float __x) noexcept (true); + + + + +extern long int llogbf (float __x) noexcept (true); extern long int __llogbf (float __x) noexcept (true); + + + + +extern float scalblnf (float __x, long int __n) noexcept (true); extern float __scalblnf (float __x, long int __n) noexcept (true); + + + +extern float nearbyintf (float __x) noexcept (true); extern float __nearbyintf (float __x) noexcept (true); + + + +extern float roundf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern float truncf (float __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern float remquof (float __x, float __y, int *__quo) noexcept (true); extern float __remquof (float __x, float __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf (float __x) noexcept (true); extern long int __lrintf (float __x) noexcept (true); +__extension__ +extern long long int llrintf (float __x) noexcept (true); extern long long int __llrintf (float __x) noexcept (true); + + + +extern long int lroundf (float __x) noexcept (true); extern long int __lroundf (float __x) noexcept (true); +__extension__ +extern long long int llroundf (float __x) noexcept (true); extern long long int __llroundf (float __x) noexcept (true); + + + +extern float fdimf (float __x, float __y) noexcept (true); extern float __fdimf (float __x, float __y) noexcept (true); + + + +extern float fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + +extern float fmaf (float __x, float __y, float __z) noexcept (true); extern float __fmaf (float __x, float __y, float __z) noexcept (true); + + + + +extern float roundevenf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef (float *__cx, const float *__x) noexcept (true); + + + + + + +extern float fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern float fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf (const float *__x, const float *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf (const float *__x, const float *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern float getpayloadf (const float *__x) noexcept (true); extern float __getpayloadf (const float *__x) noexcept (true); + + +extern int setpayloadf (float *__x, float __payload) noexcept (true); + + +extern int setpayloadsigf (float *__x, float __payload) noexcept (true); + + + + + + + +extern float scalbf (float __x, float __n) noexcept (true); extern float __scalbf (float __x, float __n) noexcept (true); +# 300 "/usr/include/math.h" 2 3 4 +# 367 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinfl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitel (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigl (long double __x, long double __y) noexcept (true); + + +extern int __issignalingl (long double __value) noexcept (true) + __attribute__ ((__const__)); +# 368 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern long double acosl (long double __x) noexcept (true); extern long double __acosl (long double __x) noexcept (true); + + extern long double asinl (long double __x) noexcept (true); extern long double __asinl (long double __x) noexcept (true); + + extern long double atanl (long double __x) noexcept (true); extern long double __atanl (long double __x) noexcept (true); + + extern long double atan2l (long double __y, long double __x) noexcept (true); extern long double __atan2l (long double __y, long double __x) noexcept (true); + + + extern long double cosl (long double __x) noexcept (true); extern long double __cosl (long double __x) noexcept (true); + + extern long double sinl (long double __x) noexcept (true); extern long double __sinl (long double __x) noexcept (true); + + extern long double tanl (long double __x) noexcept (true); extern long double __tanl (long double __x) noexcept (true); + + + +extern long double acospil (long double __x) noexcept (true); extern long double __acospil (long double __x) noexcept (true); + +extern long double asinpil (long double __x) noexcept (true); extern long double __asinpil (long double __x) noexcept (true); + +extern long double atanpil (long double __x) noexcept (true); extern long double __atanpil (long double __x) noexcept (true); + +extern long double atan2pil (long double __y, long double __x) noexcept (true); extern long double __atan2pil (long double __y, long double __x) noexcept (true); + + + extern long double cospil (long double __x) noexcept (true); extern long double __cospil (long double __x) noexcept (true); + + extern long double sinpil (long double __x) noexcept (true); extern long double __sinpil (long double __x) noexcept (true); + + extern long double tanpil (long double __x) noexcept (true); extern long double __tanpil (long double __x) noexcept (true); + + + + + + extern long double coshl (long double __x) noexcept (true); extern long double __coshl (long double __x) noexcept (true); + + extern long double sinhl (long double __x) noexcept (true); extern long double __sinhl (long double __x) noexcept (true); + + extern long double tanhl (long double __x) noexcept (true); extern long double __tanhl (long double __x) noexcept (true); + + + + extern void sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true) + ; + + + + + extern long double acoshl (long double __x) noexcept (true); extern long double __acoshl (long double __x) noexcept (true); + + extern long double asinhl (long double __x) noexcept (true); extern long double __asinhl (long double __x) noexcept (true); + + extern long double atanhl (long double __x) noexcept (true); extern long double __atanhl (long double __x) noexcept (true); + + + + + + extern long double expl (long double __x) noexcept (true); extern long double __expl (long double __x) noexcept (true); + + +extern long double frexpl (long double __x, int *__exponent) noexcept (true); extern long double __frexpl (long double __x, int *__exponent) noexcept (true); + + +extern long double ldexpl (long double __x, int __exponent) noexcept (true); extern long double __ldexpl (long double __x, int __exponent) noexcept (true); + + + extern long double logl (long double __x) noexcept (true); extern long double __logl (long double __x) noexcept (true); + + + extern long double log10l (long double __x) noexcept (true); extern long double __log10l (long double __x) noexcept (true); + + +extern long double modfl (long double __x, long double *__iptr) noexcept (true); extern long double __modfl (long double __x, long double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern long double exp10l (long double __x) noexcept (true); extern long double __exp10l (long double __x) noexcept (true); + + +extern long double exp2m1l (long double __x) noexcept (true); extern long double __exp2m1l (long double __x) noexcept (true); + + +extern long double exp10m1l (long double __x) noexcept (true); extern long double __exp10m1l (long double __x) noexcept (true); + + +extern long double log2p1l (long double __x) noexcept (true); extern long double __log2p1l (long double __x) noexcept (true); + + +extern long double log10p1l (long double __x) noexcept (true); extern long double __log10p1l (long double __x) noexcept (true); + + + extern long double logp1l (long double __x) noexcept (true); extern long double __logp1l (long double __x) noexcept (true); + + + + + extern long double expm1l (long double __x) noexcept (true); extern long double __expm1l (long double __x) noexcept (true); + + + extern long double log1pl (long double __x) noexcept (true); extern long double __log1pl (long double __x) noexcept (true); + + +extern long double logbl (long double __x) noexcept (true); extern long double __logbl (long double __x) noexcept (true); + + + + + extern long double exp2l (long double __x) noexcept (true); extern long double __exp2l (long double __x) noexcept (true); + + + extern long double log2l (long double __x) noexcept (true); extern long double __log2l (long double __x) noexcept (true); + + + + + + + extern long double powl (long double __x, long double __y) noexcept (true); extern long double __powl (long double __x, long double __y) noexcept (true); + + +extern long double sqrtl (long double __x) noexcept (true); extern long double __sqrtl (long double __x) noexcept (true); + + + + extern long double hypotl (long double __x, long double __y) noexcept (true); extern long double __hypotl (long double __x, long double __y) noexcept (true); + + + + + extern long double cbrtl (long double __x) noexcept (true); extern long double __cbrtl (long double __x) noexcept (true); + + + + + + +extern long double ceill (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fabsl (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double floorl (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmodl (long double __x, long double __y) noexcept (true); extern long double __fmodl (long double __x, long double __y) noexcept (true); +# 210 "/usr/include/bits/mathcalls.h" 3 4 +extern int isinfl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + + +extern int finitel (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern long double dreml (long double __x, long double __y) noexcept (true); extern long double __dreml (long double __x, long double __y) noexcept (true); + + + +extern long double significandl (long double __x) noexcept (true); extern long double __significandl (long double __x) noexcept (true); + + + + + + +extern long double copysignl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double nanl (const char *__tagb) noexcept (true); extern long double __nanl (const char *__tagb) noexcept (true); +# 246 "/usr/include/bits/mathcalls.h" 3 4 +extern int isnanl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + + + +extern long double j0l (long double) noexcept (true); extern long double __j0l (long double) noexcept (true); +extern long double j1l (long double) noexcept (true); extern long double __j1l (long double) noexcept (true); +extern long double jnl (int, long double) noexcept (true); extern long double __jnl (int, long double) noexcept (true); +extern long double y0l (long double) noexcept (true); extern long double __y0l (long double) noexcept (true); +extern long double y1l (long double) noexcept (true); extern long double __y1l (long double) noexcept (true); +extern long double ynl (int, long double) noexcept (true); extern long double __ynl (int, long double) noexcept (true); + + + + + + extern long double erfl (long double) noexcept (true); extern long double __erfl (long double) noexcept (true); + extern long double erfcl (long double) noexcept (true); extern long double __erfcl (long double) noexcept (true); +extern long double lgammal (long double) noexcept (true); extern long double __lgammal (long double) noexcept (true); + + + + +extern long double tgammal (long double) noexcept (true); extern long double __tgammal (long double) noexcept (true); + + + + + +extern long double gammal (long double) noexcept (true); extern long double __gammal (long double) noexcept (true); + + + + + + + +extern long double lgammal_r (long double, int *__signgamp) noexcept (true); extern long double __lgammal_r (long double, int *__signgamp) noexcept (true); + + + + + + +extern long double rintl (long double __x) noexcept (true); extern long double __rintl (long double __x) noexcept (true); + + +extern long double nextafterl (long double __x, long double __y) noexcept (true); extern long double __nextafterl (long double __x, long double __y) noexcept (true); + +extern long double nexttowardl (long double __x, long double __y) noexcept (true); extern long double __nexttowardl (long double __x, long double __y) noexcept (true); + + + + +extern long double nextdownl (long double __x) noexcept (true); extern long double __nextdownl (long double __x) noexcept (true); + +extern long double nextupl (long double __x) noexcept (true); extern long double __nextupl (long double __x) noexcept (true); + + + +extern long double remainderl (long double __x, long double __y) noexcept (true); extern long double __remainderl (long double __x, long double __y) noexcept (true); + + + +extern long double scalbnl (long double __x, int __n) noexcept (true); extern long double __scalbnl (long double __x, int __n) noexcept (true); + + + +extern int ilogbl (long double __x) noexcept (true); extern int __ilogbl (long double __x) noexcept (true); + + + + +extern long int llogbl (long double __x) noexcept (true); extern long int __llogbl (long double __x) noexcept (true); + + + + +extern long double scalblnl (long double __x, long int __n) noexcept (true); extern long double __scalblnl (long double __x, long int __n) noexcept (true); + + + +extern long double nearbyintl (long double __x) noexcept (true); extern long double __nearbyintl (long double __x) noexcept (true); + + + +extern long double roundl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern long double truncl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double remquol (long double __x, long double __y, int *__quo) noexcept (true); extern long double __remquol (long double __x, long double __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintl (long double __x) noexcept (true); extern long int __lrintl (long double __x) noexcept (true); +__extension__ +extern long long int llrintl (long double __x) noexcept (true); extern long long int __llrintl (long double __x) noexcept (true); + + + +extern long int lroundl (long double __x) noexcept (true); extern long int __lroundl (long double __x) noexcept (true); +__extension__ +extern long long int llroundl (long double __x) noexcept (true); extern long long int __llroundl (long double __x) noexcept (true); + + + +extern long double fdiml (long double __x, long double __y) noexcept (true); extern long double __fdiml (long double __x, long double __y) noexcept (true); + + + +extern long double fmaxl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + +extern long double fmal (long double __x, long double __y, long double __z) noexcept (true); extern long double __fmal (long double __x, long double __y, long double __z) noexcept (true); + + + + +extern long double roundevenl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizel (long double *__cx, const long double *__x) noexcept (true); + + + + + + +extern long double fmaxmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double fmaximuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderl (const long double *__x, const long double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagl (const long double *__x, const long double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern long double getpayloadl (const long double *__x) noexcept (true); extern long double __getpayloadl (const long double *__x) noexcept (true); + + +extern int setpayloadl (long double *__x, long double __payload) noexcept (true); + + +extern int setpayloadsigl (long double *__x, long double __payload) noexcept (true); + + + + + + + +extern long double scalbl (long double __x, long double __n) noexcept (true); extern long double __scalbl (long double __x, long double __n) noexcept (true); +# 369 "/usr/include/math.h" 2 3 4 +# 419 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float32 acosf32 (_Float32 __x) noexcept (true); extern _Float32 __acosf32 (_Float32 __x) noexcept (true); + + extern _Float32 asinf32 (_Float32 __x) noexcept (true); extern _Float32 __asinf32 (_Float32 __x) noexcept (true); + + extern _Float32 atanf32 (_Float32 __x) noexcept (true); extern _Float32 __atanf32 (_Float32 __x) noexcept (true); + + extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); + + + extern _Float32 cosf32 (_Float32 __x) noexcept (true); extern _Float32 __cosf32 (_Float32 __x) noexcept (true); + + extern _Float32 sinf32 (_Float32 __x) noexcept (true); extern _Float32 __sinf32 (_Float32 __x) noexcept (true); + + extern _Float32 tanf32 (_Float32 __x) noexcept (true); extern _Float32 __tanf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 acospif32 (_Float32 __x) noexcept (true); extern _Float32 __acospif32 (_Float32 __x) noexcept (true); + +extern _Float32 asinpif32 (_Float32 __x) noexcept (true); extern _Float32 __asinpif32 (_Float32 __x) noexcept (true); + +extern _Float32 atanpif32 (_Float32 __x) noexcept (true); extern _Float32 __atanpif32 (_Float32 __x) noexcept (true); + +extern _Float32 atan2pif32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2pif32 (_Float32 __y, _Float32 __x) noexcept (true); + + + extern _Float32 cospif32 (_Float32 __x) noexcept (true); extern _Float32 __cospif32 (_Float32 __x) noexcept (true); + + extern _Float32 sinpif32 (_Float32 __x) noexcept (true); extern _Float32 __sinpif32 (_Float32 __x) noexcept (true); + + extern _Float32 tanpif32 (_Float32 __x) noexcept (true); extern _Float32 __tanpif32 (_Float32 __x) noexcept (true); + + + + + + extern _Float32 coshf32 (_Float32 __x) noexcept (true); extern _Float32 __coshf32 (_Float32 __x) noexcept (true); + + extern _Float32 sinhf32 (_Float32 __x) noexcept (true); extern _Float32 __sinhf32 (_Float32 __x) noexcept (true); + + extern _Float32 tanhf32 (_Float32 __x) noexcept (true); extern _Float32 __tanhf32 (_Float32 __x) noexcept (true); + + + + extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true) + ; + + + + + extern _Float32 acoshf32 (_Float32 __x) noexcept (true); extern _Float32 __acoshf32 (_Float32 __x) noexcept (true); + + extern _Float32 asinhf32 (_Float32 __x) noexcept (true); extern _Float32 __asinhf32 (_Float32 __x) noexcept (true); + + extern _Float32 atanhf32 (_Float32 __x) noexcept (true); extern _Float32 __atanhf32 (_Float32 __x) noexcept (true); + + + + + + extern _Float32 expf32 (_Float32 __x) noexcept (true); extern _Float32 __expf32 (_Float32 __x) noexcept (true); + + +extern _Float32 frexpf32 (_Float32 __x, int *__exponent) noexcept (true); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) noexcept (true); + + +extern _Float32 ldexpf32 (_Float32 __x, int __exponent) noexcept (true); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) noexcept (true); + + + extern _Float32 logf32 (_Float32 __x) noexcept (true); extern _Float32 __logf32 (_Float32 __x) noexcept (true); + + + extern _Float32 log10f32 (_Float32 __x) noexcept (true); extern _Float32 __log10f32 (_Float32 __x) noexcept (true); + + +extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float32 exp10f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10f32 (_Float32 __x) noexcept (true); + + +extern _Float32 exp2m1f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2m1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 exp10m1f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10m1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 log2p1f32 (_Float32 __x) noexcept (true); extern _Float32 __log2p1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 log10p1f32 (_Float32 __x) noexcept (true); extern _Float32 __log10p1f32 (_Float32 __x) noexcept (true); + + + extern _Float32 logp1f32 (_Float32 __x) noexcept (true); extern _Float32 __logp1f32 (_Float32 __x) noexcept (true); + + + + + extern _Float32 expm1f32 (_Float32 __x) noexcept (true); extern _Float32 __expm1f32 (_Float32 __x) noexcept (true); + + + extern _Float32 log1pf32 (_Float32 __x) noexcept (true); extern _Float32 __log1pf32 (_Float32 __x) noexcept (true); + + +extern _Float32 logbf32 (_Float32 __x) noexcept (true); extern _Float32 __logbf32 (_Float32 __x) noexcept (true); + + + + + extern _Float32 exp2f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2f32 (_Float32 __x) noexcept (true); + + + extern _Float32 log2f32 (_Float32 __x) noexcept (true); extern _Float32 __log2f32 (_Float32 __x) noexcept (true); + + + + + + + extern _Float32 powf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) noexcept (true); + + +extern _Float32 sqrtf32 (_Float32 __x) noexcept (true); extern _Float32 __sqrtf32 (_Float32 __x) noexcept (true); + + + + extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + + + extern _Float32 cbrtf32 (_Float32 __x) noexcept (true); extern _Float32 __cbrtf32 (_Float32 __x) noexcept (true); + + + + + + +extern _Float32 ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fabsf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 floorf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 nanf32 (const char *__tagb) noexcept (true); extern _Float32 __nanf32 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 j0f32 (_Float32) noexcept (true); extern _Float32 __j0f32 (_Float32) noexcept (true); +extern _Float32 j1f32 (_Float32) noexcept (true); extern _Float32 __j1f32 (_Float32) noexcept (true); +extern _Float32 jnf32 (int, _Float32) noexcept (true); extern _Float32 __jnf32 (int, _Float32) noexcept (true); +extern _Float32 y0f32 (_Float32) noexcept (true); extern _Float32 __y0f32 (_Float32) noexcept (true); +extern _Float32 y1f32 (_Float32) noexcept (true); extern _Float32 __y1f32 (_Float32) noexcept (true); +extern _Float32 ynf32 (int, _Float32) noexcept (true); extern _Float32 __ynf32 (int, _Float32) noexcept (true); + + + + + + extern _Float32 erff32 (_Float32) noexcept (true); extern _Float32 __erff32 (_Float32) noexcept (true); + extern _Float32 erfcf32 (_Float32) noexcept (true); extern _Float32 __erfcf32 (_Float32) noexcept (true); +extern _Float32 lgammaf32 (_Float32) noexcept (true); extern _Float32 __lgammaf32 (_Float32) noexcept (true); + + + + +extern _Float32 tgammaf32 (_Float32) noexcept (true); extern _Float32 __tgammaf32 (_Float32) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 lgammaf32_r (_Float32, int *__signgamp) noexcept (true); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) noexcept (true); + + + + + + +extern _Float32 rintf32 (_Float32 __x) noexcept (true); extern _Float32 __rintf32 (_Float32 __x) noexcept (true); + + +extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + + + + +extern _Float32 nextdownf32 (_Float32 __x) noexcept (true); extern _Float32 __nextdownf32 (_Float32 __x) noexcept (true); + +extern _Float32 nextupf32 (_Float32 __x) noexcept (true); extern _Float32 __nextupf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + +extern _Float32 scalbnf32 (_Float32 __x, int __n) noexcept (true); extern _Float32 __scalbnf32 (_Float32 __x, int __n) noexcept (true); + + + +extern int ilogbf32 (_Float32 __x) noexcept (true); extern int __ilogbf32 (_Float32 __x) noexcept (true); + + + + +extern long int llogbf32 (_Float32 __x) noexcept (true); extern long int __llogbf32 (_Float32 __x) noexcept (true); + + + + +extern _Float32 scalblnf32 (_Float32 __x, long int __n) noexcept (true); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) noexcept (true); + + + +extern _Float32 nearbyintf32 (_Float32 __x) noexcept (true); extern _Float32 __nearbyintf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 truncf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf32 (_Float32 __x) noexcept (true); extern long int __lrintf32 (_Float32 __x) noexcept (true); +__extension__ +extern long long int llrintf32 (_Float32 __x) noexcept (true); extern long long int __llrintf32 (_Float32 __x) noexcept (true); + + + +extern long int lroundf32 (_Float32 __x) noexcept (true); extern long int __lroundf32 (_Float32 __x) noexcept (true); +__extension__ +extern long long int llroundf32 (_Float32 __x) noexcept (true); extern long long int __llroundf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + +extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); + + + + +extern _Float32 roundevenf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) noexcept (true); + + + + + + +extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float32 getpayloadf32 (const _Float32 *__x) noexcept (true); extern _Float32 __getpayloadf32 (const _Float32 *__x) noexcept (true); + + +extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) noexcept (true); + + +extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) noexcept (true); +# 420 "/usr/include/math.h" 2 3 4 +# 436 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float64 acosf64 (_Float64 __x) noexcept (true); extern _Float64 __acosf64 (_Float64 __x) noexcept (true); + + extern _Float64 asinf64 (_Float64 __x) noexcept (true); extern _Float64 __asinf64 (_Float64 __x) noexcept (true); + + extern _Float64 atanf64 (_Float64 __x) noexcept (true); extern _Float64 __atanf64 (_Float64 __x) noexcept (true); + + extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); + + + extern _Float64 cosf64 (_Float64 __x) noexcept (true); extern _Float64 __cosf64 (_Float64 __x) noexcept (true); + + extern _Float64 sinf64 (_Float64 __x) noexcept (true); extern _Float64 __sinf64 (_Float64 __x) noexcept (true); + + extern _Float64 tanf64 (_Float64 __x) noexcept (true); extern _Float64 __tanf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 acospif64 (_Float64 __x) noexcept (true); extern _Float64 __acospif64 (_Float64 __x) noexcept (true); + +extern _Float64 asinpif64 (_Float64 __x) noexcept (true); extern _Float64 __asinpif64 (_Float64 __x) noexcept (true); + +extern _Float64 atanpif64 (_Float64 __x) noexcept (true); extern _Float64 __atanpif64 (_Float64 __x) noexcept (true); + +extern _Float64 atan2pif64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2pif64 (_Float64 __y, _Float64 __x) noexcept (true); + + + extern _Float64 cospif64 (_Float64 __x) noexcept (true); extern _Float64 __cospif64 (_Float64 __x) noexcept (true); + + extern _Float64 sinpif64 (_Float64 __x) noexcept (true); extern _Float64 __sinpif64 (_Float64 __x) noexcept (true); + + extern _Float64 tanpif64 (_Float64 __x) noexcept (true); extern _Float64 __tanpif64 (_Float64 __x) noexcept (true); + + + + + + extern _Float64 coshf64 (_Float64 __x) noexcept (true); extern _Float64 __coshf64 (_Float64 __x) noexcept (true); + + extern _Float64 sinhf64 (_Float64 __x) noexcept (true); extern _Float64 __sinhf64 (_Float64 __x) noexcept (true); + + extern _Float64 tanhf64 (_Float64 __x) noexcept (true); extern _Float64 __tanhf64 (_Float64 __x) noexcept (true); + + + + extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true) + ; + + + + + extern _Float64 acoshf64 (_Float64 __x) noexcept (true); extern _Float64 __acoshf64 (_Float64 __x) noexcept (true); + + extern _Float64 asinhf64 (_Float64 __x) noexcept (true); extern _Float64 __asinhf64 (_Float64 __x) noexcept (true); + + extern _Float64 atanhf64 (_Float64 __x) noexcept (true); extern _Float64 __atanhf64 (_Float64 __x) noexcept (true); + + + + + + extern _Float64 expf64 (_Float64 __x) noexcept (true); extern _Float64 __expf64 (_Float64 __x) noexcept (true); + + +extern _Float64 frexpf64 (_Float64 __x, int *__exponent) noexcept (true); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) noexcept (true); + + +extern _Float64 ldexpf64 (_Float64 __x, int __exponent) noexcept (true); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) noexcept (true); + + + extern _Float64 logf64 (_Float64 __x) noexcept (true); extern _Float64 __logf64 (_Float64 __x) noexcept (true); + + + extern _Float64 log10f64 (_Float64 __x) noexcept (true); extern _Float64 __log10f64 (_Float64 __x) noexcept (true); + + +extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float64 exp10f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10f64 (_Float64 __x) noexcept (true); + + +extern _Float64 exp2m1f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2m1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 exp10m1f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10m1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 log2p1f64 (_Float64 __x) noexcept (true); extern _Float64 __log2p1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 log10p1f64 (_Float64 __x) noexcept (true); extern _Float64 __log10p1f64 (_Float64 __x) noexcept (true); + + + extern _Float64 logp1f64 (_Float64 __x) noexcept (true); extern _Float64 __logp1f64 (_Float64 __x) noexcept (true); + + + + + extern _Float64 expm1f64 (_Float64 __x) noexcept (true); extern _Float64 __expm1f64 (_Float64 __x) noexcept (true); + + + extern _Float64 log1pf64 (_Float64 __x) noexcept (true); extern _Float64 __log1pf64 (_Float64 __x) noexcept (true); + + +extern _Float64 logbf64 (_Float64 __x) noexcept (true); extern _Float64 __logbf64 (_Float64 __x) noexcept (true); + + + + + extern _Float64 exp2f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2f64 (_Float64 __x) noexcept (true); + + + extern _Float64 log2f64 (_Float64 __x) noexcept (true); extern _Float64 __log2f64 (_Float64 __x) noexcept (true); + + + + + + + extern _Float64 powf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float64 sqrtf64 (_Float64 __x) noexcept (true); extern _Float64 __sqrtf64 (_Float64 __x) noexcept (true); + + + + extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + + + extern _Float64 cbrtf64 (_Float64 __x) noexcept (true); extern _Float64 __cbrtf64 (_Float64 __x) noexcept (true); + + + + + + +extern _Float64 ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fabsf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 floorf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 nanf64 (const char *__tagb) noexcept (true); extern _Float64 __nanf64 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 j0f64 (_Float64) noexcept (true); extern _Float64 __j0f64 (_Float64) noexcept (true); +extern _Float64 j1f64 (_Float64) noexcept (true); extern _Float64 __j1f64 (_Float64) noexcept (true); +extern _Float64 jnf64 (int, _Float64) noexcept (true); extern _Float64 __jnf64 (int, _Float64) noexcept (true); +extern _Float64 y0f64 (_Float64) noexcept (true); extern _Float64 __y0f64 (_Float64) noexcept (true); +extern _Float64 y1f64 (_Float64) noexcept (true); extern _Float64 __y1f64 (_Float64) noexcept (true); +extern _Float64 ynf64 (int, _Float64) noexcept (true); extern _Float64 __ynf64 (int, _Float64) noexcept (true); + + + + + + extern _Float64 erff64 (_Float64) noexcept (true); extern _Float64 __erff64 (_Float64) noexcept (true); + extern _Float64 erfcf64 (_Float64) noexcept (true); extern _Float64 __erfcf64 (_Float64) noexcept (true); +extern _Float64 lgammaf64 (_Float64) noexcept (true); extern _Float64 __lgammaf64 (_Float64) noexcept (true); + + + + +extern _Float64 tgammaf64 (_Float64) noexcept (true); extern _Float64 __tgammaf64 (_Float64) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 lgammaf64_r (_Float64, int *__signgamp) noexcept (true); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) noexcept (true); + + + + + + +extern _Float64 rintf64 (_Float64 __x) noexcept (true); extern _Float64 __rintf64 (_Float64 __x) noexcept (true); + + +extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + + + + +extern _Float64 nextdownf64 (_Float64 __x) noexcept (true); extern _Float64 __nextdownf64 (_Float64 __x) noexcept (true); + +extern _Float64 nextupf64 (_Float64 __x) noexcept (true); extern _Float64 __nextupf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + +extern _Float64 scalbnf64 (_Float64 __x, int __n) noexcept (true); extern _Float64 __scalbnf64 (_Float64 __x, int __n) noexcept (true); + + + +extern int ilogbf64 (_Float64 __x) noexcept (true); extern int __ilogbf64 (_Float64 __x) noexcept (true); + + + + +extern long int llogbf64 (_Float64 __x) noexcept (true); extern long int __llogbf64 (_Float64 __x) noexcept (true); + + + + +extern _Float64 scalblnf64 (_Float64 __x, long int __n) noexcept (true); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) noexcept (true); + + + +extern _Float64 nearbyintf64 (_Float64 __x) noexcept (true); extern _Float64 __nearbyintf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 truncf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf64 (_Float64 __x) noexcept (true); extern long int __lrintf64 (_Float64 __x) noexcept (true); +__extension__ +extern long long int llrintf64 (_Float64 __x) noexcept (true); extern long long int __llrintf64 (_Float64 __x) noexcept (true); + + + +extern long int lroundf64 (_Float64 __x) noexcept (true); extern long int __lroundf64 (_Float64 __x) noexcept (true); +__extension__ +extern long long int llroundf64 (_Float64 __x) noexcept (true); extern long long int __llroundf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + +extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + + + +extern _Float64 roundevenf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) noexcept (true); + + + + + + +extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float64 getpayloadf64 (const _Float64 *__x) noexcept (true); extern _Float64 __getpayloadf64 (const _Float64 *__x) noexcept (true); + + +extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) noexcept (true); + + +extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) noexcept (true); +# 437 "/usr/include/math.h" 2 3 4 +# 450 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinff128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitef128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern int __issignalingf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); +# 451 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float128 acosf128 (_Float128 __x) noexcept (true); extern _Float128 __acosf128 (_Float128 __x) noexcept (true); + + extern _Float128 asinf128 (_Float128 __x) noexcept (true); extern _Float128 __asinf128 (_Float128 __x) noexcept (true); + + extern _Float128 atanf128 (_Float128 __x) noexcept (true); extern _Float128 __atanf128 (_Float128 __x) noexcept (true); + + extern _Float128 atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); + + + extern _Float128 cosf128 (_Float128 __x) noexcept (true); extern _Float128 __cosf128 (_Float128 __x) noexcept (true); + + extern _Float128 sinf128 (_Float128 __x) noexcept (true); extern _Float128 __sinf128 (_Float128 __x) noexcept (true); + + extern _Float128 tanf128 (_Float128 __x) noexcept (true); extern _Float128 __tanf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 acospif128 (_Float128 __x) noexcept (true); extern _Float128 __acospif128 (_Float128 __x) noexcept (true); + +extern _Float128 asinpif128 (_Float128 __x) noexcept (true); extern _Float128 __asinpif128 (_Float128 __x) noexcept (true); + +extern _Float128 atanpif128 (_Float128 __x) noexcept (true); extern _Float128 __atanpif128 (_Float128 __x) noexcept (true); + +extern _Float128 atan2pif128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2pif128 (_Float128 __y, _Float128 __x) noexcept (true); + + + extern _Float128 cospif128 (_Float128 __x) noexcept (true); extern _Float128 __cospif128 (_Float128 __x) noexcept (true); + + extern _Float128 sinpif128 (_Float128 __x) noexcept (true); extern _Float128 __sinpif128 (_Float128 __x) noexcept (true); + + extern _Float128 tanpif128 (_Float128 __x) noexcept (true); extern _Float128 __tanpif128 (_Float128 __x) noexcept (true); + + + + + + extern _Float128 coshf128 (_Float128 __x) noexcept (true); extern _Float128 __coshf128 (_Float128 __x) noexcept (true); + + extern _Float128 sinhf128 (_Float128 __x) noexcept (true); extern _Float128 __sinhf128 (_Float128 __x) noexcept (true); + + extern _Float128 tanhf128 (_Float128 __x) noexcept (true); extern _Float128 __tanhf128 (_Float128 __x) noexcept (true); + + + + extern void sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true); extern void __sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true) + ; + + + + + extern _Float128 acoshf128 (_Float128 __x) noexcept (true); extern _Float128 __acoshf128 (_Float128 __x) noexcept (true); + + extern _Float128 asinhf128 (_Float128 __x) noexcept (true); extern _Float128 __asinhf128 (_Float128 __x) noexcept (true); + + extern _Float128 atanhf128 (_Float128 __x) noexcept (true); extern _Float128 __atanhf128 (_Float128 __x) noexcept (true); + + + + + + extern _Float128 expf128 (_Float128 __x) noexcept (true); extern _Float128 __expf128 (_Float128 __x) noexcept (true); + + +extern _Float128 frexpf128 (_Float128 __x, int *__exponent) noexcept (true); extern _Float128 __frexpf128 (_Float128 __x, int *__exponent) noexcept (true); + + +extern _Float128 ldexpf128 (_Float128 __x, int __exponent) noexcept (true); extern _Float128 __ldexpf128 (_Float128 __x, int __exponent) noexcept (true); + + + extern _Float128 logf128 (_Float128 __x) noexcept (true); extern _Float128 __logf128 (_Float128 __x) noexcept (true); + + + extern _Float128 log10f128 (_Float128 __x) noexcept (true); extern _Float128 __log10f128 (_Float128 __x) noexcept (true); + + +extern _Float128 modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true); extern _Float128 __modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float128 exp10f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10f128 (_Float128 __x) noexcept (true); + + +extern _Float128 exp2m1f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2m1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 exp10m1f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10m1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 log2p1f128 (_Float128 __x) noexcept (true); extern _Float128 __log2p1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 log10p1f128 (_Float128 __x) noexcept (true); extern _Float128 __log10p1f128 (_Float128 __x) noexcept (true); + + + extern _Float128 logp1f128 (_Float128 __x) noexcept (true); extern _Float128 __logp1f128 (_Float128 __x) noexcept (true); + + + + + extern _Float128 expm1f128 (_Float128 __x) noexcept (true); extern _Float128 __expm1f128 (_Float128 __x) noexcept (true); + + + extern _Float128 log1pf128 (_Float128 __x) noexcept (true); extern _Float128 __log1pf128 (_Float128 __x) noexcept (true); + + +extern _Float128 logbf128 (_Float128 __x) noexcept (true); extern _Float128 __logbf128 (_Float128 __x) noexcept (true); + + + + + extern _Float128 exp2f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2f128 (_Float128 __x) noexcept (true); + + + extern _Float128 log2f128 (_Float128 __x) noexcept (true); extern _Float128 __log2f128 (_Float128 __x) noexcept (true); + + + + + + + extern _Float128 powf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __powf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float128 sqrtf128 (_Float128 __x) noexcept (true); extern _Float128 __sqrtf128 (_Float128 __x) noexcept (true); + + + + extern _Float128 hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + + + extern _Float128 cbrtf128 (_Float128 __x) noexcept (true); extern _Float128 __cbrtf128 (_Float128 __x) noexcept (true); + + + + + + +extern _Float128 ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fabsf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 floorf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 nanf128 (const char *__tagb) noexcept (true); extern _Float128 __nanf128 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 j0f128 (_Float128) noexcept (true); extern _Float128 __j0f128 (_Float128) noexcept (true); +extern _Float128 j1f128 (_Float128) noexcept (true); extern _Float128 __j1f128 (_Float128) noexcept (true); +extern _Float128 jnf128 (int, _Float128) noexcept (true); extern _Float128 __jnf128 (int, _Float128) noexcept (true); +extern _Float128 y0f128 (_Float128) noexcept (true); extern _Float128 __y0f128 (_Float128) noexcept (true); +extern _Float128 y1f128 (_Float128) noexcept (true); extern _Float128 __y1f128 (_Float128) noexcept (true); +extern _Float128 ynf128 (int, _Float128) noexcept (true); extern _Float128 __ynf128 (int, _Float128) noexcept (true); + + + + + + extern _Float128 erff128 (_Float128) noexcept (true); extern _Float128 __erff128 (_Float128) noexcept (true); + extern _Float128 erfcf128 (_Float128) noexcept (true); extern _Float128 __erfcf128 (_Float128) noexcept (true); +extern _Float128 lgammaf128 (_Float128) noexcept (true); extern _Float128 __lgammaf128 (_Float128) noexcept (true); + + + + +extern _Float128 tgammaf128 (_Float128) noexcept (true); extern _Float128 __tgammaf128 (_Float128) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 lgammaf128_r (_Float128, int *__signgamp) noexcept (true); extern _Float128 __lgammaf128_r (_Float128, int *__signgamp) noexcept (true); + + + + + + +extern _Float128 rintf128 (_Float128 __x) noexcept (true); extern _Float128 __rintf128 (_Float128 __x) noexcept (true); + + +extern _Float128 nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + + + + +extern _Float128 nextdownf128 (_Float128 __x) noexcept (true); extern _Float128 __nextdownf128 (_Float128 __x) noexcept (true); + +extern _Float128 nextupf128 (_Float128 __x) noexcept (true); extern _Float128 __nextupf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + +extern _Float128 scalbnf128 (_Float128 __x, int __n) noexcept (true); extern _Float128 __scalbnf128 (_Float128 __x, int __n) noexcept (true); + + + +extern int ilogbf128 (_Float128 __x) noexcept (true); extern int __ilogbf128 (_Float128 __x) noexcept (true); + + + + +extern long int llogbf128 (_Float128 __x) noexcept (true); extern long int __llogbf128 (_Float128 __x) noexcept (true); + + + + +extern _Float128 scalblnf128 (_Float128 __x, long int __n) noexcept (true); extern _Float128 __scalblnf128 (_Float128 __x, long int __n) noexcept (true); + + + +extern _Float128 nearbyintf128 (_Float128 __x) noexcept (true); extern _Float128 __nearbyintf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 truncf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); extern _Float128 __remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf128 (_Float128 __x) noexcept (true); extern long int __lrintf128 (_Float128 __x) noexcept (true); +__extension__ +extern long long int llrintf128 (_Float128 __x) noexcept (true); extern long long int __llrintf128 (_Float128 __x) noexcept (true); + + + +extern long int lroundf128 (_Float128 __x) noexcept (true); extern long int __lroundf128 (_Float128 __x) noexcept (true); +__extension__ +extern long long int llroundf128 (_Float128 __x) noexcept (true); extern long long int __llroundf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + +extern _Float128 fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); extern _Float128 __fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + + + +extern _Float128 roundevenf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef128 (_Float128 *__cx, const _Float128 *__x) noexcept (true); + + + + + + +extern _Float128 fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float128 getpayloadf128 (const _Float128 *__x) noexcept (true); extern _Float128 __getpayloadf128 (const _Float128 *__x) noexcept (true); + + +extern int setpayloadf128 (_Float128 *__x, _Float128 __payload) noexcept (true); + + +extern int setpayloadsigf128 (_Float128 *__x, _Float128 __payload) noexcept (true); +# 454 "/usr/include/math.h" 2 3 4 +# 470 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float32x acosf32x (_Float32x __x) noexcept (true); extern _Float32x __acosf32x (_Float32x __x) noexcept (true); + + extern _Float32x asinf32x (_Float32x __x) noexcept (true); extern _Float32x __asinf32x (_Float32x __x) noexcept (true); + + extern _Float32x atanf32x (_Float32x __x) noexcept (true); extern _Float32x __atanf32x (_Float32x __x) noexcept (true); + + extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); + + + extern _Float32x cosf32x (_Float32x __x) noexcept (true); extern _Float32x __cosf32x (_Float32x __x) noexcept (true); + + extern _Float32x sinf32x (_Float32x __x) noexcept (true); extern _Float32x __sinf32x (_Float32x __x) noexcept (true); + + extern _Float32x tanf32x (_Float32x __x) noexcept (true); extern _Float32x __tanf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x acospif32x (_Float32x __x) noexcept (true); extern _Float32x __acospif32x (_Float32x __x) noexcept (true); + +extern _Float32x asinpif32x (_Float32x __x) noexcept (true); extern _Float32x __asinpif32x (_Float32x __x) noexcept (true); + +extern _Float32x atanpif32x (_Float32x __x) noexcept (true); extern _Float32x __atanpif32x (_Float32x __x) noexcept (true); + +extern _Float32x atan2pif32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2pif32x (_Float32x __y, _Float32x __x) noexcept (true); + + + extern _Float32x cospif32x (_Float32x __x) noexcept (true); extern _Float32x __cospif32x (_Float32x __x) noexcept (true); + + extern _Float32x sinpif32x (_Float32x __x) noexcept (true); extern _Float32x __sinpif32x (_Float32x __x) noexcept (true); + + extern _Float32x tanpif32x (_Float32x __x) noexcept (true); extern _Float32x __tanpif32x (_Float32x __x) noexcept (true); + + + + + + extern _Float32x coshf32x (_Float32x __x) noexcept (true); extern _Float32x __coshf32x (_Float32x __x) noexcept (true); + + extern _Float32x sinhf32x (_Float32x __x) noexcept (true); extern _Float32x __sinhf32x (_Float32x __x) noexcept (true); + + extern _Float32x tanhf32x (_Float32x __x) noexcept (true); extern _Float32x __tanhf32x (_Float32x __x) noexcept (true); + + + + extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true) + ; + + + + + extern _Float32x acoshf32x (_Float32x __x) noexcept (true); extern _Float32x __acoshf32x (_Float32x __x) noexcept (true); + + extern _Float32x asinhf32x (_Float32x __x) noexcept (true); extern _Float32x __asinhf32x (_Float32x __x) noexcept (true); + + extern _Float32x atanhf32x (_Float32x __x) noexcept (true); extern _Float32x __atanhf32x (_Float32x __x) noexcept (true); + + + + + + extern _Float32x expf32x (_Float32x __x) noexcept (true); extern _Float32x __expf32x (_Float32x __x) noexcept (true); + + +extern _Float32x frexpf32x (_Float32x __x, int *__exponent) noexcept (true); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) noexcept (true); + + +extern _Float32x ldexpf32x (_Float32x __x, int __exponent) noexcept (true); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) noexcept (true); + + + extern _Float32x logf32x (_Float32x __x) noexcept (true); extern _Float32x __logf32x (_Float32x __x) noexcept (true); + + + extern _Float32x log10f32x (_Float32x __x) noexcept (true); extern _Float32x __log10f32x (_Float32x __x) noexcept (true); + + +extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float32x exp10f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10f32x (_Float32x __x) noexcept (true); + + +extern _Float32x exp2m1f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2m1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x exp10m1f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10m1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x log2p1f32x (_Float32x __x) noexcept (true); extern _Float32x __log2p1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x log10p1f32x (_Float32x __x) noexcept (true); extern _Float32x __log10p1f32x (_Float32x __x) noexcept (true); + + + extern _Float32x logp1f32x (_Float32x __x) noexcept (true); extern _Float32x __logp1f32x (_Float32x __x) noexcept (true); + + + + + extern _Float32x expm1f32x (_Float32x __x) noexcept (true); extern _Float32x __expm1f32x (_Float32x __x) noexcept (true); + + + extern _Float32x log1pf32x (_Float32x __x) noexcept (true); extern _Float32x __log1pf32x (_Float32x __x) noexcept (true); + + +extern _Float32x logbf32x (_Float32x __x) noexcept (true); extern _Float32x __logbf32x (_Float32x __x) noexcept (true); + + + + + extern _Float32x exp2f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2f32x (_Float32x __x) noexcept (true); + + + extern _Float32x log2f32x (_Float32x __x) noexcept (true); extern _Float32x __log2f32x (_Float32x __x) noexcept (true); + + + + + + + extern _Float32x powf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32x sqrtf32x (_Float32x __x) noexcept (true); extern _Float32x __sqrtf32x (_Float32x __x) noexcept (true); + + + + extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + + + extern _Float32x cbrtf32x (_Float32x __x) noexcept (true); extern _Float32x __cbrtf32x (_Float32x __x) noexcept (true); + + + + + + +extern _Float32x ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fabsf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x floorf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x nanf32x (const char *__tagb) noexcept (true); extern _Float32x __nanf32x (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x j0f32x (_Float32x) noexcept (true); extern _Float32x __j0f32x (_Float32x) noexcept (true); +extern _Float32x j1f32x (_Float32x) noexcept (true); extern _Float32x __j1f32x (_Float32x) noexcept (true); +extern _Float32x jnf32x (int, _Float32x) noexcept (true); extern _Float32x __jnf32x (int, _Float32x) noexcept (true); +extern _Float32x y0f32x (_Float32x) noexcept (true); extern _Float32x __y0f32x (_Float32x) noexcept (true); +extern _Float32x y1f32x (_Float32x) noexcept (true); extern _Float32x __y1f32x (_Float32x) noexcept (true); +extern _Float32x ynf32x (int, _Float32x) noexcept (true); extern _Float32x __ynf32x (int, _Float32x) noexcept (true); + + + + + + extern _Float32x erff32x (_Float32x) noexcept (true); extern _Float32x __erff32x (_Float32x) noexcept (true); + extern _Float32x erfcf32x (_Float32x) noexcept (true); extern _Float32x __erfcf32x (_Float32x) noexcept (true); +extern _Float32x lgammaf32x (_Float32x) noexcept (true); extern _Float32x __lgammaf32x (_Float32x) noexcept (true); + + + + +extern _Float32x tgammaf32x (_Float32x) noexcept (true); extern _Float32x __tgammaf32x (_Float32x) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); + + + + + + +extern _Float32x rintf32x (_Float32x __x) noexcept (true); extern _Float32x __rintf32x (_Float32x __x) noexcept (true); + + +extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + + + + +extern _Float32x nextdownf32x (_Float32x __x) noexcept (true); extern _Float32x __nextdownf32x (_Float32x __x) noexcept (true); + +extern _Float32x nextupf32x (_Float32x __x) noexcept (true); extern _Float32x __nextupf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + +extern _Float32x scalbnf32x (_Float32x __x, int __n) noexcept (true); extern _Float32x __scalbnf32x (_Float32x __x, int __n) noexcept (true); + + + +extern int ilogbf32x (_Float32x __x) noexcept (true); extern int __ilogbf32x (_Float32x __x) noexcept (true); + + + + +extern long int llogbf32x (_Float32x __x) noexcept (true); extern long int __llogbf32x (_Float32x __x) noexcept (true); + + + + +extern _Float32x scalblnf32x (_Float32x __x, long int __n) noexcept (true); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) noexcept (true); + + + +extern _Float32x nearbyintf32x (_Float32x __x) noexcept (true); extern _Float32x __nearbyintf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x truncf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf32x (_Float32x __x) noexcept (true); extern long int __lrintf32x (_Float32x __x) noexcept (true); +__extension__ +extern long long int llrintf32x (_Float32x __x) noexcept (true); extern long long int __llrintf32x (_Float32x __x) noexcept (true); + + + +extern long int lroundf32x (_Float32x __x) noexcept (true); extern long int __lroundf32x (_Float32x __x) noexcept (true); +__extension__ +extern long long int llroundf32x (_Float32x __x) noexcept (true); extern long long int __llroundf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + +extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); + + + + +extern _Float32x roundevenf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) noexcept (true); + + + + + + +extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float32x getpayloadf32x (const _Float32x *__x) noexcept (true); extern _Float32x __getpayloadf32x (const _Float32x *__x) noexcept (true); + + +extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) noexcept (true); + + +extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) noexcept (true); +# 471 "/usr/include/math.h" 2 3 4 +# 487 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float64x acosf64x (_Float64x __x) noexcept (true); extern _Float64x __acosf64x (_Float64x __x) noexcept (true); + + extern _Float64x asinf64x (_Float64x __x) noexcept (true); extern _Float64x __asinf64x (_Float64x __x) noexcept (true); + + extern _Float64x atanf64x (_Float64x __x) noexcept (true); extern _Float64x __atanf64x (_Float64x __x) noexcept (true); + + extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); + + + extern _Float64x cosf64x (_Float64x __x) noexcept (true); extern _Float64x __cosf64x (_Float64x __x) noexcept (true); + + extern _Float64x sinf64x (_Float64x __x) noexcept (true); extern _Float64x __sinf64x (_Float64x __x) noexcept (true); + + extern _Float64x tanf64x (_Float64x __x) noexcept (true); extern _Float64x __tanf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x acospif64x (_Float64x __x) noexcept (true); extern _Float64x __acospif64x (_Float64x __x) noexcept (true); + +extern _Float64x asinpif64x (_Float64x __x) noexcept (true); extern _Float64x __asinpif64x (_Float64x __x) noexcept (true); + +extern _Float64x atanpif64x (_Float64x __x) noexcept (true); extern _Float64x __atanpif64x (_Float64x __x) noexcept (true); + +extern _Float64x atan2pif64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2pif64x (_Float64x __y, _Float64x __x) noexcept (true); + + + extern _Float64x cospif64x (_Float64x __x) noexcept (true); extern _Float64x __cospif64x (_Float64x __x) noexcept (true); + + extern _Float64x sinpif64x (_Float64x __x) noexcept (true); extern _Float64x __sinpif64x (_Float64x __x) noexcept (true); + + extern _Float64x tanpif64x (_Float64x __x) noexcept (true); extern _Float64x __tanpif64x (_Float64x __x) noexcept (true); + + + + + + extern _Float64x coshf64x (_Float64x __x) noexcept (true); extern _Float64x __coshf64x (_Float64x __x) noexcept (true); + + extern _Float64x sinhf64x (_Float64x __x) noexcept (true); extern _Float64x __sinhf64x (_Float64x __x) noexcept (true); + + extern _Float64x tanhf64x (_Float64x __x) noexcept (true); extern _Float64x __tanhf64x (_Float64x __x) noexcept (true); + + + + extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true) + ; + + + + + extern _Float64x acoshf64x (_Float64x __x) noexcept (true); extern _Float64x __acoshf64x (_Float64x __x) noexcept (true); + + extern _Float64x asinhf64x (_Float64x __x) noexcept (true); extern _Float64x __asinhf64x (_Float64x __x) noexcept (true); + + extern _Float64x atanhf64x (_Float64x __x) noexcept (true); extern _Float64x __atanhf64x (_Float64x __x) noexcept (true); + + + + + + extern _Float64x expf64x (_Float64x __x) noexcept (true); extern _Float64x __expf64x (_Float64x __x) noexcept (true); + + +extern _Float64x frexpf64x (_Float64x __x, int *__exponent) noexcept (true); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) noexcept (true); + + +extern _Float64x ldexpf64x (_Float64x __x, int __exponent) noexcept (true); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) noexcept (true); + + + extern _Float64x logf64x (_Float64x __x) noexcept (true); extern _Float64x __logf64x (_Float64x __x) noexcept (true); + + + extern _Float64x log10f64x (_Float64x __x) noexcept (true); extern _Float64x __log10f64x (_Float64x __x) noexcept (true); + + +extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float64x exp10f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10f64x (_Float64x __x) noexcept (true); + + +extern _Float64x exp2m1f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2m1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x exp10m1f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10m1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x log2p1f64x (_Float64x __x) noexcept (true); extern _Float64x __log2p1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x log10p1f64x (_Float64x __x) noexcept (true); extern _Float64x __log10p1f64x (_Float64x __x) noexcept (true); + + + extern _Float64x logp1f64x (_Float64x __x) noexcept (true); extern _Float64x __logp1f64x (_Float64x __x) noexcept (true); + + + + + extern _Float64x expm1f64x (_Float64x __x) noexcept (true); extern _Float64x __expm1f64x (_Float64x __x) noexcept (true); + + + extern _Float64x log1pf64x (_Float64x __x) noexcept (true); extern _Float64x __log1pf64x (_Float64x __x) noexcept (true); + + +extern _Float64x logbf64x (_Float64x __x) noexcept (true); extern _Float64x __logbf64x (_Float64x __x) noexcept (true); + + + + + extern _Float64x exp2f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2f64x (_Float64x __x) noexcept (true); + + + extern _Float64x log2f64x (_Float64x __x) noexcept (true); extern _Float64x __log2f64x (_Float64x __x) noexcept (true); + + + + + + + extern _Float64x powf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64x sqrtf64x (_Float64x __x) noexcept (true); extern _Float64x __sqrtf64x (_Float64x __x) noexcept (true); + + + + extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + + + extern _Float64x cbrtf64x (_Float64x __x) noexcept (true); extern _Float64x __cbrtf64x (_Float64x __x) noexcept (true); + + + + + + +extern _Float64x ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fabsf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x floorf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x nanf64x (const char *__tagb) noexcept (true); extern _Float64x __nanf64x (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x j0f64x (_Float64x) noexcept (true); extern _Float64x __j0f64x (_Float64x) noexcept (true); +extern _Float64x j1f64x (_Float64x) noexcept (true); extern _Float64x __j1f64x (_Float64x) noexcept (true); +extern _Float64x jnf64x (int, _Float64x) noexcept (true); extern _Float64x __jnf64x (int, _Float64x) noexcept (true); +extern _Float64x y0f64x (_Float64x) noexcept (true); extern _Float64x __y0f64x (_Float64x) noexcept (true); +extern _Float64x y1f64x (_Float64x) noexcept (true); extern _Float64x __y1f64x (_Float64x) noexcept (true); +extern _Float64x ynf64x (int, _Float64x) noexcept (true); extern _Float64x __ynf64x (int, _Float64x) noexcept (true); + + + + + + extern _Float64x erff64x (_Float64x) noexcept (true); extern _Float64x __erff64x (_Float64x) noexcept (true); + extern _Float64x erfcf64x (_Float64x) noexcept (true); extern _Float64x __erfcf64x (_Float64x) noexcept (true); +extern _Float64x lgammaf64x (_Float64x) noexcept (true); extern _Float64x __lgammaf64x (_Float64x) noexcept (true); + + + + +extern _Float64x tgammaf64x (_Float64x) noexcept (true); extern _Float64x __tgammaf64x (_Float64x) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); + + + + + + +extern _Float64x rintf64x (_Float64x __x) noexcept (true); extern _Float64x __rintf64x (_Float64x __x) noexcept (true); + + +extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + + + + +extern _Float64x nextdownf64x (_Float64x __x) noexcept (true); extern _Float64x __nextdownf64x (_Float64x __x) noexcept (true); + +extern _Float64x nextupf64x (_Float64x __x) noexcept (true); extern _Float64x __nextupf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + +extern _Float64x scalbnf64x (_Float64x __x, int __n) noexcept (true); extern _Float64x __scalbnf64x (_Float64x __x, int __n) noexcept (true); + + + +extern int ilogbf64x (_Float64x __x) noexcept (true); extern int __ilogbf64x (_Float64x __x) noexcept (true); + + + + +extern long int llogbf64x (_Float64x __x) noexcept (true); extern long int __llogbf64x (_Float64x __x) noexcept (true); + + + + +extern _Float64x scalblnf64x (_Float64x __x, long int __n) noexcept (true); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) noexcept (true); + + + +extern _Float64x nearbyintf64x (_Float64x __x) noexcept (true); extern _Float64x __nearbyintf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x truncf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf64x (_Float64x __x) noexcept (true); extern long int __lrintf64x (_Float64x __x) noexcept (true); +__extension__ +extern long long int llrintf64x (_Float64x __x) noexcept (true); extern long long int __llrintf64x (_Float64x __x) noexcept (true); + + + +extern long int lroundf64x (_Float64x __x) noexcept (true); extern long int __lroundf64x (_Float64x __x) noexcept (true); +__extension__ +extern long long int llroundf64x (_Float64x __x) noexcept (true); extern long long int __llroundf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + +extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + + + +extern _Float64x roundevenf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) noexcept (true); + + + + + + +extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float64x getpayloadf64x (const _Float64x *__x) noexcept (true); extern _Float64x __getpayloadf64x (const _Float64x *__x) noexcept (true); + + +extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) noexcept (true); + + +extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) noexcept (true); +# 488 "/usr/include/math.h" 2 3 4 +# 535 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern float fadd (double __x, double __y) noexcept (true); + + +extern float fdiv (double __x, double __y) noexcept (true); + + +extern float ffma (double __x, double __y, double __z) noexcept (true); + + +extern float fmul (double __x, double __y) noexcept (true); + + +extern float fsqrt (double __x) noexcept (true); + + +extern float fsub (double __x, double __y) noexcept (true); +# 536 "/usr/include/math.h" 2 3 4 +# 556 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern float faddl (long double __x, long double __y) noexcept (true); + + +extern float fdivl (long double __x, long double __y) noexcept (true); + + +extern float ffmal (long double __x, long double __y, long double __z) noexcept (true); + + +extern float fmull (long double __x, long double __y) noexcept (true); + + +extern float fsqrtl (long double __x) noexcept (true); + + +extern float fsubl (long double __x, long double __y) noexcept (true); +# 557 "/usr/include/math.h" 2 3 4 +# 585 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern double daddl (long double __x, long double __y) noexcept (true); + + +extern double ddivl (long double __x, long double __y) noexcept (true); + + +extern double dfmal (long double __x, long double __y, long double __z) noexcept (true); + + +extern double dmull (long double __x, long double __y) noexcept (true); + + +extern double dsqrtl (long double __x) noexcept (true); + + +extern double dsubl (long double __x, long double __y) noexcept (true); +# 586 "/usr/include/math.h" 2 3 4 +# 666 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); + + +extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32sqrtf32x (_Float32x __x) noexcept (true); + + +extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) noexcept (true); +# 667 "/usr/include/math.h" 2 3 4 +# 676 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + +extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32sqrtf64 (_Float64 __x) noexcept (true); + + +extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 677 "/usr/include/math.h" 2 3 4 +# 686 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32sqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 687 "/usr/include/math.h" 2 3 4 +# 696 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32divf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float32 f32mulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32sqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float32 f32subf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 697 "/usr/include/math.h" 2 3 4 +# 716 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xfmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + +extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xsqrtf64 (_Float64 __x) noexcept (true); + + +extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 717 "/usr/include/math.h" 2 3 4 +# 726 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xfmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xsqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 727 "/usr/include/math.h" 2 3 4 +# 736 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float32x f32xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xsqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float32x f32xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 737 "/usr/include/math.h" 2 3 4 +# 756 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64sqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 757 "/usr/include/math.h" 2 3 4 +# 766 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64divf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float64 f64mulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64sqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float64 f64subf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 767 "/usr/include/math.h" 2 3 4 +# 786 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64x f64xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float64x f64xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xsqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float64x f64xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 787 "/usr/include/math.h" 2 3 4 +# 823 "/usr/include/math.h" 3 4 +extern int signgam; +# 903 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 1024 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/iscanonical.h" 1 3 4 +# 23 "/usr/include/bits/iscanonical.h" 3 4 +extern int __iscanonicall (long double __x) + noexcept (true) __attribute__ ((__const__)); +# 46 "/usr/include/bits/iscanonical.h" 3 4 +extern "C++" { +inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (long double __val) { return __iscanonicall (__val); } + +inline int iscanonical (_Float128 __val) { return ((void) (__typeof (__val)) (__val), 1); } + +} +# 1025 "/usr/include/math.h" 2 3 4 +# 1036 "/usr/include/math.h" 3 4 +extern "C++" { +inline int issignaling (float __val) { return __issignalingf (__val); } +inline int issignaling (double __val) { return __issignaling (__val); } +inline int +issignaling (long double __val) +{ + + + + return __issignalingl (__val); + +} + + + +inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } + +} +# 1067 "/usr/include/math.h" 3 4 +extern "C++" { +# 1098 "/usr/include/math.h" 3 4 +template inline bool +iszero (__T __val) +{ + return __val == 0; +} + +} +# 1333 "/usr/include/math.h" 3 4 +extern "C++" { +template struct __iseqsig_type; + +template<> struct __iseqsig_type +{ + static int __call (float __x, float __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (double __x, double __y) throw () + { + return __iseqsig (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (long double __x, long double __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; + + +template<> struct __iseqsig_type<_Float32> +{ + static int __call (_Float32 __x, _Float32 __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + + + +template<> struct __iseqsig_type<_Float64> +{ + static int __call (_Float64 __x, _Float64 __y) throw () + { + return __iseqsig (__x, __y); + } +}; + + + + + +template<> struct __iseqsig_type<_Float128> +{ + static int __call (_Float128 __x, _Float128 __y) throw () + { + + return __iseqsigf128 (__x, __y); + + + + } +}; + + + +template<> struct __iseqsig_type<_Float32x> +{ + static int __call (_Float32x __x, _Float32x __y) throw () + { + return __iseqsig (__x, __y); + } +}; + + + +template<> struct __iseqsig_type<_Float64x> +{ + static int __call (_Float64x __x, _Float64x __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; + + +template +inline int +iseqsig (_T1 __x, _T2 __y) throw () +{ + + typedef decltype (((__x) + (__y) + 0.0f)) _T3; + + + + return __iseqsig_type<_T3>::__call (__x, __y); +} + +} + + + + +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::acos; + + + inline constexpr float + acos(float __x) + { return __builtin_acosf(__x); } + + inline constexpr long double + acos(long double __x) + { return __builtin_acosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acos(_Tp __x) + { return __builtin_acos(__x); } + + using ::asin; + + + inline constexpr float + asin(float __x) + { return __builtin_asinf(__x); } + + inline constexpr long double + asin(long double __x) + { return __builtin_asinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asin(_Tp __x) + { return __builtin_asin(__x); } + + using ::atan; + + + inline constexpr float + atan(float __x) + { return __builtin_atanf(__x); } + + inline constexpr long double + atan(long double __x) + { return __builtin_atanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atan(_Tp __x) + { return __builtin_atan(__x); } + + using ::atan2; + + + inline constexpr float + atan2(float __y, float __x) + { return __builtin_atan2f(__y, __x); } + + inline constexpr long double + atan2(long double __y, long double __x) + { return __builtin_atan2l(__y, __x); } + + + using ::ceil; + + + inline constexpr float + ceil(float __x) + { return __builtin_ceilf(__x); } + + inline constexpr long double + ceil(long double __x) + { return __builtin_ceill(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ceil(_Tp __x) + { return __builtin_ceil(__x); } + + using ::cos; + + + inline constexpr float + cos(float __x) + { return __builtin_cosf(__x); } + + inline constexpr long double + cos(long double __x) + { return __builtin_cosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cos(_Tp __x) + { return __builtin_cos(__x); } + + using ::cosh; + + + inline constexpr float + cosh(float __x) + { return __builtin_coshf(__x); } + + inline constexpr long double + cosh(long double __x) + { return __builtin_coshl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cosh(_Tp __x) + { return __builtin_cosh(__x); } + + using ::exp; + + + inline constexpr float + exp(float __x) + { return __builtin_expf(__x); } + + inline constexpr long double + exp(long double __x) + { return __builtin_expl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp(_Tp __x) + { return __builtin_exp(__x); } + + using ::fabs; + + + inline constexpr float + fabs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + fabs(long double __x) + { return __builtin_fabsl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + fabs(_Tp __x) + { return __builtin_fabs(__x); } + + using ::floor; + + + inline constexpr float + floor(float __x) + { return __builtin_floorf(__x); } + + inline constexpr long double + floor(long double __x) + { return __builtin_floorl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + floor(_Tp __x) + { return __builtin_floor(__x); } + + using ::fmod; + + + inline constexpr float + fmod(float __x, float __y) + { return __builtin_fmodf(__x, __y); } + + inline constexpr long double + fmod(long double __x, long double __y) + { return __builtin_fmodl(__x, __y); } + + + using ::frexp; + + + inline float + frexp(float __x, int* __exp) + { return __builtin_frexpf(__x, __exp); } + + inline long double + frexp(long double __x, int* __exp) + { return __builtin_frexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + frexp(_Tp __x, int* __exp) + { return __builtin_frexp(__x, __exp); } + + using ::ldexp; + + + inline constexpr float + ldexp(float __x, int __exp) + { return __builtin_ldexpf(__x, __exp); } + + inline constexpr long double + ldexp(long double __x, int __exp) + { return __builtin_ldexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ldexp(_Tp __x, int __exp) + { return __builtin_ldexp(__x, __exp); } + + using ::log; + + + inline constexpr float + log(float __x) + { return __builtin_logf(__x); } + + inline constexpr long double + log(long double __x) + { return __builtin_logl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log(_Tp __x) + { return __builtin_log(__x); } + + using ::log10; + + + inline constexpr float + log10(float __x) + { return __builtin_log10f(__x); } + + inline constexpr long double + log10(long double __x) + { return __builtin_log10l(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log10(_Tp __x) + { return __builtin_log10(__x); } + + using ::modf; + + + inline float + modf(float __x, float* __iptr) + { return __builtin_modff(__x, __iptr); } + + inline long double + modf(long double __x, long double* __iptr) + { return __builtin_modfl(__x, __iptr); } + + + using ::pow; + + + inline constexpr float + pow(float __x, float __y) + { return __builtin_powf(__x, __y); } + + inline constexpr long double + pow(long double __x, long double __y) + { return __builtin_powl(__x, __y); } +# 400 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::sin; + + + inline constexpr float + sin(float __x) + { return __builtin_sinf(__x); } + + inline constexpr long double + sin(long double __x) + { return __builtin_sinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sin(_Tp __x) + { return __builtin_sin(__x); } + + using ::sinh; + + + inline constexpr float + sinh(float __x) + { return __builtin_sinhf(__x); } + + inline constexpr long double + sinh(long double __x) + { return __builtin_sinhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sinh(_Tp __x) + { return __builtin_sinh(__x); } + + using ::sqrt; + + + inline constexpr float + sqrt(float __x) + { return __builtin_sqrtf(__x); } + + inline constexpr long double + sqrt(long double __x) + { return __builtin_sqrtl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sqrt(_Tp __x) + { return __builtin_sqrt(__x); } + + using ::tan; + + + inline constexpr float + tan(float __x) + { return __builtin_tanf(__x); } + + inline constexpr long double + tan(long double __x) + { return __builtin_tanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tan(_Tp __x) + { return __builtin_tan(__x); } + + using ::tanh; + + + inline constexpr float + tanh(float __x) + { return __builtin_tanhf(__x); } + + inline constexpr long double + tanh(long double __x) + { return __builtin_tanhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tanh(_Tp __x) + { return __builtin_tanh(__x); } +# 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + atan2(_Tp __y, _Up __x) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return atan2(__type(__y), __type(__x)); + } + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmod(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmod(__type(__x), __type(__y)); + } + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + pow(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return pow(__type(__x), __type(__y)); + } +# 1100 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + constexpr int + fpclassify(float __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(long double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + fpclassify(_Tp __x) + { return __x != 0 ? 4 : 2; } + + + + constexpr bool + isfinite(float __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(double __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(long double __x) + { return __builtin_isfinite(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isfinite(_Tp) + { return true; } + + + + constexpr bool + isinf(float __x) + { return __builtin_isinf(__x); } + + + + + + constexpr bool + isinf(double __x) + { return __builtin_isinf(__x); } + + + constexpr bool + isinf(long double __x) + { return __builtin_isinf(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isinf(_Tp) + { return false; } + + + + constexpr bool + isnan(float __x) + { return __builtin_isnan(__x); } + + + + + + constexpr bool + isnan(double __x) + { return __builtin_isnan(__x); } + + + constexpr bool + isnan(long double __x) + { return __builtin_isnan(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnan(_Tp) + { return false; } + + + + constexpr bool + isnormal(float __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(double __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(long double __x) + { return __builtin_isnormal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnormal(_Tp __x) + { return __x != 0 ? true : false; } + + + + + constexpr bool + signbit(float __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(double __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(long double __x) + { return __builtin_signbit(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + signbit(_Tp __x) + { return __x < 0 ? true : false; } + + + + constexpr bool + isgreater(float __x, float __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(double __x, double __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(long double __x, long double __y) + { return __builtin_isgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isgreaterequal(float __x, float __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(double __x, double __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(long double __x, long double __y) + { return __builtin_isgreaterequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreaterequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreaterequal(__type(__x), __type(__y)); + } + + + + constexpr bool + isless(float __x, float __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(double __x, double __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(long double __x, long double __y) + { return __builtin_isless(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isless(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isless(__type(__x), __type(__y)); + } + + + + constexpr bool + islessequal(float __x, float __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(double __x, double __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(long double __x, long double __y) + { return __builtin_islessequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessequal(__type(__x), __type(__y)); + } + + + + constexpr bool + islessgreater(float __x, float __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(double __x, double __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(long double __x, long double __y) + { return __builtin_islessgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isunordered(float __x, float __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(double __x, double __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(long double __x, long double __y) + { return __builtin_isunordered(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isunordered(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isunordered(__type(__x), __type(__y)); + } +# 1820 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::acosf; + + + using ::acosl; + + + + using ::asinf; + + + using ::asinl; + + + + using ::atanf; + + + using ::atanl; + + + + using ::atan2f; + + + using ::atan2l; + + + + using ::ceilf; + + + using ::ceill; + + + + using ::cosf; + + + using ::cosl; + + + + using ::coshf; + + + using ::coshl; + + + + using ::expf; + + + using ::expl; + + + + using ::fabsf; + + + using ::fabsl; + + + + using ::floorf; + + + using ::floorl; + + + + using ::fmodf; + + + using ::fmodl; + + + + using ::frexpf; + + + using ::frexpl; + + + + using ::ldexpf; + + + using ::ldexpl; + + + + using ::logf; + + + using ::logl; + + + + using ::log10f; + + + using ::log10l; + + + + using ::modff; + + + using ::modfl; + + + + using ::powf; + + + using ::powl; + + + + using ::sinf; + + + using ::sinl; + + + + using ::sinhf; + + + using ::sinhl; + + + + using ::sqrtf; + + + using ::sqrtl; + + + + using ::tanf; + + + using ::tanl; + + + + using ::tanhf; + + + using ::tanhl; +# 2085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::double_t; + using ::float_t; + + + + using ::acosh; + using ::acoshf; + using ::acoshl; + + using ::asinh; + using ::asinhf; + using ::asinhl; + + using ::atanh; + using ::atanhf; + using ::atanhl; + + using ::cbrt; + using ::cbrtf; + using ::cbrtl; + + using ::copysign; + using ::copysignf; + using ::copysignl; + + using ::erf; + using ::erff; + using ::erfl; + + using ::erfc; + using ::erfcf; + using ::erfcl; + + using ::exp2; + using ::exp2f; + using ::exp2l; + + using ::expm1; + using ::expm1f; + using ::expm1l; + + using ::fdim; + using ::fdimf; + using ::fdiml; + + using ::fma; + using ::fmaf; + using ::fmal; + + using ::fmax; + using ::fmaxf; + using ::fmaxl; + + using ::fmin; + using ::fminf; + using ::fminl; + + using ::hypot; + using ::hypotf; + using ::hypotl; + + using ::ilogb; + using ::ilogbf; + using ::ilogbl; + + using ::lgamma; + using ::lgammaf; + using ::lgammal; + + + using ::llrint; + using ::llrintf; + using ::llrintl; + + using ::llround; + using ::llroundf; + using ::llroundl; + + + using ::log1p; + using ::log1pf; + using ::log1pl; + + using ::log2; + using ::log2f; + using ::log2l; + + using ::logb; + using ::logbf; + using ::logbl; + + using ::lrint; + using ::lrintf; + using ::lrintl; + + using ::lround; + using ::lroundf; + using ::lroundl; + + using ::nan; + using ::nanf; + using ::nanl; + + using ::nearbyint; + using ::nearbyintf; + using ::nearbyintl; + + using ::nextafter; + using ::nextafterf; + using ::nextafterl; + + using ::nexttoward; + using ::nexttowardf; + using ::nexttowardl; + + using ::remainder; + using ::remainderf; + using ::remainderl; + + using ::remquo; + using ::remquof; + using ::remquol; + + using ::rint; + using ::rintf; + using ::rintl; + + using ::round; + using ::roundf; + using ::roundl; + + using ::scalbln; + using ::scalblnf; + using ::scalblnl; + + using ::scalbn; + using ::scalbnf; + using ::scalbnl; + + using ::tgamma; + using ::tgammaf; + using ::tgammal; + + using ::trunc; + using ::truncf; + using ::truncl; + + + + constexpr float + acosh(float __x) + { return __builtin_acoshf(__x); } + + constexpr long double + acosh(long double __x) + { return __builtin_acoshl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acosh(_Tp __x) + { return __builtin_acosh(__x); } + + + + constexpr float + asinh(float __x) + { return __builtin_asinhf(__x); } + + constexpr long double + asinh(long double __x) + { return __builtin_asinhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asinh(_Tp __x) + { return __builtin_asinh(__x); } + + + + constexpr float + atanh(float __x) + { return __builtin_atanhf(__x); } + + constexpr long double + atanh(long double __x) + { return __builtin_atanhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atanh(_Tp __x) + { return __builtin_atanh(__x); } + + + + constexpr float + cbrt(float __x) + { return __builtin_cbrtf(__x); } + + constexpr long double + cbrt(long double __x) + { return __builtin_cbrtl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cbrt(_Tp __x) + { return __builtin_cbrt(__x); } + + + + constexpr float + copysign(float __x, float __y) + { return __builtin_copysignf(__x, __y); } + + constexpr long double + copysign(long double __x, long double __y) + { return __builtin_copysignl(__x, __y); } + + + + constexpr float + erf(float __x) + { return __builtin_erff(__x); } + + constexpr long double + erf(long double __x) + { return __builtin_erfl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erf(_Tp __x) + { return __builtin_erf(__x); } + + + + constexpr float + erfc(float __x) + { return __builtin_erfcf(__x); } + + constexpr long double + erfc(long double __x) + { return __builtin_erfcl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erfc(_Tp __x) + { return __builtin_erfc(__x); } + + + + constexpr float + exp2(float __x) + { return __builtin_exp2f(__x); } + + constexpr long double + exp2(long double __x) + { return __builtin_exp2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp2(_Tp __x) + { return __builtin_exp2(__x); } + + + + constexpr float + expm1(float __x) + { return __builtin_expm1f(__x); } + + constexpr long double + expm1(long double __x) + { return __builtin_expm1l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + expm1(_Tp __x) + { return __builtin_expm1(__x); } + + + + constexpr float + fdim(float __x, float __y) + { return __builtin_fdimf(__x, __y); } + + constexpr long double + fdim(long double __x, long double __y) + { return __builtin_fdiml(__x, __y); } + + + + constexpr float + fma(float __x, float __y, float __z) + { return __builtin_fmaf(__x, __y, __z); } + + constexpr long double + fma(long double __x, long double __y, long double __z) + { return __builtin_fmal(__x, __y, __z); } + + + + constexpr float + fmax(float __x, float __y) + { return __builtin_fmaxf(__x, __y); } + + constexpr long double + fmax(long double __x, long double __y) + { return __builtin_fmaxl(__x, __y); } + + + + constexpr float + fmin(float __x, float __y) + { return __builtin_fminf(__x, __y); } + + constexpr long double + fmin(long double __x, long double __y) + { return __builtin_fminl(__x, __y); } + + + + constexpr float + hypot(float __x, float __y) + { return __builtin_hypotf(__x, __y); } + + constexpr long double + hypot(long double __x, long double __y) + { return __builtin_hypotl(__x, __y); } + + + + constexpr int + ilogb(float __x) + { return __builtin_ilogbf(__x); } + + constexpr int + ilogb(long double __x) + { return __builtin_ilogbl(__x); } + + + + template + constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + ilogb(_Tp __x) + { return __builtin_ilogb(__x); } + + + + constexpr float + lgamma(float __x) + { return __builtin_lgammaf(__x); } + + constexpr long double + lgamma(long double __x) + { return __builtin_lgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + lgamma(_Tp __x) + { return __builtin_lgamma(__x); } + + + + constexpr long long + llrint(float __x) + { return __builtin_llrintf(__x); } + + constexpr long long + llrint(long double __x) + { return __builtin_llrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llrint(_Tp __x) + { return __builtin_llrint(__x); } + + + + constexpr long long + llround(float __x) + { return __builtin_llroundf(__x); } + + constexpr long long + llround(long double __x) + { return __builtin_llroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llround(_Tp __x) + { return __builtin_llround(__x); } + + + + constexpr float + log1p(float __x) + { return __builtin_log1pf(__x); } + + constexpr long double + log1p(long double __x) + { return __builtin_log1pl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log1p(_Tp __x) + { return __builtin_log1p(__x); } + + + + + constexpr float + log2(float __x) + { return __builtin_log2f(__x); } + + constexpr long double + log2(long double __x) + { return __builtin_log2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log2(_Tp __x) + { return __builtin_log2(__x); } + + + + constexpr float + logb(float __x) + { return __builtin_logbf(__x); } + + constexpr long double + logb(long double __x) + { return __builtin_logbl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + logb(_Tp __x) + { return __builtin_logb(__x); } + + + + constexpr long + lrint(float __x) + { return __builtin_lrintf(__x); } + + constexpr long + lrint(long double __x) + { return __builtin_lrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lrint(_Tp __x) + { return __builtin_lrint(__x); } + + + + constexpr long + lround(float __x) + { return __builtin_lroundf(__x); } + + constexpr long + lround(long double __x) + { return __builtin_lroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lround(_Tp __x) + { return __builtin_lround(__x); } + + + + constexpr float + nearbyint(float __x) + { return __builtin_nearbyintf(__x); } + + constexpr long double + nearbyint(long double __x) + { return __builtin_nearbyintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nearbyint(_Tp __x) + { return __builtin_nearbyint(__x); } + + + + constexpr float + nextafter(float __x, float __y) + { return __builtin_nextafterf(__x, __y); } + + constexpr long double + nextafter(long double __x, long double __y) + { return __builtin_nextafterl(__x, __y); } + + + + constexpr float + nexttoward(float __x, long double __y) + { return __builtin_nexttowardf(__x, __y); } + + constexpr long double + nexttoward(long double __x, long double __y) + { return __builtin_nexttowardl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nexttoward(_Tp __x, long double __y) + { return __builtin_nexttoward(__x, __y); } + + + + constexpr float + remainder(float __x, float __y) + { return __builtin_remainderf(__x, __y); } + + constexpr long double + remainder(long double __x, long double __y) + { return __builtin_remainderl(__x, __y); } + + + + inline float + remquo(float __x, float __y, int* __pquo) + { return __builtin_remquof(__x, __y, __pquo); } + + inline long double + remquo(long double __x, long double __y, int* __pquo) + { return __builtin_remquol(__x, __y, __pquo); } + + + + constexpr float + rint(float __x) + { return __builtin_rintf(__x); } + + constexpr long double + rint(long double __x) + { return __builtin_rintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + rint(_Tp __x) + { return __builtin_rint(__x); } + + + + constexpr float + round(float __x) + { return __builtin_roundf(__x); } + + constexpr long double + round(long double __x) + { return __builtin_roundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + round(_Tp __x) + { return __builtin_round(__x); } + + + + constexpr float + scalbln(float __x, long __ex) + { return __builtin_scalblnf(__x, __ex); } + + constexpr long double + scalbln(long double __x, long __ex) + { return __builtin_scalblnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbln(_Tp __x, long __ex) + { return __builtin_scalbln(__x, __ex); } + + + + constexpr float + scalbn(float __x, int __ex) + { return __builtin_scalbnf(__x, __ex); } + + constexpr long double + scalbn(long double __x, int __ex) + { return __builtin_scalbnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbn(_Tp __x, int __ex) + { return __builtin_scalbn(__x, __ex); } + + + + constexpr float + tgamma(float __x) + { return __builtin_tgammaf(__x); } + + constexpr long double + tgamma(long double __x) + { return __builtin_tgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tgamma(_Tp __x) + { return __builtin_tgamma(__x); } + + + + constexpr float + trunc(float __x) + { return __builtin_truncf(__x); } + + constexpr long double + trunc(long double __x) + { return __builtin_truncl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + trunc(_Tp __x) + { return __builtin_trunc(__x); } +# 3682 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + copysign(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return copysign(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fdim(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fdim(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmax(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmax(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmin(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmin(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + hypot(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return hypot(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + nextafter(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return nextafter(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remainder(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remainder(__type(__x), __type(__y)); + } + + template + inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remquo(_Tp __x, _Up __y, int* __pquo) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remquo(__type(__x), __type(__y), __pquo); + } + + template + constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type + fma(_Tp __x, _Up __y, _Vp __z) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; + return fma(__type(__x), __type(__y), __type(__z)); + } + + + + + + + + template + inline _Tp + __hypot3(_Tp __x, _Tp __y, _Tp __z) + { + __x = std::abs(__x); + __y = std::abs(__y); + __z = std::abs(__z); + if (_Tp __a = __x < __y ? __y < __z ? __z : __y : __x < __z ? __z : __x) + return __a * std::sqrt((__x / __a) * (__x / __a) + + (__y / __a) * (__y / __a) + + (__z / __a) * (__z / __a)); + else + return {}; + } + + inline float + hypot(float __x, float __y, float __z) + { return std::__hypot3(__x, __y, __z); } + + inline double + hypot(double __x, double __y, double __z) + { return std::__hypot3(__x, __y, __z); } + + inline long double + hypot(long double __x, long double __y, long double __z) + { return std::__hypot3(__x, __y, __z); } + + template + __gnu_cxx::__promoted_t<_Tp, _Up, _Vp> + hypot(_Tp __x, _Up __y, _Vp __z) + { + using __type = __gnu_cxx::__promoted_t<_Tp, _Up, _Vp>; + return std::__hypot3<__type>(__x, __y, __z); + } +# 3902 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +} + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 1 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 1 3 +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_defines.h" 1 3 +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + void + __throw_bad_exception(void) __attribute__((__noreturn__)); + + + void + __throw_bad_alloc(void) __attribute__((__noreturn__)); + + void + __throw_bad_array_new_length(void) __attribute__((__noreturn__)); + + + void + __throw_bad_cast(void) __attribute__((__noreturn__,__cold__)); + + void + __throw_bad_typeid(void) __attribute__((__noreturn__,__cold__)); + + + void + __throw_logic_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_domain_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_invalid_argument(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_length_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_out_of_range(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__,__cold__)) + __attribute__((__format__(__gnu_printf__, 1, 2))); + + void + __throw_runtime_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_range_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_overflow_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_underflow_error(const char*) __attribute__((__noreturn__,__cold__)); + + + void + __throw_ios_failure(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_ios_failure(const char*, int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_system_error(int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_future_error(int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_bad_function_call() __attribute__((__noreturn__,__cold__)); +# 140 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 + +} +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + struct __is_integer_nonstrict + : public std::__is_integer<_Tp> + { + using std::__is_integer<_Tp>::__value; + + + enum { __width = __value ? sizeof(_Tp) * 8 : 0 }; + }; + + template + struct __numeric_traits_integer + { + + static_assert(__is_integer_nonstrict<_Value>::__value, + "invalid specialization"); + + + + + static const bool __is_signed = (_Value)(-1) < 0; + static const int __digits + = __is_integer_nonstrict<_Value>::__width - __is_signed; + + + static const _Value __max = __is_signed + ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1) + : ~(_Value)0; + static const _Value __min = __is_signed ? -__max - 1 : (_Value)0; + }; + + template + const _Value __numeric_traits_integer<_Value>::__min; + + template + const _Value __numeric_traits_integer<_Value>::__max; + + template + const bool __numeric_traits_integer<_Value>::__is_signed; + + template + const int __numeric_traits_integer<_Value>::__digits; +# 137 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + using __int_traits = __numeric_traits_integer<_Tp>; +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + struct __numeric_traits_floating + { + + static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); + + + static const bool __is_signed = true; + static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); + static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); + }; + + template + const int __numeric_traits_floating<_Value>::__max_digits10; + + template + const bool __numeric_traits_floating<_Value>::__is_signed; + + template + const int __numeric_traits_floating<_Value>::__digits10; + + template + const int __numeric_traits_floating<_Value>::__max_exponent10; + + + + + + + template + struct __numeric_traits + : public __numeric_traits_integer<_Value> + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; +# 238 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + +} +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 1 3 +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + class reference_wrapper; +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + using value_type = _Tp; + using type = integral_constant<_Tp, __v>; + constexpr operator value_type() const noexcept { return value; } + + + constexpr value_type operator()() const noexcept { return value; } + + }; +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + using __bool_constant = integral_constant; + + + + using true_type = __bool_constant; + + + using false_type = __bool_constant; + + + + + template + using bool_constant = __bool_constant<__v>; + + + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { using type = _Tp; }; + + + template + using __enable_if_t = typename enable_if<_Cond, _Tp>::type; + + template + struct __conditional + { + template + using type = _Tp; + }; + + template<> + struct __conditional + { + template + using type = _Up; + }; + + + template + using __conditional_t + = typename __conditional<_Cond>::template type<_If, _Else>; + + + template + struct __type_identity + { using type = _Type; }; + + template + using __type_identity_t = typename __type_identity<_Tp>::type; + + namespace __detail + { + + template + using __first_t = _Tp; + + + template + auto __or_fn(int) -> __first_t...>; + + template + auto __or_fn(...) -> true_type; + + template + auto __and_fn(int) -> __first_t...>; + + template + auto __and_fn(...) -> false_type; + } + + + + + template + struct __or_ + : decltype(__detail::__or_fn<_Bn...>(0)) + { }; + + template + struct __and_ + : decltype(__detail::__and_fn<_Bn...>(0)) + { }; + + template + struct __not_ + : __bool_constant + { }; + + + + + + template + inline constexpr bool __or_v = __or_<_Bn...>::value; + template + inline constexpr bool __and_v = __and_<_Bn...>::value; + + namespace __detail + { + template + struct __disjunction_impl + { using type = _B1; }; + + template + struct __disjunction_impl<__enable_if_t, _B1, _B2, _Bn...> + { using type = typename __disjunction_impl::type; }; + + template + struct __conjunction_impl + { using type = _B1; }; + + template + struct __conjunction_impl<__enable_if_t, _B1, _B2, _Bn...> + { using type = typename __conjunction_impl::type; }; + } + + + template + struct conjunction + : __detail::__conjunction_impl::type + { }; + + template<> + struct conjunction<> + : true_type + { }; + + template + struct disjunction + : __detail::__disjunction_impl::type + { }; + + template<> + struct disjunction<> + : false_type + { }; + + template + struct negation + : __not_<_Pp>::type + { }; + + + + + template + inline constexpr bool conjunction_v = conjunction<_Bn...>::value; + + template + inline constexpr bool disjunction_v = disjunction<_Bn...>::value; + + template + inline constexpr bool negation_v = negation<_Pp>::value; + + + + + + template + struct is_reference; + template + struct is_function; + template + struct is_void; + template + struct remove_cv; + template + struct is_const; + + + template + struct __is_array_unknown_bounds; + + + + + template + constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>) + { return {}; } + + template + constexpr typename __or_< + is_reference<_NestedType>, + is_function<_NestedType>, + is_void<_NestedType>, + __is_array_unknown_bounds<_NestedType> + >::type __is_complete_or_unbounded(_TypeIdentity) + { return {}; } + + + template + using __remove_cv_t = typename remove_cv<_Tp>::type; + + + + + + template + struct is_void + : public false_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + + template + struct __is_integral_helper + : public false_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + + + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + __extension__ + template<> + struct __is_integral_helper<__int128> + : public true_type { }; + + __extension__ + template<> + struct __is_integral_helper + : public true_type { }; +# 460 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_integral + : public __is_integral_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct __is_floating_point_helper + : public false_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; +# 513 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __is_floating_point_helper<__float128> + : public true_type { }; + + + + + template + struct is_floating_point + : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type + { }; + + + + template + struct is_array + : public __bool_constant<__is_array(_Tp)> + { }; +# 545 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __is_pointer_helper + : public false_type { }; + + template + struct __is_pointer_helper<_Tp*> + : public true_type { }; + + + template + struct is_pointer + : public __is_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct is_lvalue_reference + : public false_type { }; + + template + struct is_lvalue_reference<_Tp&> + : public true_type { }; + + + template + struct is_rvalue_reference + : public false_type { }; + + template + struct is_rvalue_reference<_Tp&&> + : public true_type { }; + + + + template + struct is_member_object_pointer + : public __bool_constant<__is_member_object_pointer(_Tp)> + { }; +# 601 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_member_function_pointer + : public __bool_constant<__is_member_function_pointer(_Tp)> + { }; +# 622 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_enum + : public __bool_constant<__is_enum(_Tp)> + { }; + + + template + struct is_union + : public __bool_constant<__is_union(_Tp)> + { }; + + + template + struct is_class + : public __bool_constant<__is_class(_Tp)> + { }; + + + + template + struct is_function + : public __bool_constant<__is_function(_Tp)> + { }; +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_null_pointer + : public false_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); + + + + + + + template + struct is_reference + : public __bool_constant<__is_reference(_Tp)> + { }; +# 715 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_arithmetic + : public __or_, is_floating_point<_Tp>>::type + { }; + + + template + struct is_fundamental + : public __or_, is_void<_Tp>, + is_null_pointer<_Tp>>::type + { }; + + + + template + struct is_object + : public __bool_constant<__is_object(_Tp)> + { }; +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_member_pointer; + + + template + struct is_scalar + : public __or_, is_enum<_Tp>, is_pointer<_Tp>, + is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type + { }; + + + template + struct is_compound + : public __bool_constant::value> { }; + + + + template + struct is_member_pointer + : public __bool_constant<__is_member_pointer(_Tp)> + { }; +# 779 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_same; + + + template + using __is_one_of = __or_...>; + + + __extension__ + template + using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>, + signed char, signed short, signed int, signed long, + signed long long + + , signed __int128 +# 804 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + >; + + + __extension__ + template + using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>, + unsigned char, unsigned short, unsigned int, unsigned long, + unsigned long long + + , unsigned __int128 +# 824 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + >; + + + template + using __is_standard_integer + = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>; + + + template using __void_t = void; + + + + + + template + struct is_const + : public false_type { }; + + template + struct is_const<_Tp const> + : public true_type { }; + + + template + struct is_volatile + : public false_type { }; + + template + struct is_volatile<_Tp volatile> + : public true_type { }; + + + template + struct is_trivial + : public __bool_constant<__is_trivial(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_copyable + : public __bool_constant<__is_trivially_copyable(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_standard_layout + : public __bool_constant<__is_standard_layout(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + + template + struct + + is_pod + : public __bool_constant<__is_pod(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + template + struct + [[__deprecated__]] + is_literal_type + : public __bool_constant<__is_literal_type(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_empty + : public __bool_constant<__is_empty(_Tp)> + { }; + + + template + struct is_polymorphic + : public __bool_constant<__is_polymorphic(_Tp)> + { }; + + + + + template + struct is_final + : public __bool_constant<__is_final(_Tp)> + { }; + + + + template + struct is_abstract + : public __bool_constant<__is_abstract(_Tp)> + { }; + + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public __bool_constant<_Tp(-1) < _Tp(0)> + { }; + + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>>::type + { }; + + + template + _Up + __declval(int); + + template + _Tp + __declval(long); + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)); + + template + struct remove_all_extents; + + + template + struct __is_array_known_bounds + : public false_type + { }; + + template + struct __is_array_known_bounds<_Tp[_Size]> + : public true_type + { }; + + template + struct __is_array_unknown_bounds + : public false_type + { }; + + template + struct __is_array_unknown_bounds<_Tp[]> + : public true_type + { }; +# 1006 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + struct __do_is_destructible_impl + { + template().~_Tp())> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_destructible_impl + : public __do_is_destructible_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_destructible_safe; + + template + struct __is_destructible_safe<_Tp, false, false> + : public __is_destructible_impl::type>::type + { }; + + template + struct __is_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_destructible_safe<_Tp, false, true> + : public true_type { }; + + + + template + struct is_destructible + : public __is_destructible_safe<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + + + struct __do_is_nt_destructible_impl + { + template + static __bool_constant().~_Tp())> + __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_nt_destructible_impl + : public __do_is_nt_destructible_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_nt_destructible_safe; + + template + struct __is_nt_destructible_safe<_Tp, false, false> + : public __is_nt_destructible_impl::type>::type + { }; + + template + struct __is_nt_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_nt_destructible_safe<_Tp, false, true> + : public true_type { }; + + + + template + struct is_nothrow_destructible + : public __is_nt_destructible_safe<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_constructible_impl + = __bool_constant<__is_constructible(_Tp, _Args...)>; + + + + template + struct is_constructible + : public __is_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_default_constructible + : public __is_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct __add_lvalue_reference_helper + { using type = _Tp; }; + + template + struct __add_lvalue_reference_helper<_Tp, __void_t<_Tp&>> + { using type = _Tp&; }; + + template + using __add_lval_ref_t = typename __add_lvalue_reference_helper<_Tp>::type; + + + + template + struct is_copy_constructible + : public __is_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct __add_rvalue_reference_helper + { using type = _Tp; }; + + template + struct __add_rvalue_reference_helper<_Tp, __void_t<_Tp&&>> + { using type = _Tp&&; }; + + template + using __add_rval_ref_t = typename __add_rvalue_reference_helper<_Tp>::type; + + + + template + struct is_move_constructible + : public __is_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_nothrow_constructible_impl + = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; + + + + template + struct is_nothrow_constructible + : public __is_nothrow_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_default_constructible + : public __is_nothrow_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_assignable_impl = __bool_constant<__is_assignable(_Tp, _Up)>; + + + + template + struct is_assignable + : public __is_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_copy_assignable + : public __is_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_move_assignable + : public __is_assignable_impl<__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_nothrow_assignable_impl + = __bool_constant<__is_nothrow_assignable(_Tp, _Up)>; + + + + template + struct is_nothrow_assignable + : public __is_nothrow_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_copy_assignable + : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_move_assignable + : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_trivially_constructible_impl + = __bool_constant<__is_trivially_constructible(_Tp, _Args...)>; + + + + template + struct is_trivially_constructible + : public __is_trivially_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_default_constructible + : public __is_trivially_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; +# 1319 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + struct __do_is_implicitly_default_constructible_impl + { + template + static void __helper(const _Tp&); + + template + static true_type __test(const _Tp&, + decltype(__helper({}))* = 0); + + static false_type __test(...); + }; + + template + struct __is_implicitly_default_constructible_impl + : public __do_is_implicitly_default_constructible_impl + { + using type = decltype(__test(declval<_Tp>())); + }; + + template + struct __is_implicitly_default_constructible_safe + : public __is_implicitly_default_constructible_impl<_Tp>::type + { }; + + template + struct __is_implicitly_default_constructible + : public __and_<__is_constructible_impl<_Tp>, + __is_implicitly_default_constructible_safe<_Tp>>::type + { }; + + + + template + struct is_trivially_copy_constructible + : public __is_trivially_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_move_constructible + : public __is_trivially_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_trivially_assignable_impl + = __bool_constant<__is_trivially_assignable(_Tp, _Up)>; + + + + template + struct is_trivially_assignable + : public __is_trivially_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_copy_assignable + : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_move_assignable + : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_destructible + : public __and_<__is_destructible_safe<_Tp>, + __bool_constant<__has_trivial_destructor(_Tp)>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + struct has_virtual_destructor + : public __bool_constant<__has_virtual_destructor(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + template + struct alignment_of + : public integral_constant + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct rank + : public integral_constant { }; + + template + struct rank<_Tp[_Size]> + : public integral_constant::value> { }; + + template + struct rank<_Tp[]> + : public integral_constant::value> { }; + + + template + struct extent + : public integral_constant { }; + + template + struct extent<_Tp[_Size], 0> + : public integral_constant { }; + + template + struct extent<_Tp[_Size], _Uint> + : public extent<_Tp, _Uint - 1>::type { }; + + template + struct extent<_Tp[], 0> + : public integral_constant { }; + + template + struct extent<_Tp[], _Uint> + : public extent<_Tp, _Uint - 1>::type { }; + + + + + + + template + struct is_same + : public __bool_constant<__is_same(_Tp, _Up)> + { }; +# 1491 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_base_of + : public __bool_constant<__is_base_of(_Base, _Derived)> + { }; + + + template + struct is_convertible + : public __bool_constant<__is_convertible(_From, _To)> + { }; +# 1540 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + using __is_array_convertible + = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; +# 1600 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++14-extensions" + template + struct __is_nothrow_new_constructible_impl + : __bool_constant< + noexcept(::new(std::declval()) _Tp(std::declval<_Args>()...)) + > + { }; + + template + inline constexpr bool __is_nothrow_new_constructible + = __and_, + __is_nothrow_new_constructible_impl<_Tp, _Args...>>::value; +#pragma GCC diagnostic pop + + + + + template + struct remove_const + { using type = _Tp; }; + + template + struct remove_const<_Tp const> + { using type = _Tp; }; + + + template + struct remove_volatile + { using type = _Tp; }; + + template + struct remove_volatile<_Tp volatile> + { using type = _Tp; }; + + + + template + struct remove_cv + { using type = __remove_cv(_Tp); }; +# 1659 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct add_const + { using type = _Tp const; }; + + + template + struct add_volatile + { using type = _Tp volatile; }; + + + template + struct add_cv + { using type = _Tp const volatile; }; + + + + template + using remove_const_t = typename remove_const<_Tp>::type; + + + template + using remove_volatile_t = typename remove_volatile<_Tp>::type; + + + template + using remove_cv_t = typename remove_cv<_Tp>::type; + + + template + using add_const_t = typename add_const<_Tp>::type; + + + template + using add_volatile_t = typename add_volatile<_Tp>::type; + + + template + using add_cv_t = typename add_cv<_Tp>::type; + + + + + + + template + struct remove_reference + { using type = __remove_reference(_Tp); }; +# 1721 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct add_lvalue_reference + { using type = __add_lval_ref_t<_Tp>; }; + + + template + struct add_rvalue_reference + { using type = __add_rval_ref_t<_Tp>; }; + + + + template + using remove_reference_t = typename remove_reference<_Tp>::type; + + + template + using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; + + + template + using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; + + + + + + + + template + struct __cv_selector; + + template + struct __cv_selector<_Unqualified, false, false> + { using __type = _Unqualified; }; + + template + struct __cv_selector<_Unqualified, false, true> + { using __type = volatile _Unqualified; }; + + template + struct __cv_selector<_Unqualified, true, false> + { using __type = const _Unqualified; }; + + template + struct __cv_selector<_Unqualified, true, true> + { using __type = const volatile _Unqualified; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + using __match = __cv_selector<_Unqualified, _IsConst, _IsVol>; + + public: + using __type = typename __match::__type; + }; + + + template + struct __make_unsigned + { using __type = _Tp; }; + + template<> + struct __make_unsigned + { using __type = unsigned char; }; + + template<> + struct __make_unsigned + { using __type = unsigned char; }; + + template<> + struct __make_unsigned + { using __type = unsigned short; }; + + template<> + struct __make_unsigned + { using __type = unsigned int; }; + + template<> + struct __make_unsigned + { using __type = unsigned long; }; + + template<> + struct __make_unsigned + { using __type = unsigned long long; }; + + + __extension__ + template<> + struct __make_unsigned<__int128> + { using __type = unsigned __int128; }; +# 1834 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, + bool _IsEnum = __is_enum(_Tp)> + class __make_unsigned_selector; + + template + class __make_unsigned_selector<_Tp, true, false> + { + using __unsigned_type + = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + class __make_unsigned_selector_base + { + protected: + template struct _List { }; + + template + struct _List<_Tp, _Up...> : _List<_Up...> + { static constexpr size_t __size = sizeof(_Tp); }; + + template + struct __select; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, true> + { using __type = _Uint; }; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, false> + : __select<_Sz, _List<_UInts...>> + { }; + }; + + + template + class __make_unsigned_selector<_Tp, false, true> + : __make_unsigned_selector_base + { + + using _UInts = _List; + + using __unsigned_type = typename __select::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + + + + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; +# 1908 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + + + + + + template + struct make_unsigned + { using type = typename __make_unsigned_selector<_Tp>::__type; }; + + + template<> struct make_unsigned; + template<> struct make_unsigned; + template<> struct make_unsigned; + template<> struct make_unsigned; + + + + + template + struct __make_signed + { using __type = _Tp; }; + + template<> + struct __make_signed + { using __type = signed char; }; + + template<> + struct __make_signed + { using __type = signed char; }; + + template<> + struct __make_signed + { using __type = signed short; }; + + template<> + struct __make_signed + { using __type = signed int; }; + + template<> + struct __make_signed + { using __type = signed long; }; + + template<> + struct __make_signed + { using __type = signed long long; }; + + + __extension__ + template<> + struct __make_signed + { using __type = __int128; }; +# 1994 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, + bool _IsEnum = __is_enum(_Tp)> + class __make_signed_selector; + + template + class __make_signed_selector<_Tp, true, false> + { + using __signed_type + = typename __make_signed<__remove_cv_t<_Tp>>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; + }; + + + template + class __make_signed_selector<_Tp, false, true> + { + using __unsigned_type = typename __make_unsigned_selector<_Tp>::__type; + + public: + using __type = typename __make_signed_selector<__unsigned_type>::__type; + }; + + + + + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; +# 2040 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + + + + + + template + struct make_signed + { using type = typename __make_signed_selector<_Tp>::__type; }; + + + template<> struct make_signed; + template<> struct make_signed; + template<> struct make_signed; + template<> struct make_signed; + + + + template + using make_signed_t = typename make_signed<_Tp>::type; + + + template + using make_unsigned_t = typename make_unsigned<_Tp>::type; + + + + + + template + struct remove_extent + { using type = _Tp; }; + + template + struct remove_extent<_Tp[_Size]> + { using type = _Tp; }; + + template + struct remove_extent<_Tp[]> + { using type = _Tp; }; + + + template + struct remove_all_extents + { using type = _Tp; }; + + template + struct remove_all_extents<_Tp[_Size]> + { using type = typename remove_all_extents<_Tp>::type; }; + + template + struct remove_all_extents<_Tp[]> + { using type = typename remove_all_extents<_Tp>::type; }; + + + + template + using remove_extent_t = typename remove_extent<_Tp>::type; + + + template + using remove_all_extents_t = typename remove_all_extents<_Tp>::type; + + + + + + + template + struct remove_pointer + { using type = __remove_pointer(_Tp); }; +# 2139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __add_pointer_helper + { using type = _Tp; }; + + template + struct __add_pointer_helper<_Tp, __void_t<_Tp*>> + { using type = _Tp*; }; + + + template + struct add_pointer + : public __add_pointer_helper<_Tp> + { }; + + template + struct add_pointer<_Tp&> + { using type = _Tp*; }; + + template + struct add_pointer<_Tp&&> + { using type = _Tp*; }; + + + + template + using remove_pointer_t = typename remove_pointer<_Tp>::type; + + + template + using add_pointer_t = typename add_pointer<_Tp>::type; + + + template + struct __aligned_storage_msa + { + union __type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__)) { } __align; + }; + }; +# 2194 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::__type)> + struct + + aligned_storage + { + union type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__((_Align)))) { } __align; + }; + }; + + template + struct __strictest_alignment + { + static const size_t _S_alignment = 0; + static const size_t _S_size = 0; + }; + + template + struct __strictest_alignment<_Tp, _Types...> + { + static const size_t _S_alignment = + alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment + ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; + static const size_t _S_size = + sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size + ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 2240 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct + + aligned_union + { + private: + static_assert(sizeof...(_Types) != 0, "At least one type is required"); + + using __strictest = __strictest_alignment<_Types...>; + static const size_t _S_len = _Len > __strictest::_S_size + ? _Len : __strictest::_S_size; + public: + + static const size_t alignment_value = __strictest::_S_alignment; + + using type = typename aligned_storage<_S_len, alignment_value>::type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; +#pragma GCC diagnostic pop + + + + + + template + struct __decay_selector + : __conditional_t::value, + remove_cv<_Up>, + add_pointer<_Up>> + { }; + + template + struct __decay_selector<_Up[_Nm]> + { using type = _Up*; }; + + template + struct __decay_selector<_Up[]> + { using type = _Up*; }; + + + + + template + struct decay + { using type = typename __decay_selector<_Tp>::type; }; + + template + struct decay<_Tp&> + { using type = typename __decay_selector<_Tp>::type; }; + + template + struct decay<_Tp&&> + { using type = typename __decay_selector<_Tp>::type; }; + + + + + template + struct __strip_reference_wrapper + { + using __type = _Tp; + }; + + template + struct __strip_reference_wrapper > + { + using __type = _Tp&; + }; + + + template + using __decay_t = typename decay<_Tp>::type; + + template + using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; + + + + + + template + using _Require = __enable_if_t<__and_<_Cond...>::value>; + + + template + using __remove_cvref_t + = typename remove_cv::type>::type; + + + + + template + struct conditional + { using type = _Iftrue; }; + + + template + struct conditional + { using type = _Iffalse; }; + + + template + struct common_type; +# 2355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __success_type + { using type = _Tp; }; + + struct __failure_type + { }; + + struct __do_common_type_impl + { + template + using __cond_t + = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); + + + + template + static __success_type<__decay_t<__cond_t<_Tp, _Up>>> + _S_test(int); +# 2382 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + static __failure_type + _S_test_2(...); + + template + static decltype(_S_test_2<_Tp, _Up>(0)) + _S_test(...); + }; + + + template<> + struct common_type<> + { }; + + + template + struct common_type<_Tp0> + : public common_type<_Tp0, _Tp0> + { }; + + + template, typename _Dp2 = __decay_t<_Tp2>> + struct __common_type_impl + { + + + using type = common_type<_Dp1, _Dp2>; + }; + + template + struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> + : private __do_common_type_impl + { + + + using type = decltype(_S_test<_Tp1, _Tp2>(0)); + }; + + + template + struct common_type<_Tp1, _Tp2> + : public __common_type_impl<_Tp1, _Tp2>::type + { }; + + template + struct __common_type_pack + { }; + + template + struct __common_type_fold; + + + template + struct common_type<_Tp1, _Tp2, _Rp...> + : public __common_type_fold, + __common_type_pack<_Rp...>> + { }; + + + + + template + struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, + __void_t> + : public common_type + { }; + + + template + struct __common_type_fold<_CTp, _Rp, void> + { }; + + template + struct __underlying_type_impl + { + using type = __underlying_type(_Tp); + }; + + template + struct __underlying_type_impl<_Tp, false> + { }; + + + + template + struct underlying_type + : public __underlying_type_impl<_Tp> + { }; + + + template + struct __declval_protector + { + static const bool __stop = false; + }; + + + + + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)) + { + static_assert(__declval_protector<_Tp>::__stop, + "declval() must not be used!"); + return __declval<_Tp>(0); + } + + + template + struct result_of; + + + + + struct __invoke_memfun_ref { }; + struct __invoke_memfun_deref { }; + struct __invoke_memobj_ref { }; + struct __invoke_memobj_deref { }; + struct __invoke_other { }; + + + template + struct __result_of_success : __success_type<_Tp> + { using __invoke_type = _Tag; }; + + + struct __result_of_memfun_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_ref + : private __result_of_memfun_ref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); + }; + + + struct __result_of_memfun_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_deref + : private __result_of_memfun_deref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); + }; + + + struct __result_of_memobj_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>() + ), __invoke_memobj_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_ref + : private __result_of_memobj_ref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg>(0)); + }; + + + struct __result_of_memobj_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>() + ), __invoke_memobj_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_deref + : private __result_of_memobj_deref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg>(0)); + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + using _Argval = __remove_cvref_t<_Arg>; + using _MemPtr = _Res _Class::*; + using type = typename __conditional_t<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + using _Argval = typename remove_reference<_Arg>::type; + using _MemPtr = _Res _Class::*; + using type = typename __conditional_t::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type; + }; + + + + + + + template> + struct __inv_unwrap + { + using type = _Tp; + }; + + template + struct __inv_unwrap<_Tp, reference_wrapper<_Up>> + { + using type = _Up&; + }; + + template + struct __result_of_impl + { + using type = __failure_type; + }; + + template + struct __result_of_impl + : public __result_of_memobj<__decay_t<_MemPtr>, + typename __inv_unwrap<_Arg>::type> + { }; + + template + struct __result_of_impl + : public __result_of_memfun<__decay_t<_MemPtr>, + typename __inv_unwrap<_Arg>::type, _Args...> + { }; + + + struct __result_of_other_impl + { + template + static __result_of_success()(std::declval<_Args>()...) + ), __invoke_other> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_impl + : private __result_of_other_impl + { + using type = decltype(_S_test<_Functor, _ArgTypes...>(0)); + }; + + + template + struct __invoke_result + : public __result_of_impl< + is_member_object_pointer< + typename remove_reference<_Functor>::type + >::value, + is_member_function_pointer< + typename remove_reference<_Functor>::type + >::value, + _Functor, _ArgTypes... + >::type + { }; + + + template + using __invoke_result_t = typename __invoke_result<_Fn, _Args...>::type; + + + template + struct result_of<_Functor(_ArgTypes...)> + : public __invoke_result<_Functor, _ArgTypes...> + { } __attribute__ ((__deprecated__ ("use '" "std::invoke_result" "' instead"))); + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + + template::__type)> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + + template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; +#pragma GCC diagnostic pop + + + template + using decay_t = typename decay<_Tp>::type; + + + template + using enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template + using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; + + + template + using common_type_t = typename common_type<_Tp...>::type; + + + template + using underlying_type_t = typename underlying_type<_Tp>::type; + + + template + using result_of_t = typename result_of<_Tp>::type; + + + + + template using void_t = void; +# 2759 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template class _Op, typename... _Args> + struct __detector + { + using type = _Default; + using __is_detected = false_type; + }; + + + template class _Op, + typename... _Args> + struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> + { + using type = _Op<_Args...>; + using __is_detected = true_type; + }; + + template class _Op, + typename... _Args> + using __detected_or = __detector<_Default, void, _Op, _Args...>; + + + + template class _Op, + typename... _Args> + using __detected_or_t + = typename __detected_or<_Default, _Op, _Args...>::type; +# 2801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __is_swappable; + + template + struct __is_nothrow_swappable; + + template + struct __is_tuple_like_impl : false_type + { }; + + + template + struct __is_tuple_like + : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type + { }; + + + template + + inline + _Require<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>> + swap(_Tp&, _Tp&) + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value); + + template + + inline + __enable_if_t<__is_swappable<_Tp>::value> + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value); + + + namespace __swappable_details { + using std::swap; + + struct __do_is_swappable_impl + { + template(), std::declval<_Tp&>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_impl + : public __swappable_details::__do_is_swappable_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template + struct __is_nothrow_swappable_impl + : public __swappable_details::__do_is_nothrow_swappable_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template + struct __is_swappable + : public __is_swappable_impl<_Tp>::type + { }; + + template + struct __is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { }; + + + + + + + template + struct is_swappable + : public __is_swappable_impl<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool is_swappable_v = + is_swappable<_Tp>::value; + + + template + inline constexpr bool is_nothrow_swappable_v = + is_nothrow_swappable<_Tp>::value; + + + + namespace __swappable_with_details { + using std::swap; + + struct __do_is_swappable_with_impl + { + template(), std::declval<_Up>())), + typename + = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_with_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) + && + noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_with_impl + : public __swappable_with_details::__do_is_swappable_with_impl + { + using type = decltype(__test<_Tp, _Up>(0)); + }; + + + template + struct __is_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_swappable_impl + { + using type = decltype(__test<_Tp&>(0)); + }; + + template + struct __is_nothrow_swappable_with_impl + : public __swappable_with_details::__do_is_nothrow_swappable_with_impl + { + using type = decltype(__test<_Tp, _Up>(0)); + }; + + + template + struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_nothrow_swappable_impl + { + using type = decltype(__test<_Tp&>(0)); + }; + + + + template + struct is_swappable_with + : public __is_swappable_with_impl<_Tp, _Up>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "first template argument must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), + "second template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_swappable_with + : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "first template argument must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), + "second template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool is_swappable_with_v = + is_swappable_with<_Tp, _Up>::value; + + + template + inline constexpr bool is_nothrow_swappable_with_v = + is_nothrow_swappable_with<_Tp, _Up>::value; +# 3023 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, typename = void> + struct __is_invocable_impl + : false_type + { + using __nothrow_conv = false_type; + }; + + + template + struct __is_invocable_impl<_Result, _Ret, + true, + __void_t> + : true_type + { + using __nothrow_conv = true_type; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + + template + struct __is_invocable_impl<_Result, _Ret, + false, + __void_t> + { + private: + + using _Res_t = typename _Result::type; + + + + static _Res_t _S_get() noexcept; + + + template + static void _S_conv(__type_identity_t<_Tp>) noexcept; + + + template(_S_get())), + typename = decltype(_S_conv<_Tp>(_S_get())), + + bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t) + + + + > + static __bool_constant<_Nothrow && !_Dangle> + _S_test(int); + + template + static false_type + _S_test(...); + + public: + + using type = decltype(_S_test<_Ret, true>(1)); + + + using __nothrow_conv = decltype(_S_test<_Ret>(1)); + }; +#pragma GCC diagnostic pop + + template + struct __is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { }; + + template + constexpr bool __call_is_nt(__invoke_memfun_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept((std::declval<_Up>().*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memfun_deref) + { + return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept(std::declval<_Up>().*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_deref) + { + return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_other) + { + return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); + } + + template + struct __call_is_nothrow + : __bool_constant< + std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) + > + { }; + + template + using __call_is_nothrow_ + = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; + + + template + struct __is_nothrow_invocable + : __and_<__is_invocable<_Fn, _Args...>, + __call_is_nothrow_<_Fn, _Args...>>::type + { }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + struct __nonesuchbase {}; + struct __nonesuch : private __nonesuchbase { + ~__nonesuch() = delete; + __nonesuch(__nonesuch const&) = delete; + void operator=(__nonesuch const&) = delete; + }; +#pragma GCC diagnostic pop + + + + + template + struct invoke_result + : public __invoke_result<_Functor, _ArgTypes...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Functor>{}), + "_Functor must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + template + using invoke_result_t = typename invoke_result<_Fn, _Args...>::type; + + + template + struct is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + template + struct is_invocable_r + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), + "_Ret must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_invocable + : __and_<__is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>, + __call_is_nothrow_<_Fn, _ArgTypes...>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + + + + template + using __is_nt_invocable_impl + = typename __is_invocable_impl<_Result, _Ret>::__nothrow_conv; + + + + template + struct is_nothrow_invocable_r + : __and_<__is_nt_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>, + __call_is_nothrow_<_Fn, _ArgTypes...>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), + "_Ret must be a complete class or an unbounded array"); + }; +# 3251 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_void_v = is_void<_Tp>::value; +template + inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value; +template + inline constexpr bool is_integral_v = is_integral<_Tp>::value; +template + inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value; + + +template + inline constexpr bool is_array_v = __is_array(_Tp); +# 3272 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_pointer_v = is_pointer<_Tp>::value; +template + inline constexpr bool is_lvalue_reference_v = false; +template + inline constexpr bool is_lvalue_reference_v<_Tp&> = true; +template + inline constexpr bool is_rvalue_reference_v = false; +template + inline constexpr bool is_rvalue_reference_v<_Tp&&> = true; + + +template + inline constexpr bool is_member_object_pointer_v = + __is_member_object_pointer(_Tp); + + + + + + + +template + inline constexpr bool is_member_function_pointer_v = + __is_member_function_pointer(_Tp); + + + + + + +template + inline constexpr bool is_enum_v = __is_enum(_Tp); +template + inline constexpr bool is_union_v = __is_union(_Tp); +template + inline constexpr bool is_class_v = __is_class(_Tp); + + + +template + inline constexpr bool is_reference_v = __is_reference(_Tp); +# 3323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value; +template + inline constexpr bool is_fundamental_v = is_fundamental<_Tp>::value; + + +template + inline constexpr bool is_object_v = __is_object(_Tp); + + + + + +template + inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; +template + inline constexpr bool is_compound_v = !is_fundamental_v<_Tp>; + + +template + inline constexpr bool is_member_pointer_v = __is_member_pointer(_Tp); + + + + + +template + inline constexpr bool is_const_v = false; +template + inline constexpr bool is_const_v = true; + + +template + inline constexpr bool is_function_v = __is_function(_Tp); +# 3366 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_volatile_v = false; +template + inline constexpr bool is_volatile_v = true; + +template + inline constexpr bool is_trivial_v = __is_trivial(_Tp); +template + inline constexpr bool is_trivially_copyable_v = __is_trivially_copyable(_Tp); +template + inline constexpr bool is_standard_layout_v = __is_standard_layout(_Tp); +template + + inline constexpr bool is_pod_v = __is_pod(_Tp); +template + [[__deprecated__]] + inline constexpr bool is_literal_type_v = __is_literal_type(_Tp); +template + inline constexpr bool is_empty_v = __is_empty(_Tp); +template + inline constexpr bool is_polymorphic_v = __is_polymorphic(_Tp); +template + inline constexpr bool is_abstract_v = __is_abstract(_Tp); +template + inline constexpr bool is_final_v = __is_final(_Tp); + +template + inline constexpr bool is_signed_v = is_signed<_Tp>::value; +template + inline constexpr bool is_unsigned_v = is_unsigned<_Tp>::value; + +template + inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...); +template + inline constexpr bool is_default_constructible_v = __is_constructible(_Tp); +template + inline constexpr bool is_copy_constructible_v + = __is_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_move_constructible_v + = __is_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_assignable_v = __is_assignable(_Tp, _Up); +template + inline constexpr bool is_copy_assignable_v + = __is_assignable(__add_lval_ref_t<_Tp>, __add_lval_ref_t); +template + inline constexpr bool is_move_assignable_v + = __is_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; + +template + inline constexpr bool is_trivially_constructible_v + = __is_trivially_constructible(_Tp, _Args...); +template + inline constexpr bool is_trivially_default_constructible_v + = __is_trivially_constructible(_Tp); +template + inline constexpr bool is_trivially_copy_constructible_v + = __is_trivially_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_trivially_move_constructible_v + = __is_trivially_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_trivially_assignable_v + = __is_trivially_assignable(_Tp, _Up); +template + inline constexpr bool is_trivially_copy_assignable_v + = __is_trivially_assignable(__add_lval_ref_t<_Tp>, + __add_lval_ref_t); +template + inline constexpr bool is_trivially_move_assignable_v + = __is_trivially_assignable(__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>); +# 3461 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_trivially_destructible_v = + is_trivially_destructible<_Tp>::value; + + +template + inline constexpr bool is_nothrow_constructible_v + = __is_nothrow_constructible(_Tp, _Args...); +template + inline constexpr bool is_nothrow_default_constructible_v + = __is_nothrow_constructible(_Tp); +template + inline constexpr bool is_nothrow_copy_constructible_v + = __is_nothrow_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_nothrow_move_constructible_v + = __is_nothrow_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_nothrow_assignable_v + = __is_nothrow_assignable(_Tp, _Up); +template + inline constexpr bool is_nothrow_copy_assignable_v + = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, + __add_lval_ref_t); +template + inline constexpr bool is_nothrow_move_assignable_v + = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_nothrow_destructible_v = + is_nothrow_destructible<_Tp>::value; + +template + inline constexpr bool has_virtual_destructor_v + = __has_virtual_destructor(_Tp); + +template + inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; + +template + inline constexpr size_t rank_v = 0; +template + inline constexpr size_t rank_v<_Tp[_Size]> = 1 + rank_v<_Tp>; +template + inline constexpr size_t rank_v<_Tp[]> = 1 + rank_v<_Tp>; + +template + inline constexpr size_t extent_v = 0; +template + inline constexpr size_t extent_v<_Tp[_Size], 0> = _Size; +template + inline constexpr size_t extent_v<_Tp[_Size], _Idx> = extent_v<_Tp, _Idx - 1>; +template + inline constexpr size_t extent_v<_Tp[], 0> = 0; +template + inline constexpr size_t extent_v<_Tp[], _Idx> = extent_v<_Tp, _Idx - 1>; + + +template + inline constexpr bool is_same_v = __is_same(_Tp, _Up); + + + + + + +template + inline constexpr bool is_base_of_v = __is_base_of(_Base, _Derived); + +template + inline constexpr bool is_convertible_v = __is_convertible(_From, _To); + + + + +template + inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value; +template + inline constexpr bool is_nothrow_invocable_v + = is_nothrow_invocable<_Fn, _Args...>::value; +template + inline constexpr bool is_invocable_r_v + = is_invocable_r<_Ret, _Fn, _Args...>::value; +template + inline constexpr bool is_nothrow_invocable_r_v + = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value; + + + + + + + template + struct has_unique_object_representations + : bool_constant<__has_unique_object_representations( + remove_cv_t> + )> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool has_unique_object_representations_v + = has_unique_object_representations<_Tp>::value; + + + + + + + template + struct is_aggregate + : bool_constant<__is_aggregate(remove_cv_t<_Tp>)> + { }; + + + + + + + template + inline constexpr bool is_aggregate_v = __is_aggregate(remove_cv_t<_Tp>); +# 4017 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + +} +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline constexpr _Tp* + __addressof(_Tp& __r) noexcept + { return __builtin_addressof(__r); } +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type&& __t) noexcept + { + static_assert(!std::is_lvalue_reference<_Tp>::value, + "std::forward must not be used to convert an rvalue to an lvalue"); + return static_cast<_Tp&&>(__t); + } +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr typename std::remove_reference<_Tp>::type&& + move(_Tp&& __t) noexcept + { return static_cast::type&&>(__t); } + + + template + struct __move_if_noexcept_cond + : public __and_<__not_>, + is_copy_constructible<_Tp>>::type { }; +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr + __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&> + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + inline constexpr _Tp* + addressof(_Tp& __r) noexcept + { return std::__addressof(__r); } + + + + template + const _Tp* addressof(const _Tp&&) = delete; + + + template + + inline _Tp + __exchange(_Tp& __obj, _Up&& __new_val) + { + _Tp __old_val = std::move(__obj); + __obj = std::forward<_Up>(__new_val); + return __old_val; + } +# 216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + + inline + + typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>>::value>::type + + + + swap(_Tp& __a, _Tp& __b) + noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) + + { + + + + + _Tp __tmp = std::move(__a); + __a = std::move(__b); + __b = std::move(__tmp); + } + + + + + template + + inline + + typename enable_if<__is_swappable<_Tp>::value>::type + + + + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value) + { + for (size_t __n = 0; __n < _Nm; ++__n) + swap(__a[__n], __b[__n]); + } + + + +} +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct tuple_size; + + + + + + template::type, + typename = typename enable_if::value>::type, + size_t = tuple_size<_Tp>::value> + using __enable_if_has_tuple_size = _Tp; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + + template + inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; + + + + template + struct tuple_element; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + using type = const __tuple_element_t<__i, _Tp>; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + using type = volatile __tuple_element_t<__i, _Tp>; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + using type = const volatile __tuple_element_t<__i, _Tp>; + }; + + + + + + template + constexpr size_t + __find_uniq_type_in_pack() + { + constexpr size_t __sz = sizeof...(_Types); + constexpr bool __found[__sz] = { __is_same(_Tp, _Types) ... }; + size_t __n = __sz; + for (size_t __i = 0; __i < __sz; ++__i) + { + if (__found[__i]) + { + if (__n < __sz) + return __sz; + __n = __i; + } + } + return __n; + } +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + template + using tuple_element_t = typename tuple_element<__i, _Tp>::type; + + + + + template struct _Index_tuple { }; + + + template + struct _Build_index_tuple + { +# 154 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + using __type = _Index_tuple<__integer_pack(_Num)...>; + + }; + + + + + template + struct integer_sequence + { + + + + typedef _Tp value_type; + static constexpr size_t size() noexcept { return sizeof...(_Idx); } + }; + + + template + using make_integer_sequence + + + + = integer_sequence<_Tp, __integer_pack(_Num)...>; + + + + template + using index_sequence = integer_sequence; + + + template + using make_index_sequence = make_integer_sequence; + + + template + using index_sequence_for = make_index_sequence; + + + + + struct in_place_t { + explicit in_place_t() = default; + }; + + inline constexpr in_place_t in_place{}; + + template struct in_place_type_t + { + explicit in_place_type_t() = default; + }; + + template + inline constexpr in_place_type_t<_Tp> in_place_type{}; + + template struct in_place_index_t + { + explicit in_place_index_t() = default; + }; + + template + inline constexpr in_place_index_t<_Idx> in_place_index{}; + + template + inline constexpr bool __is_in_place_type_v = false; + + template + inline constexpr bool __is_in_place_type_v> = true; + + template + using __is_in_place_type = bool_constant<__is_in_place_type_v<_Tp>>; + + template + inline constexpr bool __is_in_place_index_v = false; + + template + inline constexpr bool __is_in_place_index_v> = true; + + + + + template + struct _Nth_type + { using type = __type_pack_element<_Np, _Types...>; }; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + +} +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; + + + inline constexpr piecewise_construct_t piecewise_construct = + piecewise_construct_t(); + + + + + template + struct pair; + + template + class tuple; + + + + + + template + struct array; + + template + struct _Index_tuple; + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(pair<_Tp1, _Tp2>& __in) noexcept; + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(pair<_Tp1, _Tp2>&& __in) noexcept; + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(const pair<_Tp1, _Tp2>& __in) noexcept; + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(const pair<_Tp1, _Tp2>&& __in) noexcept; + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>& + get(tuple<_Elements...>& __t) noexcept; + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>& + get(const tuple<_Elements...>& __t) noexcept; + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>&& + get(tuple<_Elements...>&& __t) noexcept; + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& + get(const tuple<_Elements...>&& __t) noexcept; + + template + constexpr _Tp& + get(array<_Tp, _Nm>&) noexcept; + + template + constexpr _Tp&& + get(array<_Tp, _Nm>&&) noexcept; + + template + constexpr const _Tp& + get(const array<_Tp, _Nm>&) noexcept; + + template + constexpr const _Tp&& + get(const array<_Tp, _Nm>&&) noexcept; + + + + + + + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return __and_, + is_constructible<_T2, const _U2&>>::value; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return __and_, + is_convertible>::value; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return __and_, + is_constructible<_T2, _U2&&>>::value; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return __and_, + is_convertible<_U2&&, _T2>>::value; + } + }; + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return false; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return false; + } + }; +# 260 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template class __pair_base + { + + template friend struct pair; + __pair_base() = default; + ~__pair_base() = default; + __pair_base(const __pair_base&) = default; + __pair_base& operator=(const __pair_base&) = delete; + + }; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + struct pair + : public __pair_base<_T1, _T2> + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + template + + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + + void + swap(pair& __p) + noexcept(__and_<__is_nothrow_swappable<_T1>, + __is_nothrow_swappable<_T2>>::value) + { + using std::swap; + swap(first, __p.first); + swap(second, __p.second); + } +# 331 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + private: + template + + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + public: +# 719 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template , + __is_implicitly_default_constructible<_U2>> + ::value, bool>::type = true> + constexpr pair() + : first(), second() { } + + template , + is_default_constructible<_U2>, + __not_< + __and_<__is_implicitly_default_constructible<_U1>, + __is_implicitly_default_constructible<_U2>>>> + ::value, bool>::type = false> + explicit constexpr pair() + : first(), second() { } + + + + using _PCCP = _PCC; + + + + template() + && _PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + template() + && !_PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + + template + using _PCCFP = _PCC::value + || !is_same<_T2, _U2>::value, + _T1, _T2>; + + + template::template + _ConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) + { ; } + + template::template + _ConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) + { ; } +# 803 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + private: + + + + struct __zero_as_null_pointer_constant + { + __zero_as_null_pointer_constant(int __zero_as_null_pointer_constant::*) + { } + template::value>> + __zero_as_null_pointer_constant(_Tp) = delete; + }; + + public: + + + + + template>, + is_pointer<_T2>, + is_constructible<_T1, _U1>, + __not_>, + is_convertible<_U1, _T1>>::value, + bool> = true> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + constexpr + pair(_U1&& __x, __zero_as_null_pointer_constant, ...) + : first(std::forward<_U1>(__x)), second(nullptr) + { ; } + + template>, + is_pointer<_T2>, + is_constructible<_T1, _U1>, + __not_>, + __not_>>::value, + bool> = false> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + explicit constexpr + pair(_U1&& __x, __zero_as_null_pointer_constant, ...) + : first(std::forward<_U1>(__x)), second(nullptr) + { ; } + + template, + __not_>, + is_constructible<_T2, _U2>, + __not_>, + is_convertible<_U2, _T2>>::value, + bool> = true> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + constexpr + pair(__zero_as_null_pointer_constant, _U2&& __y, ...) + : first(nullptr), second(std::forward<_U2>(__y)) + { ; } + + template, + __not_>, + is_constructible<_T2, _U2>, + __not_>, + __not_>>::value, + bool> = false> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + explicit constexpr + pair(__zero_as_null_pointer_constant, _U2&& __y, ...) + : first(nullptr), second(std::forward<_U2>(__y)) + { ; } + + + + template() + && _PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) + { ; } + + template() + && !_PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) + { ; } + + + template::template + _MoveConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) + { ; } + + template::template + _MoveConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) + { ; } + + + + pair& + operator=(__conditional_t<__and_, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch&> __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(__conditional_t<__and_, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch&&> __p) + noexcept(__and_, + is_nothrow_move_assignable<_T2>>::value) + { + first = std::forward(__p.first); + second = std::forward(__p.second); + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, const _U2&>>::value, + pair&>::type + operator=(const pair<_U1, _U2>& __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, _U2&&>>::value, + pair&>::type + operator=(pair<_U1, _U2>&& __p) + { + first = std::forward<_U1>(__p.first); + second = std::forward<_U2>(__p.second); + return *this; + } +# 995 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + }; + + + + + template pair(_T1, _T2) -> pair<_T1, _T2>; +# 1031 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } +# 1043 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline constexpr bool + operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first < __y.first + || (!(__y.first < __x.first) && __x.second < __y.second); } + + + template + inline constexpr bool + operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __y < __x; } + + + template + inline constexpr bool + operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__y < __x); } + + + template + inline constexpr bool + operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x < __y); } +# 1080 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline + + + typename enable_if<__and_<__is_swappable<_T1>, + __is_swappable<_T2>>::value>::type + + + + swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) + noexcept(noexcept(__x.swap(__y))) + { __x.swap(__y); } +# 1103 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + typename enable_if, + __is_swappable<_T2>>::value>::type + swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; +# 1129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + constexpr pair::__type, + typename __decay_and_strip<_T2>::__type> + make_pair(_T1&& __x, _T2&& __y) + { + typedef typename __decay_and_strip<_T1>::__type __ds_type1; + typedef typename __decay_and_strip<_T2>::__type __ds_type2; + typedef pair<__ds_type1, __ds_type2> __pair_type; + return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); + } +# 1152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + struct __is_tuple_like_impl> : true_type + { }; + + + + template + struct tuple_size> + : public integral_constant { }; + + + template + struct tuple_element<0, pair<_Tp1, _Tp2>> + { typedef _Tp1 type; }; + + + template + struct tuple_element<1, pair<_Tp1, _Tp2>> + { typedef _Tp2 type; }; + + + + template + struct tuple_element<__i, tuple<_Types...>>; + + + template + inline constexpr size_t tuple_size_v> = 2; + + template + inline constexpr size_t tuple_size_v> = 2; + + template + inline constexpr bool __is_pair = false; + + template + inline constexpr bool __is_pair> = true; + + + + template + struct __pair_get; + + template<> + struct __pair_get<0> + { + template + static constexpr _Tp1& + __get(pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr _Tp1&& + __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp1>(__pair.first); } + + template + static constexpr const _Tp1& + __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr const _Tp1&& + __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.first); } + }; + + template<> + struct __pair_get<1> + { + template + static constexpr _Tp2& + __get(pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr _Tp2&& + __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp2>(__pair.second); } + + template + static constexpr const _Tp2& + __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr const _Tp2&& + __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.second); } + }; + + + + + + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__get(__in); } + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__move_get(std::move(__in)); } + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(const pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__const_get(__in); } + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(const pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__const_move_get(std::move(__in)); } + + + + template + constexpr _Tp& + get(pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr const _Tp& + get(const pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr _Tp&& + get(pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr const _Tp&& + get(const pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr _Tp& + get(pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr const _Tp& + get(const pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr _Tp&& + get(pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } + + template + constexpr const _Tp&& + get(const pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } +# 1332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + +} +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + struct input_iterator_tag { }; + + + struct output_iterator_tag { }; + + + struct forward_iterator_tag : public input_iterator_tag { }; + + + + struct bidirectional_iterator_tag : public forward_iterator_tag { }; + + + + struct random_access_iterator_tag : public bidirectional_iterator_tag { }; +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct [[__deprecated__]] iterator + { + + typedef _Category iterator_category; + + typedef _Tp value_type; + + typedef _Distance difference_type; + + typedef _Pointer pointer; + + typedef _Reference reference; + }; +# 149 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits; + + + + + template> + struct __iterator_traits { }; + + + + template + struct __iterator_traits<_Iterator, + __void_t> + { + typedef typename _Iterator::iterator_category iterator_category; + typedef typename _Iterator::value_type value_type; + typedef typename _Iterator::difference_type difference_type; + typedef typename _Iterator::pointer pointer; + typedef typename _Iterator::reference reference; + }; + + + template + struct iterator_traits + : public __iterator_traits<_Iterator> { }; +# 209 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits<_Tp*> + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + + template + struct iterator_traits + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef const _Tp* pointer; + typedef const _Tp& reference; + }; + + + + + + + template + __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_Iter>::iterator_category + __iterator_category(const _Iter&) + { return typename iterator_traits<_Iter>::iterator_category(); } + + + + + template + using __iter_category_t + = typename iterator_traits<_Iter>::iterator_category; + + template + using _RequireInputIter = + __enable_if_t, + input_iterator_tag>::value>; + + template> + struct __is_random_access_iter + : is_base_of + { + typedef is_base_of _Base; + enum { __value = _Base::value }; + }; + + + + + + + + +} +# 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 3 +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/assertions.h" 1 3 +# 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 2 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template struct _List_iterator; + template struct _List_const_iterator; + + + template + inline constexpr + typename iterator_traits<_InputIterator>::difference_type + __distance(_InputIterator __first, _InputIterator __last, + input_iterator_tag) + { + + + + typename iterator_traits<_InputIterator>::difference_type __n = 0; + while (__first != __last) + { + ++__first; + ++__n; + } + return __n; + } + + template + __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_RandomAccessIterator>::difference_type + __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, + random_access_iterator_tag) + { + + + + return __last - __first; + } + + + + template + ptrdiff_t + __distance(std::_List_iterator<_Tp>, + std::_List_iterator<_Tp>, + input_iterator_tag); + + template + ptrdiff_t + __distance(std::_List_const_iterator<_Tp>, + std::_List_const_iterator<_Tp>, + input_iterator_tag); + + + + + template + void + __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; +# 144 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + template + [[__nodiscard__]] __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_InputIterator>::difference_type + distance(_InputIterator __first, _InputIterator __last) + { + + return std::__distance(__first, __last, + std::__iterator_category(__first)); + } + + template + inline constexpr void + __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) + { + + + do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); + while (__n--) + ++__i; + } + + template + inline constexpr void + __advance(_BidirectionalIterator& __i, _Distance __n, + bidirectional_iterator_tag) + { + + + + if (__n > 0) + while (__n--) + ++__i; + else + while (__n++) + --__i; + } + + template + inline constexpr void + __advance(_RandomAccessIterator& __i, _Distance __n, + random_access_iterator_tag) + { + + + + if (__builtin_constant_p(__n) && __n == 1) + ++__i; + else if (__builtin_constant_p(__n) && __n == -1) + --__i; + else + __i += __n; + } + + + + template + void + __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; +# 217 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + template + __attribute__((__always_inline__)) + inline constexpr void + advance(_InputIterator& __i, _Distance __n) + { + + typename iterator_traits<_InputIterator>::difference_type __d = __n; + std::__advance(__i, __d, std::__iterator_category(__i)); + } + + + + template + [[__nodiscard__]] [[__gnu__::__always_inline__]] + inline constexpr _InputIterator + next(_InputIterator __x, typename + iterator_traits<_InputIterator>::difference_type __n = 1) + { + + + std::advance(__x, __n); + return __x; + } + + template + [[__nodiscard__]] [[__gnu__::__always_inline__]] + inline constexpr _BidirectionalIterator + prev(_BidirectionalIterator __x, typename + iterator_traits<_BidirectionalIterator>::difference_type __n = 1) + { + + + + std::advance(__x, -__n); + return __x; + } + + + + +} +# 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 1 3 +# 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + class __undefined; + + + + template + struct __get_first_arg + { using type = __undefined; }; + + template class _SomeTemplate, typename _Tp, + typename... _Types> + struct __get_first_arg<_SomeTemplate<_Tp, _Types...>> + { using type = _Tp; }; + + + + template + struct __replace_first_arg + { }; + + template class _SomeTemplate, typename _Up, + typename _Tp, typename... _Types> + struct __replace_first_arg<_SomeTemplate<_Tp, _Types...>, _Up> + { using type = _SomeTemplate<_Up, _Types...>; }; + + + template + struct __ptr_traits_elem : __get_first_arg<_Ptr> + { }; + + + + + + + + template + struct __ptr_traits_elem<_Ptr, __void_t> + { using type = typename _Ptr::element_type; }; + + + template + using __ptr_traits_elem_t = typename __ptr_traits_elem<_Ptr>::type; + + + + + template::value> + struct __ptr_traits_ptr_to + { + using pointer = _Ptr; + using element_type = _Elt; + + + + + + + + static pointer + pointer_to(element_type& __r) + + + + + + { return pointer::pointer_to(__r); } + }; + + + template + struct __ptr_traits_ptr_to<_Ptr, _Elt, true> + { }; + + + template + struct __ptr_traits_ptr_to<_Tp*, _Tp, false> + { + using pointer = _Tp*; + using element_type = _Tp; + + + + + + + static pointer + pointer_to(element_type& __r) noexcept + { return std::addressof(__r); } + }; + + template + struct __ptr_traits_impl : __ptr_traits_ptr_to<_Ptr, _Elt> + { + private: + template + using __diff_t = typename _Tp::difference_type; + + template + using __rebind = __type_identity>; + + public: + + using pointer = _Ptr; + + + using element_type = _Elt; + + + using difference_type = __detected_or_t; + + + template + using rebind = typename __detected_or_t<__replace_first_arg<_Ptr, _Up>, + __rebind, _Ptr, _Up>::type; + }; + + + + template + struct __ptr_traits_impl<_Ptr, __undefined> + { }; + + + + + + + + template + struct pointer_traits : __ptr_traits_impl<_Ptr, __ptr_traits_elem_t<_Ptr>> + { }; + + + + + + + + template + struct pointer_traits<_Tp*> : __ptr_traits_ptr_to<_Tp*, _Tp> + { + + typedef _Tp* pointer; + + typedef _Tp element_type; + + typedef ptrdiff_t difference_type; + + template using rebind = _Up*; + }; + + + template + using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; + + template + constexpr _Tp* + __to_address(_Tp* __ptr) noexcept + { + static_assert(!std::is_function<_Tp>::value, "not a function pointer"); + return __ptr; + } + + + template + constexpr typename std::pointer_traits<_Ptr>::element_type* + __to_address(const _Ptr& __ptr) + { return std::__to_address(__ptr.operator->()); } +# 257 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 + +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 2 3 +# 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 128 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class reverse_iterator + : public iterator::iterator_category, + typename iterator_traits<_Iterator>::value_type, + typename iterator_traits<_Iterator>::difference_type, + typename iterator_traits<_Iterator>::pointer, + typename iterator_traits<_Iterator>::reference> + { + template + friend class reverse_iterator; +# 147 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + protected: + _Iterator current; + + typedef iterator_traits<_Iterator> __traits_type; + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::pointer pointer; + + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; +# 178 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + constexpr + reverse_iterator() + noexcept(noexcept(_Iterator())) + : current() + { } + + + + + explicit constexpr + reverse_iterator(iterator_type __x) + noexcept(noexcept(_Iterator(__x))) + : current(__x) + { } + + + + + constexpr + reverse_iterator(const reverse_iterator& __x) + noexcept(noexcept(_Iterator(__x.current))) + : current(__x.current) + { } + + + reverse_iterator& operator=(const reverse_iterator&) = default; + + + + + + + template + + + + constexpr + reverse_iterator(const reverse_iterator<_Iter>& __x) + noexcept(noexcept(_Iterator(__x.current))) + : current(__x.current) + { } + + + template + + + + + constexpr + reverse_iterator& + operator=(const reverse_iterator<_Iter>& __x) + noexcept(noexcept(current = __x.current)) + { + current = __x.current; + return *this; + } + + + + + + [[__nodiscard__]] + constexpr iterator_type + base() const + noexcept(noexcept(_Iterator(current))) + { return current; } +# 255 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + [[__nodiscard__]] + constexpr reference + operator*() const + { + _Iterator __tmp = current; + return *--__tmp; + } + + + + + + + [[__nodiscard__]] + constexpr pointer + operator->() const + + + + + { + + + _Iterator __tmp = current; + --__tmp; + return _S_to_pointer(__tmp); + } + + + + + + + constexpr reverse_iterator& + operator++() + { + --current; + return *this; + } + + + + + + + constexpr reverse_iterator + operator++(int) + { + reverse_iterator __tmp = *this; + --current; + return __tmp; + } + + + + + + + constexpr reverse_iterator& + operator--() + { + ++current; + return *this; + } + + + + + + + constexpr reverse_iterator + operator--(int) + { + reverse_iterator __tmp = *this; + ++current; + return __tmp; + } + + + + + + + [[__nodiscard__]] + constexpr reverse_iterator + operator+(difference_type __n) const + { return reverse_iterator(current - __n); } + + + + + + + + constexpr reverse_iterator& + operator+=(difference_type __n) + { + current -= __n; + return *this; + } + + + + + + + [[__nodiscard__]] + constexpr reverse_iterator + operator-(difference_type __n) const + { return reverse_iterator(current + __n); } + + + + + + + + constexpr reverse_iterator& + operator-=(difference_type __n) + { + current += __n; + return *this; + } + + + + + + + [[__nodiscard__]] + constexpr reference + operator[](difference_type __n) const + { return *(*this + __n); } +# 415 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + private: + template + static constexpr _Tp* + _S_to_pointer(_Tp* __p) + { return __p; } + + template + static constexpr pointer + _S_to_pointer(_Tp __t) + { return __t.operator->(); } + }; +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator==(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() < __x.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() == __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() > __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() != __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() < __y.base(); } + + template + inline constexpr bool + operator<=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() >= __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() <= __y.base(); } +# 615 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr auto + operator-(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + -> decltype(__y.base() - __x.base()) + { return __y.base() - __x.base(); } + + + template + [[__nodiscard__]] + inline constexpr reverse_iterator<_Iterator> + operator+(typename reverse_iterator<_Iterator>::difference_type __n, + const reverse_iterator<_Iterator>& __x) + { return reverse_iterator<_Iterator>(__x.base() - __n); } + + + + template + inline constexpr reverse_iterator<_Iterator> + __make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } + + + + + + template + [[__nodiscard__]] + inline constexpr reverse_iterator<_Iterator> + make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } +# 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + + auto + __niter_base(reverse_iterator<_Iterator> __it) + -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) + { return __make_reverse_iterator(__niter_base(__it.base())); } + + template + struct __is_move_iterator > + : __is_move_iterator<_Iterator> + { }; + + template + + auto + __miter_base(reverse_iterator<_Iterator> __it) + -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) + { return __make_reverse_iterator(__miter_base(__it.base())); } +# 688 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class back_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + + + + explicit + back_insert_iterator(_Container& __x) + : container(std::__addressof(__x)) { } +# 726 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + back_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_back(__value); + return *this; + } + + + back_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_back(std::move(__value)); + return *this; + } + + + + [[__nodiscard__]] + back_insert_iterator& + operator*() + { return *this; } + + + + back_insert_iterator& + operator++() + { return *this; } + + + + back_insert_iterator + operator++(int) + { return *this; } + }; +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline back_insert_iterator<_Container> + back_inserter(_Container& __x) + { return back_insert_iterator<_Container>(__x); } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class front_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + + + + explicit + front_insert_iterator(_Container& __x) + : container(std::__addressof(__x)) { } +# 827 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + front_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_front(__value); + return *this; + } + + + front_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_front(std::move(__value)); + return *this; + } + + + + [[__nodiscard__]] + front_insert_iterator& + operator*() + { return *this; } + + + + front_insert_iterator& + operator++() + { return *this; } + + + + front_insert_iterator + operator++(int) + { return *this; } + }; +# 874 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline front_insert_iterator<_Container> + front_inserter(_Container& __x) + { return front_insert_iterator<_Container>(__x); } +# 894 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class insert_iterator + : public iterator + { + + + + typedef typename _Container::iterator _Iter; + + protected: + _Container* container; + _Iter iter; + + public: + + typedef _Container container_type; +# 919 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + insert_iterator(_Container& __x, _Iter __i) + : container(std::__addressof(__x)), iter(__i) {} +# 955 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + insert_iterator& + operator=(const typename _Container::value_type& __value) + { + iter = container->insert(iter, __value); + ++iter; + return *this; + } + + + insert_iterator& + operator=(typename _Container::value_type&& __value) + { + iter = container->insert(iter, std::move(__value)); + ++iter; + return *this; + } + + + + [[__nodiscard__]] + insert_iterator& + operator*() + { return *this; } + + + + insert_iterator& + operator++() + { return *this; } + + + + insert_iterator& + operator++(int) + { return *this; } + }; + +#pragma GCC diagnostic pop +# 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline insert_iterator<_Container> + inserter(_Container& __x, typename _Container::iterator __i) + { return insert_iterator<_Container>(__x, __i); } + + + + + +} + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class __normal_iterator + { + protected: + _Iterator _M_current; + + typedef std::iterator_traits<_Iterator> __traits_type; + + + template + using __convertible_from + = std::__enable_if_t::value>; + + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; + typedef typename __traits_type::pointer pointer; + + + + + + constexpr __normal_iterator() noexcept + : _M_current(_Iterator()) { } + + explicit + __normal_iterator(const _Iterator& __i) noexcept + : _M_current(__i) { } + + + + template> + + __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) + noexcept +# 1085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + : _M_current(__i.base()) { } + + + + reference + operator*() const noexcept + { return *_M_current; } + + + pointer + operator->() const noexcept + { return _M_current; } + + + __normal_iterator& + operator++() noexcept + { + ++_M_current; + return *this; + } + + + __normal_iterator + operator++(int) noexcept + { return __normal_iterator(_M_current++); } + + + + __normal_iterator& + operator--() noexcept + { + --_M_current; + return *this; + } + + + __normal_iterator + operator--(int) noexcept + { return __normal_iterator(_M_current--); } + + + + reference + operator[](difference_type __n) const noexcept + { return _M_current[__n]; } + + + __normal_iterator& + operator+=(difference_type __n) noexcept + { _M_current += __n; return *this; } + + + __normal_iterator + operator+(difference_type __n) const noexcept + { return __normal_iterator(_M_current + __n); } + + + __normal_iterator& + operator-=(difference_type __n) noexcept + { _M_current -= __n; return *this; } + + + __normal_iterator + operator-(difference_type __n) const noexcept + { return __normal_iterator(_M_current - __n); } + + + const _Iterator& + base() const noexcept + { return _M_current; } + }; +# 1205 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline bool + operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator==(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + + template + [[__nodiscard__]] + inline bool + operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + + + + + + template + + + [[__nodiscard__]] + inline auto + operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept + -> decltype(__lhs.base() - __rhs.base()) + + + + + + { return __lhs.base() - __rhs.base(); } + + template + [[__nodiscard__]] + inline typename __normal_iterator<_Iterator, _Container>::difference_type + operator-(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() - __rhs.base(); } + + template + [[__nodiscard__]] + inline __normal_iterator<_Iterator, _Container> + operator+(typename __normal_iterator<_Iterator, _Container>::difference_type + __n, const __normal_iterator<_Iterator, _Container>& __i) + noexcept + { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } + + +} + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + + _Iterator + __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) + noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) + { return __it.base(); } + + + + + + + template + constexpr auto + __to_address(const __gnu_cxx::__normal_iterator<_Iterator, + _Container>& __it) noexcept + -> decltype(std::__to_address(__it.base())) + { return std::__to_address(__it.base()); } +# 1412 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + namespace __detail + { +# 1428 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + } +# 1439 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class move_iterator + + + + { + _Iterator _M_current; + + using __traits_type = iterator_traits<_Iterator>; + + using __base_ref = typename __traits_type::reference; + + + template + friend class move_iterator; +# 1478 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + public: + using iterator_type = _Iterator; +# 1490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + + typedef _Iterator pointer; + + + using reference + = __conditional_t::value, + typename remove_reference<__base_ref>::type&&, + __base_ref>; + + + constexpr + move_iterator() + : _M_current() { } + + explicit constexpr + move_iterator(iterator_type __i) + : _M_current(std::move(__i)) { } + + template + + + + constexpr + move_iterator(const move_iterator<_Iter>& __i) + : _M_current(__i._M_current) { } + + template + + + + + constexpr + move_iterator& operator=(const move_iterator<_Iter>& __i) + { + _M_current = __i._M_current; + return *this; + } + + + [[__nodiscard__]] + constexpr iterator_type + base() const + { return _M_current; } +# 1548 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + [[__nodiscard__]] + constexpr reference + operator*() const + + + + { return static_cast(*_M_current); } + + + [[__nodiscard__]] + constexpr pointer + operator->() const + { return _M_current; } + + constexpr move_iterator& + operator++() + { + ++_M_current; + return *this; + } + + constexpr move_iterator + operator++(int) + { + move_iterator __tmp = *this; + ++_M_current; + return __tmp; + } + + + + + + + + constexpr move_iterator& + operator--() + { + --_M_current; + return *this; + } + + constexpr move_iterator + operator--(int) + { + move_iterator __tmp = *this; + --_M_current; + return __tmp; + } + + [[__nodiscard__]] + constexpr move_iterator + operator+(difference_type __n) const + { return move_iterator(_M_current + __n); } + + constexpr move_iterator& + operator+=(difference_type __n) + { + _M_current += __n; + return *this; + } + + [[__nodiscard__]] + constexpr move_iterator + operator-(difference_type __n) const + { return move_iterator(_M_current - __n); } + + constexpr move_iterator& + operator-=(difference_type __n) + { + _M_current -= __n; + return *this; + } + + [[__nodiscard__]] + constexpr reference + operator[](difference_type __n) const + + + + { return std::move(_M_current[__n]); } +# 1662 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + }; + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() == __y.base(); } +# 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__x == __y); } + + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() < __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__x < __y); } + + + + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + + { return __x.base() == __y.base(); } +# 1750 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() < __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + template + [[__nodiscard__]] + inline constexpr auto + operator-(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + -> decltype(__x.base() - __y.base()) + { return __x.base() - __y.base(); } + + template + [[__nodiscard__]] + inline constexpr move_iterator<_Iterator> + operator+(typename move_iterator<_Iterator>::difference_type __n, + const move_iterator<_Iterator>& __x) + + + + { return __x + __n; } + + template + [[__nodiscard__]] + inline constexpr move_iterator<_Iterator> + make_move_iterator(_Iterator __i) + { return move_iterator<_Iterator>(std::move(__i)); } + + template::value_type>::value, + _Iterator, move_iterator<_Iterator>>> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Iterator __i) + { return _ReturnType(__i); } + + + + template::value, + const _Tp*, move_iterator<_Tp*>>> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Tp* __i) + { return _ReturnType(__i); } +# 2964 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + + auto + __niter_base(move_iterator<_Iterator> __it) + -> decltype(make_move_iterator(__niter_base(__it.base()))) + { return make_move_iterator(__niter_base(__it.base())); } + + template + struct __is_move_iterator > + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template + + auto + __miter_base(move_iterator<_Iterator> __it) + -> decltype(__miter_base(__it.base())) + { return __miter_base(__it.base()); } +# 2996 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + using __iter_key_t = remove_const_t< + + + + typename iterator_traits<_InputIterator>::value_type::first_type>; + + + template + using __iter_val_t + + + + = typename iterator_traits<_InputIterator>::value_type::second_type; + + + template + struct pair; + + template + using __iter_to_alloc_t + = pair, __iter_val_t<_InputIterator>>; + + + +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 1 3 +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 3 +namespace std +{ + namespace __debug { } +} + + + + +namespace __gnu_debug +{ + using namespace std::__debug; + + template + struct _Safe_iterator; +} +# 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 1 3 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 3 +namespace __gnu_cxx +{ +namespace __ops +{ + struct _Iter_less_iter + { + template + constexpr + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 < *__it2; } + }; + + constexpr + inline _Iter_less_iter + __iter_less_iter() + { return _Iter_less_iter(); } + + struct _Iter_less_val + { + + constexpr _Iter_less_val() = default; + + + + + + explicit + _Iter_less_val(_Iter_less_iter) { } + + template + + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it < __val; } + }; + + + inline _Iter_less_val + __iter_less_val() + { return _Iter_less_val(); } + + + inline _Iter_less_val + __iter_comp_val(_Iter_less_iter) + { return _Iter_less_val(); } + + struct _Val_less_iter + { + + constexpr _Val_less_iter() = default; + + + + + + explicit + _Val_less_iter(_Iter_less_iter) { } + + template + + bool + operator()(_Value& __val, _Iterator __it) const + { return __val < *__it; } + }; + + + inline _Val_less_iter + __val_less_iter() + { return _Val_less_iter(); } + + + inline _Val_less_iter + __val_comp_iter(_Iter_less_iter) + { return _Val_less_iter(); } + + struct _Iter_equal_to_iter + { + template + + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 == *__it2; } + }; + + + inline _Iter_equal_to_iter + __iter_equal_to_iter() + { return _Iter_equal_to_iter(); } + + struct _Iter_equal_to_val + { + template + + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it == __val; } + }; + + + inline _Iter_equal_to_val + __iter_equal_to_val() + { return _Iter_equal_to_val(); } + + + inline _Iter_equal_to_val + __iter_comp_val(_Iter_equal_to_iter) + { return _Iter_equal_to_val(); } + + template + struct _Iter_comp_iter + { + _Compare _M_comp; + + explicit constexpr + _Iter_comp_iter(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + template + constexpr + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) + { return bool(_M_comp(*__it1, *__it2)); } + }; + + template + constexpr + inline _Iter_comp_iter<_Compare> + __iter_comp_iter(_Compare __comp) + { return _Iter_comp_iter<_Compare>(std::move(__comp)); } + + template + struct _Iter_comp_val + { + _Compare _M_comp; + + + explicit + _Iter_comp_val(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + + explicit + _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) + : _M_comp(__comp._M_comp) + { } + + + + explicit + _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) + : _M_comp(std::move(__comp._M_comp)) + { } + + + template + + bool + operator()(_Iterator __it, _Value& __val) + { return bool(_M_comp(*__it, __val)); } + }; + + template + + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Compare __comp) + { return _Iter_comp_val<_Compare>(std::move(__comp)); } + + template + + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Iter_comp_iter<_Compare> __comp) + { return _Iter_comp_val<_Compare>(std::move(__comp)); } + + template + struct _Val_comp_iter + { + _Compare _M_comp; + + + explicit + _Val_comp_iter(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + + explicit + _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) + : _M_comp(__comp._M_comp) + { } + + + + explicit + _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) + : _M_comp(std::move(__comp._M_comp)) + { } + + + template + + bool + operator()(_Value& __val, _Iterator __it) + { return bool(_M_comp(__val, *__it)); } + }; + + template + + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Compare __comp) + { return _Val_comp_iter<_Compare>(std::move(__comp)); } + + template + + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Iter_comp_iter<_Compare> __comp) + { return _Val_comp_iter<_Compare>(std::move(__comp)); } + + template + struct _Iter_equals_val + { + _Value& _M_value; + + + explicit + _Iter_equals_val(_Value& __value) + : _M_value(__value) + { } + + template + + bool + operator()(_Iterator __it) + { return *__it == _M_value; } + }; + + template + + inline _Iter_equals_val<_Value> + __iter_equals_val(_Value& __val) + { return _Iter_equals_val<_Value>(__val); } + + template + struct _Iter_equals_iter + { + _Iterator1 _M_it1; + + + explicit + _Iter_equals_iter(_Iterator1 __it1) + : _M_it1(__it1) + { } + + template + + bool + operator()(_Iterator2 __it2) + { return *__it2 == *_M_it1; } + }; + + template + + inline _Iter_equals_iter<_Iterator> + __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) + { return _Iter_equals_iter<_Iterator>(__it); } + + template + struct _Iter_pred + { + _Predicate _M_pred; + + + explicit + _Iter_pred(_Predicate __pred) + : _M_pred(std::move(__pred)) + { } + + template + + bool + operator()(_Iterator __it) + { return bool(_M_pred(*__it)); } + }; + + template + + inline _Iter_pred<_Predicate> + __pred_iter(_Predicate __pred) + { return _Iter_pred<_Predicate>(std::move(__pred)); } + + template + struct _Iter_comp_to_val + { + _Compare _M_comp; + _Value& _M_value; + + + _Iter_comp_to_val(_Compare __comp, _Value& __value) + : _M_comp(std::move(__comp)), _M_value(__value) + { } + + template + + bool + operator()(_Iterator __it) + { return bool(_M_comp(*__it, _M_value)); } + }; + + template + _Iter_comp_to_val<_Compare, _Value> + + __iter_comp_val(_Compare __comp, _Value &__val) + { + return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); + } + + template + struct _Iter_comp_to_iter + { + _Compare _M_comp; + _Iterator1 _M_it1; + + + _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) + : _M_comp(std::move(__comp)), _M_it1(__it1) + { } + + template + + bool + operator()(_Iterator2 __it2) + { return bool(_M_comp(*__it2, *_M_it1)); } + }; + + template + + inline _Iter_comp_to_iter<_Compare, _Iterator> + __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) + { + return _Iter_comp_to_iter<_Compare, _Iterator>( + std::move(__comp._M_comp), __it); + } + + template + struct _Iter_negate + { + _Predicate _M_pred; + + + explicit + _Iter_negate(_Predicate __pred) + : _M_pred(std::move(__pred)) + { } + + template + + bool + operator()(_Iterator __it) + { return !bool(_M_pred(*__it)); } + }; + + template + + inline _Iter_negate<_Predicate> + __negate(_Iter_pred<_Predicate> __pred) + { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } + +} +} +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 2 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 2 3 +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + template + constexpr _Tp + __rotl(_Tp __x, int __s) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if constexpr ((_Nd & (_Nd - 1)) == 0) + { + + + constexpr unsigned __uNd = _Nd; + const unsigned __r = __s; + return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); + } + const int __r = __s % _Nd; + if (__r == 0) + return __x; + else if (__r > 0) + return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); + else + return (__x >> -__r) | (__x << ((_Nd + __r) % _Nd)); + } + + template + constexpr _Tp + __rotr(_Tp __x, int __s) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if constexpr ((_Nd & (_Nd - 1)) == 0) + { + + + constexpr unsigned __uNd = _Nd; + const unsigned __r = __s; + return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); + } + const int __r = __s % _Nd; + if (__r == 0) + return __x; + else if (__r > 0) + return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); + else + return (__x << -__r) | (__x >> ((_Nd + __r) % _Nd)); + } + + template + constexpr int + __countl_zero(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + if (__x == 0) + return _Nd; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + { + constexpr int __diff = _Nd_u - _Nd; + return __builtin_clz(__x) - __diff; + } + else if constexpr (_Nd <= _Nd_ul) + { + constexpr int __diff = _Nd_ul - _Nd; + return __builtin_clzl(__x) - __diff; + } + else if constexpr (_Nd <= _Nd_ull) + { + constexpr int __diff = _Nd_ull - _Nd; + return __builtin_clzll(__x) - __diff; + } + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + unsigned long long __high = __x >> _Nd_ull; + if (__high != 0) + { + constexpr int __diff = (2 * _Nd_ull) - _Nd; + return __builtin_clzll(__high) - __diff; + } + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + return (_Nd - _Nd_ull) + __builtin_clzll(__low); + } + } + + template + constexpr int + __countl_one(_Tp __x) noexcept + { + return std::__countl_zero<_Tp>((_Tp)~__x); + } + + template + constexpr int + __countr_zero(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + if (__x == 0) + return _Nd; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + return __builtin_ctz(__x); + else if constexpr (_Nd <= _Nd_ul) + return __builtin_ctzl(__x); + else if constexpr (_Nd <= _Nd_ull) + return __builtin_ctzll(__x); + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + if (__low != 0) + return __builtin_ctzll(__low); + unsigned long long __high = __x >> _Nd_ull; + return __builtin_ctzll(__high) + _Nd_ull; + } + } + + template + constexpr int + __countr_one(_Tp __x) noexcept + { + return std::__countr_zero((_Tp)~__x); + } + + template + constexpr int + __popcount(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + return __builtin_popcount(__x); + else if constexpr (_Nd <= _Nd_ul) + return __builtin_popcountl(__x); + else if constexpr (_Nd <= _Nd_ull) + return __builtin_popcountll(__x); + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + unsigned long long __high = __x >> _Nd_ull; + return __builtin_popcountll(__low) + __builtin_popcountll(__high); + } + } + + template + constexpr bool + __has_single_bit(_Tp __x) noexcept + { return std::__popcount(__x) == 1; } + + template + constexpr _Tp + __bit_ceil(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + if (__x == 0 || __x == 1) + return 1; + auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1u)); + + + + + if (!std::__is_constant_evaluated()) + { + do { if (std::__is_constant_evaluated() && !bool(__shift_exponent != __int_traits<_Tp>::__digits)) std::__glibcxx_assert_fail(); } while (false); + } + + using __promoted_type = decltype(__x << 1); + if constexpr (!is_same<__promoted_type, _Tp>::value) + { + + + + + + const int __extra_exp = sizeof(__promoted_type) / sizeof(_Tp) / 2; + __shift_exponent |= (__shift_exponent & _Nd) << __extra_exp; + } + return (_Tp)1u << __shift_exponent; + } + + template + constexpr _Tp + __bit_floor(_Tp __x) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if (__x == 0) + return 0; + return (_Tp)1u << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); + } + + template + constexpr int + __bit_width(_Tp __x) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + return _Nd - std::__countl_zero(__x); + } +# 482 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + +} +# 77 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + template + constexpr + inline int + __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) + { + + static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); +# 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); + } +# 152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline void + iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) + { + + + + +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + swap(*__a, *__b); + + } +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + _ForwardIterator2 + swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + ; + + for (; __first1 != __last1; ++__first1, (void)++__first2) + std::iter_swap(__first1, __first2); + return __first2; + } +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b) + { + + + + if (__b < __a) + return __b; + return __a; + } +# 254 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b) + { + + + + if (__a < __b) + return __b; + return __a; + } +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__b, __a)) + return __b; + return __a; + } +# 300 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__a, __b)) + return __b; + return __a; + } + + + + template + + inline _Iterator + __niter_base(_Iterator __it) + noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) + { return __it; } +# 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + decltype(std::__niter_base(std::declval<_Ite>())) + __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, + std::random_access_iterator_tag>&) + noexcept(std::is_nothrow_copy_constructible<_Ite>::value); + + + + + + template + + inline _From + __niter_wrap(_From __from, _To __res) + { return __from + (std::__niter_base(__res) - std::__niter_base(__from)); } + + + template + + inline _Iterator + __niter_wrap(const _Iterator&, _Iterator __res) + { return __res; } + + + + + + + + template + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, (void)++__first) + *__result = *__first; + return __result; + } + }; + + + template + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, (void)++__first) + *__result = std::move(*__first); + return __result; + } + }; + + + template<> + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = *__first; + ++__first; + ++__result; + } + return __result; + } + + template + static void + __assign_one(_Tp* __to, _Up* __from) + { *__to = *__from; } + }; + + + template<> + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = std::move(*__first); + ++__first; + ++__result; + } + return __result; + } + + template + static void + __assign_one(_Tp* __to, _Up* __from) + { *__to = std::move(*__from); } + }; + + + template + struct __copy_move<_IsMove, true, random_access_iterator_tag> + { + template + + static _Up* + __copy_m(_Tp* __first, _Tp* __last, _Up* __result) + { + const ptrdiff_t _Num = __last - __first; + if (__builtin_expect(_Num > 1, true)) + __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); + else if (_Num == 1) + std::__copy_move<_IsMove, false, random_access_iterator_tag>:: + __assign_one(__result, __first); + return __result + _Num; + } + }; + + + + template + struct _Deque_iterator; + + struct _Bit_iterator; + + + + + + + template + struct char_traits; + + template + class istreambuf_iterator; + + template + class ostreambuf_iterator; + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(_CharT*, _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(const _CharT*, const _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + _CharT*>::__type + __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, + std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type + __copy_move_a2( + istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, + std::_Deque_iterator<_CharT, _CharT&, _CharT*>); + + + template + + inline _OI + __copy_move_a2(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::iterator_category _Category; + + + + + + return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value, + _Category>::__copy_m(__first, __last, __result); + } + + template + _OI + __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _OI); + + template + std::_Deque_iterator<_OTp, _OTp&, _OTp*> + __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_OTp, _OTp&, _OTp*>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, + std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type + __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); + + template + + inline _OI + __copy_move_a1(_II __first, _II __last, _OI __result) + { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } + + template + + inline _OI + __copy_move_a(_II __first, _II __last, _OI __result) + { + return std::__niter_wrap(__result, + std::__copy_move_a1<_IsMove>(std::__niter_base(__first), + std::__niter_base(__last), + std::__niter_base(__result))); + } + + template + + _OI + __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + _OI); + + template + + __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __copy_move_a(_II, _II, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); + + template + + ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> + __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); + + template + + _OutputIterator + __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, + bool) + { + if (__n > 0) + { + while (true) + { + *__result = *__first; + ++__result; + if (--__n > 0) + ++__first; + else + break; + } + } + return __result; + } + + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, _CharT*>::__type + __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, + _Size, _CharT*, bool); + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, + std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type + __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, _Size, + std::_Deque_iterator<_CharT, _CharT&, _CharT*>, + bool); +# 639 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + copy(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a<__is_move_iterator<_II>::__value> + (std::__miter_base(__first), std::__miter_base(__last), __result); + } +# 672 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + move(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a(std::__miter_base(__first), + std::__miter_base(__last), __result); + } + + + + + + + template + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = *--__last; + return __result; + } + }; + + + template + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type + __n = __last - __first; + for (; __n > 0; --__n) + *--__result = *--__last; + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type + __n = __last - __first; + for (; __n > 0; --__n) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template + struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> + { + template + + static _Up* + __copy_move_b(_Tp* __first, _Tp* __last, _Up* __result) + { + const ptrdiff_t _Num = __last - __first; + if (__builtin_expect(_Num > 1, true)) + __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); + else if (_Num == 1) + std::__copy_move<_IsMove, false, random_access_iterator_tag>:: + __assign_one(__result - 1, __first); + return __result - _Num; + } + }; + + template + + inline _BI2 + __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) + { + typedef typename iterator_traits<_BI1>::iterator_category _Category; + + + + + + return std::__copy_move_backward<_IsMove, + __memcpyable<_BI2, _BI1>::__value, + _Category>::__copy_move_b(__first, + __last, + __result); + } + + template + + inline _BI2 + __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) + { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } + + template + _OI + __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _OI); + + template + std::_Deque_iterator<_OTp, _OTp&, _OTp*> + __copy_move_backward_a1( + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_OTp, _OTp&, _OTp*>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, + std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type + __copy_move_backward_a1(_II, _II, + std::_Deque_iterator<_Tp, _Tp&, _Tp*>); + + template + + inline _OI + __copy_move_backward_a(_II __first, _II __last, _OI __result) + { + return std::__niter_wrap(__result, + std::__copy_move_backward_a1<_IsMove> + (std::__niter_base(__first), std::__niter_base(__last), + std::__niter_base(__result))); + } + + template + + _OI + __copy_move_backward_a( + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + _OI); + + template + + __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __copy_move_backward_a(_II, _II, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); + + template + + ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> + __copy_move_backward_a( + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); +# 875 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _BI2 + copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + ; + + return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> + (std::__miter_base(__first), std::__miter_base(__last), __result); + } +# 910 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _BI2 + move_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + ; + + return std::__copy_move_backward_a(std::__miter_base(__first), + std::__miter_base(__last), + __result); + } + + + + + + + template + + inline typename + __gnu_cxx::__enable_if::__value, void>::__type + __fill_a1(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + for (; __first != __last; ++__first) + *__first = __value; + } + + template + + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type + __fill_a1(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __first != __last; ++__first) + *__first = __tmp; + } + + + template + + inline typename + __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type + __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c) + { + const _Tp __tmp = __c; +# 971 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + if (const size_t __len = __last - __first) + __builtin_memset(__first, static_cast(__tmp), __len); + } + + template + + inline void + __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, + ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, + const _Tp& __value) + { std::__fill_a1(__first.base(), __last.base(), __value); } + + template + void + __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, + const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, + const _VTp&); + + + void + __fill_a1(std::_Bit_iterator, std::_Bit_iterator, + const bool&); + + template + + inline void + __fill_a(_FIte __first, _FIte __last, const _Tp& __value) + { std::__fill_a1(__first, __last, __value); } + + template + + void + __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const _Tp&); +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline void + fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) + { + + + + ; + + std::__fill_a(__first, __last, __value); + } + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" + + inline constexpr int + __size_to_integer(int __n) { return __n; } + inline constexpr unsigned + __size_to_integer(unsigned __n) { return __n; } + inline constexpr long + __size_to_integer(long __n) { return __n; } + inline constexpr unsigned long + __size_to_integer(unsigned long __n) { return __n; } + inline constexpr long long + __size_to_integer(long long __n) { return __n; } + inline constexpr unsigned long long + __size_to_integer(unsigned long long __n) { return __n; } + + + __extension__ inline constexpr __int128 + __size_to_integer(__int128 __n) { return __n; } + __extension__ inline constexpr unsigned __int128 + __size_to_integer(unsigned __int128 __n) { return __n; } +# 1073 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + inline constexpr long long + __size_to_integer(float __n) { return (long long)__n; } + inline constexpr long long + __size_to_integer(double __n) { return (long long)__n; } + inline constexpr long long + __size_to_integer(long double __n) { return (long long)__n; } + + __extension__ inline constexpr long long + __size_to_integer(__float128 __n) { return (long long)__n; } + +#pragma GCC diagnostic pop + + template + + inline typename + __gnu_cxx::__enable_if::__value, _OutputIterator>::__type + __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) + { + for (; __n > 0; --__n, (void) ++__first) + *__first = __value; + return __first; + } + + template + + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type + __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __n > 0; --__n, (void) ++__first) + *__first = __tmp; + return __first; + } + + template + + ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, + _Size __n, const _Tp& __value, + std::input_iterator_tag); + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::output_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + return __fill_n_a1(__first, __n, __value); + } + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::input_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + return __fill_n_a1(__first, __n, __value); + } + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::random_access_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + if (__n <= 0) + return __first; + + ; + + std::__fill_a(__first, __first + __n, __value); + return __first + __n; + } +# 1175 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + fill_n(_OI __first, _Size __n, const _Tp& __value) + { + + + + return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, + std::__iterator_category(__first)); + } + + template + struct __equal + { + template + + static bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + for (; __first1 != __last1; ++__first1, (void) ++__first2) + if (!(*__first1 == *__first2)) + return false; + return true; + } + }; + + template<> + struct __equal + { + template + + static bool + equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) + { + if (const size_t __len = (__last1 - __first1)) + return !std::__memcmp(__first1, __first2, __len); + return true; + } + }; + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, bool>::__type + __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _II); + + template + bool + __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, bool>::__type + __equal_aux1(_II, _II, + std::_Deque_iterator<_Tp, _Ref, _Ptr>); + + template + + inline bool + __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + const bool __simple = ((__is_integer<_ValueType1>::__value + || __is_pointer<_ValueType1>::__value) + && __memcmpable<_II1, _II2>::__value); + return std::__equal<__simple>::equal(__first1, __last1, __first2); + } + + template + + inline bool + __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) + { + return std::__equal_aux1(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2)); + } + + template + + bool + __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + _II2); + + template + + bool + __equal_aux(_II1, _II1, + const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); + + template + + bool + __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); + + template + struct __lc_rai + { + template + + static _II1 + __newlast1(_II1, _II1 __last1, _II2, _II2) + { return __last1; } + + template + + static bool + __cnd2(_II __first, _II __last) + { return __first != __last; } + }; + + template<> + struct __lc_rai + { + template + + static _RAI1 + __newlast1(_RAI1 __first1, _RAI1 __last1, + _RAI2 __first2, _RAI2 __last2) + { + const typename iterator_traits<_RAI1>::difference_type + __diff1 = __last1 - __first1; + const typename iterator_traits<_RAI2>::difference_type + __diff2 = __last2 - __first2; + return __diff2 < __diff1 ? __first1 + __diff2 : __last1; + } + + template + static bool + __cnd2(_RAI, _RAI) + { return true; } + }; + + template + + bool + __lexicographical_compare_impl(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, + _Compare __comp) + { + typedef typename iterator_traits<_II1>::iterator_category _Category1; + typedef typename iterator_traits<_II2>::iterator_category _Category2; + typedef std::__lc_rai<_Category1, _Category2> __rai_type; + + __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); + for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); + ++__first1, (void)++__first2) + { + if (__comp(__first1, __first2)) + return true; + if (__comp(__first2, __first1)) + return false; + } + return __first1 == __last1 && __first2 != __last2; + } + + template + struct __lexicographical_compare + { + template + + static bool + __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + using __gnu_cxx::__ops::__iter_less_iter; + return std::__lexicographical_compare_impl(__first1, __last1, + __first2, __last2, + __iter_less_iter()); + } + + template + + static int + __3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + while (__first1 != __last1) + { + if (__first2 == __last2) + return +1; + if (*__first1 < *__first2) + return -1; + if (*__first2 < *__first1) + return +1; + ++__first1; + ++__first2; + } + return int(__first2 == __last2) - 1; + } + }; + + template<> + struct __lexicographical_compare + { + template + + static bool + __lc(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { return __3way(__first1, __last1, __first2, __last2) < 0; } + + template + + static ptrdiff_t + __3way(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { + const size_t __len1 = __last1 - __first1; + const size_t __len2 = __last2 - __first2; + if (const size_t __len = std::min(__len1, __len2)) + if (int __result = std::__memcmp(__first1, __first2, __len)) + return __result; + return ptrdiff_t(__len1 - __len2); + } + }; + + template + + inline bool + __lexicographical_compare_aux1(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + typedef typename iterator_traits<_II2>::value_type _ValueType2; + const bool __simple = + (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value + && __is_pointer<_II1>::__value + && __is_pointer<_II2>::__value + + + + + + + + ); + + return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, + __first2, __last2); + } + + template + bool + __lexicographical_compare_aux1( + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + _Tp2*, _Tp2*); + + template + bool + __lexicographical_compare_aux1(_Tp1*, _Tp1*, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + bool + __lexicographical_compare_aux1( + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + + inline bool + __lexicographical_compare_aux(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + return std::__lexicographical_compare_aux1(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2), + std::__niter_base(__last2)); + } + + template + + bool + __lexicographical_compare_aux( + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + _II2, _II2); + + template + + bool + __lexicographical_compare_aux( + _II1, _II1, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); + + template + + bool + __lexicographical_compare_aux( + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); + + template + + _ForwardIterator + __lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _DistanceType __len = std::distance(__first, __last); + + while (__len > 0) + { + _DistanceType __half = __len >> 1; + _ForwardIterator __middle = __first; + std::advance(__middle, __half); + if (__comp(__middle, __val)) + { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else + __len = __half; + } + return __first; + } +# 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline _ForwardIterator + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + + + + + ; + + return std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val()); + } + + + + template + inline constexpr _Tp + __lg(_Tp __n) + { + + return std::__bit_width(make_unsigned_t<_Tp>(__n)) - 1; +# 1563 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + } + + +# 1579 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + + + + + + + ; + + return std::__equal_aux(__first1, __last1, __first2); + } +# 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + for (; __first1 != __last1; ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return true; + } + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++17-extensions" + + + template + + inline bool + __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + using _RATag = random_access_iterator_tag; + using _Cat1 = typename iterator_traits<_II1>::iterator_category; + using _Cat2 = typename iterator_traits<_II2>::iterator_category; + using _RAIters = __and_, is_same<_Cat2, _RATag>>; + if constexpr (_RAIters::value) + { + if ((__last1 - __first1) != (__last2 - __first2)) + return false; + return std::equal(__first1, __last1, __first2); + } + else + { + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!(*__first1 == *__first2)) + return false; + return __first1 == __last1 && __first2 == __last2; + } + } + + + template + + inline bool + __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, + _BinaryPredicate __binary_pred) + { + using _RATag = random_access_iterator_tag; + using _Cat1 = typename iterator_traits<_II1>::iterator_category; + using _Cat2 = typename iterator_traits<_II2>::iterator_category; + using _RAIters = __and_, is_same<_Cat2, _RATag>>; + if constexpr (_RAIters::value) + { + if ((__last1 - __first1) != (__last2 - __first2)) + return false; + return std::equal(__first1, __last1, __first2, + __binary_pred); + } + else + { + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return __first1 == __last1 && __first2 == __last2; + } + } +#pragma GCC diagnostic pop +# 1701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + + + + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2); + } +# 1734 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2, + __binary_pred); + } +# 1766 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + + + + + + + + + + ; + ; + + return std::__lexicographical_compare_aux(__first1, __last1, + __first2, __last2); + } +# 1801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, _Compare __comp) + { + + + + ; + ; + + return std::__lexicographical_compare_impl + (__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 1916 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 1944 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2) + { + + + + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 1978 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + template + + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __first2 != __last2 + && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 2026 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2) + { + + + + + + + ; + ; + + return std::__mismatch(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 2062 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__mismatch(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + + + + template + + inline _InputIterator + __find_if(_InputIterator __first, _InputIterator __last, + _Predicate __pred, input_iterator_tag) + { + while (__first != __last && !__pred(__first)) + ++__first; + return __first; + } + + + template + + _RandomAccessIterator + __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Predicate __pred, random_access_iterator_tag) + { + typename iterator_traits<_RandomAccessIterator>::difference_type + __trip_count = (__last - __first) >> 2; + + for (; __trip_count > 0; --__trip_count) + { + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + } + + switch (__last - __first) + { + case 3: + if (__pred(__first)) + return __first; + ++__first; + + case 2: + if (__pred(__first)) + return __first; + ++__first; + + case 1: + if (__pred(__first)) + return __first; + ++__first; + + case 0: + default: + return __last; + } + } + + template + + inline _Iterator + __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) + { + return __find_if(__first, __last, __pred, + std::__iterator_category(__first)); + } + + template + + typename iterator_traits<_InputIterator>::difference_type + __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { + typename iterator_traits<_InputIterator>::difference_type __n = 0; + for (; __first != __last; ++__first) + if (__pred(__first)) + ++__n; + return __n; + } + + template + + _ForwardIterator + __remove_if(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + __first = std::__find_if(__first, __last, __pred); + if (__first == __last) + return __first; + _ForwardIterator __result = __first; + ++__first; + for (; __first != __last; ++__first) + if (!__pred(__first)) + { + *__result = std::move(*__first); + ++__result; + } + return __result; + } + + template + + _ForwardIterator1 + __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + if (__first1 == __last1 || __first2 == __last2) + return __first1; + + + _ForwardIterator2 __p1(__first2); + if (++__p1 == __last2) + return std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + + _ForwardIterator1 __current = __first1; + + for (;;) + { + __first1 = + std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + if (__first1 == __last1) + return __last1; + + _ForwardIterator2 __p = __p1; + __current = __first1; + if (++__current == __last1) + return __last1; + + while (__predicate(__current, __p)) + { + if (++__p == __last2) + return __first1; + if (++__current == __last1) + return __last1; + } + ++__first1; + } + return __first1; + } + + + template + + bool + __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _BinaryPredicate __pred) + { + + + for (; __first1 != __last1; ++__first1, (void)++__first2) + if (!__pred(__first1, __first2)) + break; + + if (__first1 == __last1) + return true; + + + + _ForwardIterator2 __last2 = __first2; + std::advance(__last2, std::distance(__first1, __last1)); + for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) + { + if (__scan != std::__find_if(__first1, __scan, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) + continue; + + auto __matches + = std::__count_if(__first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); + if (0 == __matches || + std::__count_if(__scan, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) + != __matches) + return false; + } + return true; + } +# 2286 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline bool + is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + + ; + + return std::__is_permutation(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } + + + +# 2328 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _ForwardIterator1 + search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + + + + + + ; + ; + + return std::__search(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__predicate)); + } + + + +} +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + enum float_round_style + { + round_indeterminate = -1, + round_toward_zero = 0, + round_to_nearest = 1, + round_toward_infinity = 2, + round_toward_neg_infinity = 3 + }; + + + + + + + + enum float_denorm_style + { + + denorm_indeterminate = -1, + + denorm_absent = 0, + + denorm_present = 1 + }; +# 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + struct __numeric_limits_base + { + + + static constexpr bool is_specialized = false; + + + + + static constexpr int digits = 0; + + + static constexpr int digits10 = 0; + + + + + static constexpr int max_digits10 = 0; + + + + static constexpr bool is_signed = false; + + + static constexpr bool is_integer = false; + + + + + static constexpr bool is_exact = false; + + + + static constexpr int radix = 0; + + + + static constexpr int min_exponent = 0; + + + + static constexpr int min_exponent10 = 0; + + + + + static constexpr int max_exponent = 0; + + + + static constexpr int max_exponent10 = 0; + + + static constexpr bool has_infinity = false; + + + + static constexpr bool has_quiet_NaN = false; + + + + static constexpr bool has_signaling_NaN = false; + + + static constexpr float_denorm_style has_denorm = denorm_absent; + + + + static constexpr bool has_denorm_loss = false; + + + + static constexpr bool is_iec559 = false; + + + + + static constexpr bool is_bounded = false; +# 288 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + static constexpr bool is_modulo = false; + + + static constexpr bool traps = false; + + + static constexpr bool tinyness_before = false; + + + + + static constexpr float_round_style round_style = + round_toward_zero; + }; +# 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template + struct numeric_limits : public __numeric_limits_base + { + + + static constexpr _Tp + min() noexcept { return _Tp(); } + + + static constexpr _Tp + max() noexcept { return _Tp(); } + + + + + static constexpr _Tp + lowest() noexcept { return _Tp(); } + + + + + static constexpr _Tp + epsilon() noexcept { return _Tp(); } + + + static constexpr _Tp + round_error() noexcept { return _Tp(); } + + + static constexpr _Tp + infinity() noexcept { return _Tp(); } + + + + static constexpr _Tp + quiet_NaN() noexcept { return _Tp(); } + + + + static constexpr _Tp + signaling_NaN() noexcept { return _Tp(); } + + + + + static constexpr _Tp + denorm_min() noexcept { return _Tp(); } + }; + + + + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; +# 383 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr bool + min() noexcept { return false; } + + static constexpr bool + max() noexcept { return true; } + + + static constexpr bool + lowest() noexcept { return min(); } + + static constexpr int digits = 1; + static constexpr int digits10 = 0; + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr bool + epsilon() noexcept { return false; } + + static constexpr bool + round_error() noexcept { return false; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr bool + infinity() noexcept { return false; } + + static constexpr bool + quiet_NaN() noexcept { return false; } + + static constexpr bool + signaling_NaN() noexcept { return false; } + + static constexpr bool + denorm_min() noexcept { return false; } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + + + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char + min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } + + static constexpr char + max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } + + + static constexpr char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((char)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char + epsilon() noexcept { return 0; } + + static constexpr char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr + char infinity() noexcept { return char(); } + + static constexpr char + quiet_NaN() noexcept { return char(); } + + static constexpr char + signaling_NaN() noexcept { return char(); } + + static constexpr char + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr signed char + min() noexcept { return -0x7f - 1; } + + static constexpr signed char + max() noexcept { return 0x7f; } + + + static constexpr signed char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr signed char + epsilon() noexcept { return 0; } + + static constexpr signed char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr signed char + infinity() noexcept { return static_cast(0); } + + static constexpr signed char + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr signed char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr signed char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned char + min() noexcept { return 0; } + + static constexpr unsigned char + max() noexcept { return 0x7f * 2U + 1; } + + + static constexpr unsigned char + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned char + epsilon() noexcept { return 0; } + + static constexpr unsigned char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned char + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned char + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr wchar_t + min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } + + static constexpr wchar_t + max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } + + + static constexpr wchar_t + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((wchar_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr wchar_t + epsilon() noexcept { return 0; } + + static constexpr wchar_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr wchar_t + infinity() noexcept { return wchar_t(); } + + static constexpr wchar_t + quiet_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + signaling_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + denorm_min() noexcept { return wchar_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 796 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char16_t + min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } + + static constexpr char16_t + max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } + + static constexpr char16_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char16_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char16_t + epsilon() noexcept { return 0; } + + static constexpr char16_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char16_t + infinity() noexcept { return char16_t(); } + + static constexpr char16_t + quiet_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + signaling_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + denorm_min() noexcept { return char16_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char32_t + min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } + + static constexpr char32_t + max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } + + static constexpr char32_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char32_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char32_t + epsilon() noexcept { return 0; } + + static constexpr char32_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char32_t + infinity() noexcept { return char32_t(); } + + static constexpr char32_t + quiet_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + signaling_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + denorm_min() noexcept { return char32_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr short + min() noexcept { return -0x7fff - 1; } + + static constexpr short + max() noexcept { return 0x7fff; } + + + static constexpr short + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); + static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr short + epsilon() noexcept { return 0; } + + static constexpr short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr short + infinity() noexcept { return short(); } + + static constexpr short + quiet_NaN() noexcept { return short(); } + + static constexpr short + signaling_NaN() noexcept { return short(); } + + static constexpr short + denorm_min() noexcept { return short(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned short + min() noexcept { return 0; } + + static constexpr unsigned short + max() noexcept { return 0x7fff * 2U + 1; } + + + static constexpr unsigned short + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned short + epsilon() noexcept { return 0; } + + static constexpr unsigned short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned short + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned short + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr int + min() noexcept { return -0x7fffffff - 1; } + + static constexpr int + max() noexcept { return 0x7fffffff; } + + + static constexpr int + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); + static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr int + epsilon() noexcept { return 0; } + + static constexpr int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr int + infinity() noexcept { return static_cast(0); } + + static constexpr int + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr int + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr int + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned int + min() noexcept { return 0; } + + static constexpr unsigned int + max() noexcept { return 0x7fffffff * 2U + 1; } + + + static constexpr unsigned int + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned int + epsilon() noexcept { return 0; } + + static constexpr unsigned int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned int + infinity() noexcept { return static_cast(0); } + + static constexpr unsigned int + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long + min() noexcept { return -0x7fffffffffffffffL - 1; } + + static constexpr long + max() noexcept { return 0x7fffffffffffffffL; } + + + static constexpr long + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); + static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long + epsilon() noexcept { return 0; } + + static constexpr long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long + infinity() noexcept { return static_cast(0); } + + static constexpr long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long + min() noexcept { return 0; } + + static constexpr unsigned long + max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } + + + static constexpr unsigned long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long + epsilon() noexcept { return 0; } + + static constexpr unsigned long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long long + min() noexcept { return -0x7fffffffffffffffLL - 1; } + + static constexpr long long + max() noexcept { return 0x7fffffffffffffffLL; } + + + static constexpr long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(long long) * 8 - ((long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long long + epsilon() noexcept { return 0; } + + static constexpr long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long long + infinity() noexcept { return static_cast(0); } + + static constexpr long long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr long long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long long + min() noexcept { return 0; } + + static constexpr unsigned long long + max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } + + + static constexpr unsigned long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long long + epsilon() noexcept { return 0; } + + static constexpr unsigned long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 1637 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + __extension__ template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; __extension__ template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; +# 1669 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr float + min() noexcept { return 1.17549435082228750796873653722224568e-38F; } + + static constexpr float + max() noexcept { return 3.40282346638528859811704183484516925e+38F; } + + + static constexpr float + lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } + + + static constexpr int digits = 24; + static constexpr int digits10 = 6; + + static constexpr int max_digits10 + = (2 + (24) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr float + epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } + + static constexpr float + round_error() noexcept { return 0.5F; } + + static constexpr int min_exponent = (-125); + static constexpr int min_exponent10 = (-37); + static constexpr int max_exponent = 128; + static constexpr int max_exponent10 = 38; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr float + infinity() noexcept { return __builtin_huge_valf(); } + + static constexpr float + quiet_NaN() noexcept { return __builtin_nanf(""); } + + static constexpr float + signaling_NaN() noexcept { return __builtin_nansf(""); } + + static constexpr float + denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr double + min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } + + static constexpr double + max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } + + + static constexpr double + lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } + + + static constexpr int digits = 53; + static constexpr int digits10 = 15; + + static constexpr int max_digits10 + = (2 + (53) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr double + epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } + + static constexpr double + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = (-1021); + static constexpr int min_exponent10 = (-307); + static constexpr int max_exponent = 1024; + static constexpr int max_exponent10 = 308; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr double + infinity() noexcept { return __builtin_huge_val(); } + + static constexpr double + quiet_NaN() noexcept { return __builtin_nan(""); } + + static constexpr double + signaling_NaN() noexcept { return __builtin_nans(""); } + + static constexpr double + denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long double + min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } + + static constexpr long double + max() noexcept { return 1.18973149535723176502126385303097021e+4932L; } + + + static constexpr long double + lowest() noexcept { return -1.18973149535723176502126385303097021e+4932L; } + + + static constexpr int digits = 64; + static constexpr int digits10 = 18; + + static constexpr int max_digits10 + = (2 + (64) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr long double + epsilon() noexcept { return 1.08420217248550443400745280086994171e-19L; } + + static constexpr long double + round_error() noexcept { return 0.5L; } + + static constexpr int min_exponent = (-16381); + static constexpr int min_exponent10 = (-4931); + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr long double + infinity() noexcept { return __builtin_huge_vall(); } + + static constexpr long double + quiet_NaN() noexcept { return __builtin_nanl(""); } + + static constexpr long double + signaling_NaN() noexcept { return __builtin_nansl(""); } + + static constexpr long double + denorm_min() noexcept { return 3.64519953188247460252840593361941982e-4951L; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = + false; + static constexpr float_round_style round_style = + round_to_nearest; + }; +# 1989 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +__extension__ template<> struct numeric_limits<_Float32> { static constexpr bool is_specialized = true; static constexpr _Float32 min() noexcept { return 1.17549435082228750796873653722224568e-38F32; } static constexpr _Float32 max() noexcept { return 3.40282346638528859811704183484516925e+38F32; } static constexpr _Float32 lowest() noexcept { return -3.40282346638528859811704183484516925e+38F32; } static constexpr int digits = 24; static constexpr int digits10 = 6; static constexpr int max_digits10 = (2 + (24) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float32 epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F32; } static constexpr _Float32 round_error() noexcept { return 0.5F32; } static constexpr int min_exponent = (-125); static constexpr int min_exponent10 = (-37); static constexpr int max_exponent = 128; static constexpr int max_exponent10 = 38; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float32 infinity() noexcept { return __builtin_huge_valf32(); } static constexpr _Float32 quiet_NaN() noexcept { return __builtin_nanf32(""); } static constexpr _Float32 signaling_NaN() noexcept { return __builtin_nansf32(""); } static constexpr _Float32 denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F32; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; + + +__extension__ template<> struct numeric_limits<_Float64> { static constexpr bool is_specialized = true; static constexpr _Float64 min() noexcept { return 2.22507385850720138309023271733240406e-308F64; } static constexpr _Float64 max() noexcept { return 1.79769313486231570814527423731704357e+308F64; } static constexpr _Float64 lowest() noexcept { return -1.79769313486231570814527423731704357e+308F64; } static constexpr int digits = 53; static constexpr int digits10 = 15; static constexpr int max_digits10 = (2 + (53) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float64 epsilon() noexcept { return 2.22044604925031308084726333618164062e-16F64; } static constexpr _Float64 round_error() noexcept { return 0.5F64; } static constexpr int min_exponent = (-1021); static constexpr int min_exponent10 = (-307); static constexpr int max_exponent = 1024; static constexpr int max_exponent10 = 308; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float64 infinity() noexcept { return __builtin_huge_valf64(); } static constexpr _Float64 quiet_NaN() noexcept { return __builtin_nanf64(""); } static constexpr _Float64 signaling_NaN() noexcept { return __builtin_nansf64(""); } static constexpr _Float64 denorm_min() noexcept { return 4.94065645841246544176568792868221372e-324F64; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; + + +__extension__ template<> struct numeric_limits<_Float128> { static constexpr bool is_specialized = true; static constexpr _Float128 min() noexcept { return 3.36210314311209350626267781732175260e-4932F128; } static constexpr _Float128 max() noexcept { return 1.18973149535723176508575932662800702e+4932F128; } static constexpr _Float128 lowest() noexcept { return -1.18973149535723176508575932662800702e+4932F128; } static constexpr int digits = 113; static constexpr int digits10 = 33; static constexpr int max_digits10 = (2 + (113) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float128 epsilon() noexcept { return 1.92592994438723585305597794258492732e-34F128; } static constexpr _Float128 round_error() noexcept { return 0.5F128; } static constexpr int min_exponent = (-16381); static constexpr int min_exponent10 = (-4931); static constexpr int max_exponent = 16384; static constexpr int max_exponent10 = 4932; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float128 infinity() noexcept { return __builtin_huge_valf128(); } static constexpr _Float128 quiet_NaN() noexcept { return __builtin_nanf128(""); } static constexpr _Float128 signaling_NaN() noexcept { return __builtin_nansf128(""); } static constexpr _Float128 denorm_min() noexcept { return 6.47517511943802511092443895822764655e-4966F128; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; +# 2087 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + __extension__ + template<> + struct numeric_limits<__float128> + { + static constexpr bool is_specialized = true; + + static constexpr __float128 + min() noexcept + { + + + + + return __extension__ 0x1.0p-16382Q; + + } + + static constexpr __float128 + max() noexcept + { + + + + + + + + return __extension__ 0x1.ffffffffffffffffffffffffffffp+16383Q; + + } + + static constexpr __float128 + lowest() noexcept + { return -max(); } + + static constexpr int digits = 113; + static constexpr int digits10 = 33; + + static constexpr int max_digits10 = 35; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr __float128 + epsilon() noexcept + { return double(1.9259299443872359e-34); } + + static constexpr __float128 + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = -16381; + static constexpr int min_exponent10 = -4931; + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + + + static constexpr bool has_signaling_NaN = true; + + + + static constexpr float_denorm_style has_denorm + = denorm_present; + static constexpr bool has_denorm_loss = false; + + static constexpr __float128 + infinity() noexcept + { return __builtin_huge_val(); } + + static constexpr __float128 + quiet_NaN() noexcept + { return __builtin_nan(""); } + + static constexpr __float128 + signaling_NaN() noexcept + { + + return __builtin_nansq(""); + + + + + + } + + static constexpr __float128 + denorm_min() noexcept + { + + + + + return __extension__ 0x1.0p-16494Q; + + } + + static constexpr bool is_iec559 = has_signaling_NaN; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_to_nearest; +# 2218 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + }; + + + + +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + namespace __detail + { + + + + template + struct __floating_point_constant + { + static const _Tp __value; + }; + + + + template + struct __numeric_constants + { + + static _Tp __pi() throw() + { return static_cast<_Tp>(3.1415926535897932384626433832795029L); } + + static _Tp __pi_2() throw() + { return static_cast<_Tp>(1.5707963267948966192313216916397514L); } + + static _Tp __pi_3() throw() + { return static_cast<_Tp>(1.0471975511965977461542144610931676L); } + + static _Tp __pi_4() throw() + { return static_cast<_Tp>(0.7853981633974483096156608458198757L); } + + static _Tp __1_pi() throw() + { return static_cast<_Tp>(0.3183098861837906715377675267450287L); } + + static _Tp __2_sqrtpi() throw() + { return static_cast<_Tp>(1.1283791670955125738961589031215452L); } + + static _Tp __sqrt2() throw() + { return static_cast<_Tp>(1.4142135623730950488016887242096981L); } + + static _Tp __sqrt3() throw() + { return static_cast<_Tp>(1.7320508075688772935274463415058723L); } + + static _Tp __sqrtpio2() throw() + { return static_cast<_Tp>(1.2533141373155002512078826424055226L); } + + static _Tp __sqrt1_2() throw() + { return static_cast<_Tp>(0.7071067811865475244008443621048490L); } + + static _Tp __lnpi() throw() + { return static_cast<_Tp>(1.1447298858494001741434273513530587L); } + + static _Tp __gamma_e() throw() + { return static_cast<_Tp>(0.5772156649015328606065120900824024L); } + + static _Tp __euler() throw() + { return static_cast<_Tp>(2.7182818284590452353602874713526625L); } + }; +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + template + inline bool __isnan(_Tp __x) + { return std::isnan(__x); } +# 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + } + + + + + +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + namespace __detail + { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __bernoulli_series(unsigned int __n) + { + + static const _Tp __num[28] = { + _Tp(1UL), -_Tp(1UL) / _Tp(2UL), + _Tp(1UL) / _Tp(6UL), _Tp(0UL), + -_Tp(1UL) / _Tp(30UL), _Tp(0UL), + _Tp(1UL) / _Tp(42UL), _Tp(0UL), + -_Tp(1UL) / _Tp(30UL), _Tp(0UL), + _Tp(5UL) / _Tp(66UL), _Tp(0UL), + -_Tp(691UL) / _Tp(2730UL), _Tp(0UL), + _Tp(7UL) / _Tp(6UL), _Tp(0UL), + -_Tp(3617UL) / _Tp(510UL), _Tp(0UL), + _Tp(43867UL) / _Tp(798UL), _Tp(0UL), + -_Tp(174611) / _Tp(330UL), _Tp(0UL), + _Tp(854513UL) / _Tp(138UL), _Tp(0UL), + -_Tp(236364091UL) / _Tp(2730UL), _Tp(0UL), + _Tp(8553103UL) / _Tp(6UL), _Tp(0UL) + }; + + if (__n == 0) + return _Tp(1); + + if (__n == 1) + return -_Tp(1) / _Tp(2); + + + if (__n % 2 == 1) + return _Tp(0); + + + if (__n < 28) + return __num[__n]; + + + _Tp __fact = _Tp(1); + if ((__n / 2) % 2 == 0) + __fact *= _Tp(-1); + for (unsigned int __k = 1; __k <= __n; ++__k) + __fact *= __k / (_Tp(2) * __numeric_constants<_Tp>::__pi()); + __fact *= _Tp(2); + + _Tp __sum = _Tp(0); + for (unsigned int __i = 1; __i < 1000; ++__i) + { + _Tp __term = std::pow(_Tp(__i), -_Tp(__n)); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return __fact * __sum; + } +# 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + inline _Tp + __bernoulli(int __n) + { return __bernoulli_series<_Tp>(__n); } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_bernoulli(_Tp __x) + { + _Tp __lg = (__x - _Tp(0.5L)) * std::log(__x) - __x + + _Tp(0.5L) * std::log(_Tp(2) + * __numeric_constants<_Tp>::__pi()); + + const _Tp __xx = __x * __x; + _Tp __help = _Tp(1) / __x; + for ( unsigned int __i = 1; __i < 20; ++__i ) + { + const _Tp __2i = _Tp(2 * __i); + __help /= __2i * (__2i - _Tp(1)) * __xx; + __lg += __bernoulli<_Tp>(2 * __i) * __help; + } + + return __lg; + } +# 181 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_lanczos(_Tp __x) + { + const _Tp __xm1 = __x - _Tp(1); + + static const _Tp __lanczos_cheb_7[9] = { + _Tp( 0.99999999999980993227684700473478L), + _Tp( 676.520368121885098567009190444019L), + _Tp(-1259.13921672240287047156078755283L), + _Tp( 771.3234287776530788486528258894L), + _Tp(-176.61502916214059906584551354L), + _Tp( 12.507343278686904814458936853L), + _Tp(-0.13857109526572011689554707L), + _Tp( 9.984369578019570859563e-6L), + _Tp( 1.50563273514931155834e-7L) + }; + + static const _Tp __LOGROOT2PI + = _Tp(0.9189385332046727417803297364056176L); + + _Tp __sum = __lanczos_cheb_7[0]; + for(unsigned int __k = 1; __k < 9; ++__k) + __sum += __lanczos_cheb_7[__k] / (__xm1 + __k); + + const _Tp __term1 = (__xm1 + _Tp(0.5L)) + * std::log((__xm1 + _Tp(7.5L)) + / __numeric_constants<_Tp>::__euler()); + const _Tp __term2 = __LOGROOT2PI + std::log(__sum); + const _Tp __result = __term1 + (__term2 - _Tp(7)); + + return __result; + } +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma(_Tp __x) + { + if (__x > _Tp(0.5L)) + return __log_gamma_lanczos(__x); + else + { + const _Tp __sin_fact + = std::abs(std::sin(__numeric_constants<_Tp>::__pi() * __x)); + if (__sin_fact == _Tp(0)) + std::__throw_domain_error(("Argument is nonpositive integer " "in __log_gamma") + ); + return __numeric_constants<_Tp>::__lnpi() + - std::log(__sin_fact) + - __log_gamma_lanczos(_Tp(1) - __x); + } + } +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_sign(_Tp __x) + { + if (__x > _Tp(0)) + return _Tp(1); + else + { + const _Tp __sin_fact + = std::sin(__numeric_constants<_Tp>::__pi() * __x); + if (__sin_fact > _Tp(0)) + return (1); + else if (__sin_fact < _Tp(0)) + return -_Tp(1); + else + return _Tp(0); + } + } +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_bincoef(unsigned int __n, unsigned int __k) + { + + static const _Tp __max_bincoeff + = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + _Tp __coeff = ::std::lgamma(_Tp(1 + __n)) + - ::std::lgamma(_Tp(1 + __k)) + - ::std::lgamma(_Tp(1 + __n - __k)); + + + + + + } +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __bincoef(unsigned int __n, unsigned int __k) + { + + static const _Tp __max_bincoeff + = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + const _Tp __log_coeff = __log_bincoef<_Tp>(__n, __k); + if (__log_coeff > __max_bincoeff) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return std::exp(__log_coeff); + } +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + inline _Tp + __gamma(_Tp __x) + { return std::exp(__log_gamma(__x)); } +# 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi_series(_Tp __x) + { + _Tp __sum = -__numeric_constants<_Tp>::__gamma_e() - _Tp(1) / __x; + const unsigned int __max_iter = 100000; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + const _Tp __term = __x / (__k * (__k + __x)); + __sum += __term; + if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) + break; + } + return __sum; + } +# 386 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi_asymp(_Tp __x) + { + _Tp __sum = std::log(__x) - _Tp(0.5L) / __x; + const _Tp __xx = __x * __x; + _Tp __xp = __xx; + const unsigned int __max_iter = 100; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + const _Tp __term = __bernoulli<_Tp>(2 * __k) / (2 * __k * __xp); + __sum -= __term; + if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) + break; + __xp *= __xx; + } + return __sum; + } +# 417 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi(_Tp __x) + { + const int __n = static_cast(__x + 0.5L); + const _Tp __eps = _Tp(4) * std::numeric_limits<_Tp>::epsilon(); + if (__n <= 0 && std::abs(__x - _Tp(__n)) < __eps) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x < _Tp(0)) + { + const _Tp __pi = __numeric_constants<_Tp>::__pi(); + return __psi(_Tp(1) - __x) + - __pi * std::cos(__pi * __x) / std::sin(__pi * __x); + } + else if (__x > _Tp(100)) + return __psi_asymp(__x); + else + return __psi_series(__x); + } +# 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi(unsigned int __n, _Tp __x) + { + if (__x <= _Tp(0)) + std::__throw_domain_error(("Argument out of range " "in __psi") + ); + else if (__n == 0) + return __psi(__x); + else + { + const _Tp __hzeta = __hurwitz_zeta(_Tp(__n + 1), __x); + + const _Tp __ln_nfact = ::std::lgamma(_Tp(__n + 1)); + + + + _Tp __result = std::exp(__ln_nfact) * __hzeta; + if (__n % 2 == 1) + __result = -__result; + return __result; + } + } + } + + + + + + +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 1 3 +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + namespace __detail + { +# 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __gamma_temme(_Tp __mu, + _Tp & __gam1, _Tp & __gam2, _Tp & __gampl, _Tp & __gammi) + { + + __gampl = _Tp(1) / ::std::tgamma(_Tp(1) + __mu); + __gammi = _Tp(1) / ::std::tgamma(_Tp(1) - __mu); + + + + + + if (std::abs(__mu) < std::numeric_limits<_Tp>::epsilon()) + __gam1 = -_Tp(__numeric_constants<_Tp>::__gamma_e()); + else + __gam1 = (__gammi - __gampl) / (_Tp(2) * __mu); + + __gam2 = (__gammi + __gampl) / (_Tp(2)); + + return; + } +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __bessel_jn(_Tp __nu, _Tp __x, + _Tp & __Jnu, _Tp & __Nnu, _Tp & __Jpnu, _Tp & __Npnu) + { + if (__x == _Tp(0)) + { + if (__nu == _Tp(0)) + { + __Jnu = _Tp(1); + __Jpnu = _Tp(0); + } + else if (__nu == _Tp(1)) + { + __Jnu = _Tp(0); + __Jpnu = _Tp(0.5L); + } + else + { + __Jnu = _Tp(0); + __Jpnu = _Tp(0); + } + __Nnu = -std::numeric_limits<_Tp>::infinity(); + __Npnu = std::numeric_limits<_Tp>::infinity(); + return; + } + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + + + + const _Tp __fp_min = std::sqrt(std::numeric_limits<_Tp>::min()); + const int __max_iter = 15000; + const _Tp __x_min = _Tp(2); + + const int __nl = (__x < __x_min + ? static_cast(__nu + _Tp(0.5L)) + : std::max(0, static_cast(__nu - __x + _Tp(1.5L)))); + + const _Tp __mu = __nu - __nl; + const _Tp __mu2 = __mu * __mu; + const _Tp __xi = _Tp(1) / __x; + const _Tp __xi2 = _Tp(2) * __xi; + _Tp __w = __xi2 / __numeric_constants<_Tp>::__pi(); + int __isign = 1; + _Tp __h = __nu * __xi; + if (__h < __fp_min) + __h = __fp_min; + _Tp __b = __xi2 * __nu; + _Tp __d = _Tp(0); + _Tp __c = __h; + int __i; + for (__i = 1; __i <= __max_iter; ++__i) + { + __b += __xi2; + __d = __b - __d; + if (std::abs(__d) < __fp_min) + __d = __fp_min; + __c = __b - _Tp(1) / __c; + if (std::abs(__c) < __fp_min) + __c = __fp_min; + __d = _Tp(1) / __d; + const _Tp __del = __c * __d; + __h *= __del; + if (__d < _Tp(0)) + __isign = -__isign; + if (std::abs(__del - _Tp(1)) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Argument x too large in __bessel_jn; " "try asymptotic expansion.") + ); + _Tp __Jnul = __isign * __fp_min; + _Tp __Jpnul = __h * __Jnul; + _Tp __Jnul1 = __Jnul; + _Tp __Jpnu1 = __Jpnul; + _Tp __fact = __nu * __xi; + for ( int __l = __nl; __l >= 1; --__l ) + { + const _Tp __Jnutemp = __fact * __Jnul + __Jpnul; + __fact -= __xi; + __Jpnul = __fact * __Jnutemp - __Jnul; + __Jnul = __Jnutemp; + } + if (__Jnul == _Tp(0)) + __Jnul = __eps; + _Tp __f= __Jpnul / __Jnul; + _Tp __Nmu, __Nnu1, __Npmu, __Jmu; + if (__x < __x_min) + { + const _Tp __x2 = __x / _Tp(2); + const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; + _Tp __fact = (std::abs(__pimu) < __eps + ? _Tp(1) : __pimu / std::sin(__pimu)); + _Tp __d = -std::log(__x2); + _Tp __e = __mu * __d; + _Tp __fact2 = (std::abs(__e) < __eps + ? _Tp(1) : std::sinh(__e) / __e); + _Tp __gam1, __gam2, __gampl, __gammi; + __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); + _Tp __ff = (_Tp(2) / __numeric_constants<_Tp>::__pi()) + * __fact * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); + __e = std::exp(__e); + _Tp __p = __e / (__numeric_constants<_Tp>::__pi() * __gampl); + _Tp __q = _Tp(1) / (__e * __numeric_constants<_Tp>::__pi() * __gammi); + const _Tp __pimu2 = __pimu / _Tp(2); + _Tp __fact3 = (std::abs(__pimu2) < __eps + ? _Tp(1) : std::sin(__pimu2) / __pimu2 ); + _Tp __r = __numeric_constants<_Tp>::__pi() * __pimu2 * __fact3 * __fact3; + _Tp __c = _Tp(1); + __d = -__x2 * __x2; + _Tp __sum = __ff + __r * __q; + _Tp __sum1 = __p; + for (__i = 1; __i <= __max_iter; ++__i) + { + __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); + __c *= __d / _Tp(__i); + __p /= _Tp(__i) - __mu; + __q /= _Tp(__i) + __mu; + const _Tp __del = __c * (__ff + __r * __q); + __sum += __del; + const _Tp __del1 = __c * __p - __i * __del; + __sum1 += __del1; + if ( std::abs(__del) < __eps * (_Tp(1) + std::abs(__sum)) ) + break; + } + if ( __i > __max_iter ) + std::__throw_runtime_error(("Bessel y series failed to converge " "in __bessel_jn.") + ); + __Nmu = -__sum; + __Nnu1 = -__sum1 * __xi2; + __Npmu = __mu * __xi * __Nmu - __Nnu1; + __Jmu = __w / (__Npmu - __f * __Nmu); + } + else + { + _Tp __a = _Tp(0.25L) - __mu2; + _Tp __q = _Tp(1); + _Tp __p = -__xi / _Tp(2); + _Tp __br = _Tp(2) * __x; + _Tp __bi = _Tp(2); + _Tp __fact = __a * __xi / (__p * __p + __q * __q); + _Tp __cr = __br + __q * __fact; + _Tp __ci = __bi + __p * __fact; + _Tp __den = __br * __br + __bi * __bi; + _Tp __dr = __br / __den; + _Tp __di = -__bi / __den; + _Tp __dlr = __cr * __dr - __ci * __di; + _Tp __dli = __cr * __di + __ci * __dr; + _Tp __temp = __p * __dlr - __q * __dli; + __q = __p * __dli + __q * __dlr; + __p = __temp; + int __i; + for (__i = 2; __i <= __max_iter; ++__i) + { + __a += _Tp(2 * (__i - 1)); + __bi += _Tp(2); + __dr = __a * __dr + __br; + __di = __a * __di + __bi; + if (std::abs(__dr) + std::abs(__di) < __fp_min) + __dr = __fp_min; + __fact = __a / (__cr * __cr + __ci * __ci); + __cr = __br + __cr * __fact; + __ci = __bi - __ci * __fact; + if (std::abs(__cr) + std::abs(__ci) < __fp_min) + __cr = __fp_min; + __den = __dr * __dr + __di * __di; + __dr /= __den; + __di /= -__den; + __dlr = __cr * __dr - __ci * __di; + __dli = __cr * __di + __ci * __dr; + __temp = __p * __dlr - __q * __dli; + __q = __p * __dli + __q * __dlr; + __p = __temp; + if (std::abs(__dlr - _Tp(1)) + std::abs(__dli) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Lentz's method failed " "in __bessel_jn.") + ); + const _Tp __gam = (__p - __f) / __q; + __Jmu = std::sqrt(__w / ((__p - __f) * __gam + __q)); + + __Jmu = ::std::copysign(__Jmu, __Jnul); + + + + + __Nmu = __gam * __Jmu; + __Npmu = (__p + __q / __gam) * __Nmu; + __Nnu1 = __mu * __xi * __Nmu - __Npmu; + } + __fact = __Jmu / __Jnul; + __Jnu = __fact * __Jnul1; + __Jpnu = __fact * __Jpnu1; + for (__i = 1; __i <= __nl; ++__i) + { + const _Tp __Nnutemp = (__mu + __i) * __xi2 * __Nnu1 - __Nmu; + __Nmu = __Nnu1; + __Nnu1 = __Nnutemp; + } + __Nnu = __Nmu; + __Npnu = __nu * __xi * __Nmu - __Nnu1; + + return; + } +# 361 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __cyl_bessel_jn_asymp(_Tp __nu, _Tp __x, _Tp & __Jnu, _Tp & __Nnu) + { + const _Tp __mu = _Tp(4) * __nu * __nu; + const _Tp __8x = _Tp(8) * __x; + + _Tp __P = _Tp(0); + _Tp __Q = _Tp(0); + + _Tp __k = _Tp(0); + _Tp __term = _Tp(1); + + int __epsP = 0; + int __epsQ = 0; + + _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + do + { + __term *= (__k == 0 + ? _Tp(1) + : -(__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x)); + + __epsP = std::abs(__term) < __eps * std::abs(__P); + __P += __term; + + __k++; + + __term *= (__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x); + __epsQ = std::abs(__term) < __eps * std::abs(__Q); + __Q += __term; + + if (__epsP && __epsQ && __k > (__nu / 2.)) + break; + + __k++; + } + while (__k < 1000); + + const _Tp __chi = __x - (__nu + _Tp(0.5L)) + * __numeric_constants<_Tp>::__pi_2(); + + const _Tp __c = std::cos(__chi); + const _Tp __s = std::sin(__chi); + + const _Tp __coef = std::sqrt(_Tp(2) + / (__numeric_constants<_Tp>::__pi() * __x)); + + __Jnu = __coef * (__c * __P - __s * __Q); + __Nnu = __coef * (__s * __P + __c * __Q); + + return; + } +# 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_bessel_ij_series(_Tp __nu, _Tp __x, _Tp __sgn, + unsigned int __max_iter) + { + if (__x == _Tp(0)) + return __nu == _Tp(0) ? _Tp(1) : _Tp(0); + + const _Tp __x2 = __x / _Tp(2); + _Tp __fact = __nu * std::log(__x2); + + __fact -= ::std::lgamma(__nu + _Tp(1)); + + + + __fact = std::exp(__fact); + const _Tp __xx4 = __sgn * __x2 * __x2; + _Tp __Jn = _Tp(1); + _Tp __term = _Tp(1); + + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= __xx4 / (_Tp(__i) * (__nu + _Tp(__i))); + __Jn += __term; + if (std::abs(__term / __Jn) < std::numeric_limits<_Tp>::epsilon()) + break; + } + + return __fact * __Jn; + } +# 490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_bessel_j(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_j.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) + return __cyl_bessel_ij_series(__nu, __x, -_Tp(1), 200); + else if (__x > _Tp(1000)) + { + _Tp __J_nu, __N_nu; + __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); + return __J_nu; + } + else + { + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + return __J_nu; + } + } +# 532 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_neumann_n(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_neumann_n.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x > _Tp(1000)) + { + _Tp __J_nu, __N_nu; + __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); + return __N_nu; + } + else + { + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + return __N_nu; + } + } +# 569 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __sph_bessel_jn(unsigned int __n, _Tp __x, + _Tp & __j_n, _Tp & __n_n, _Tp & __jp_n, _Tp & __np_n) + { + const _Tp __nu = _Tp(__n) + _Tp(0.5L); + + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + + const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() + / std::sqrt(__x); + + __j_n = __factor * __J_nu; + __n_n = __factor * __N_nu; + __jp_n = __factor * __Jp_nu - __j_n / (_Tp(2) * __x); + __np_n = __factor * __Np_nu - __n_n / (_Tp(2) * __x); + + return; + } +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __sph_bessel(unsigned int __n, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __sph_bessel.") + ); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == _Tp(0)) + { + if (__n == 0) + return _Tp(1); + else + return _Tp(0); + } + else + { + _Tp __j_n, __n_n, __jp_n, __np_n; + __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); + return __j_n; + } + } +# 642 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __sph_neumann(unsigned int __n, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __sph_neumann.") + ); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == _Tp(0)) + return -std::numeric_limits<_Tp>::infinity(); + else + { + _Tp __j_n, __n_n, __jp_n, __np_n; + __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); + return __n_n; + } + } + } + + + + + + +} +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + namespace __detail + { +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_gamma(_Tp __x, _Tp __y) + { + + _Tp __bet; + + if (__x > __y) + { + __bet = ::std::tgamma(__x) + / ::std::tgamma(__x + __y); + __bet *= ::std::tgamma(__y); + } + else + { + __bet = ::std::tgamma(__y) + / ::std::tgamma(__x + __y); + __bet *= ::std::tgamma(__x); + } +# 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + return __bet; + } +# 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_lgamma(_Tp __x, _Tp __y) + { + + _Tp __bet = ::std::lgamma(__x) + + ::std::lgamma(__y) + - ::std::lgamma(__x + __y); + + + + + + __bet = std::exp(__bet); + return __bet; + } +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_product(_Tp __x, _Tp __y) + { + + _Tp __bet = (__x + __y) / (__x * __y); + + unsigned int __max_iter = 1000000; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + _Tp __term = (_Tp(1) + (__x + __y) / __k) + / ((_Tp(1) + __x / __k) * (_Tp(1) + __y / __k)); + __bet *= __term; + } + + return __bet; + } +# 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + inline _Tp + __beta(_Tp __x, _Tp __y) + { + if (__isnan(__x) || __isnan(__y)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __beta_lgamma(__x, __y); + } + } + + + + + + +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 1 3 +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + namespace __detail + { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rf(_Tp __x, _Tp __y, _Tp __z) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = _Tp(5) * __min; + + if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rf.") + ); + else if (__x + __y < __lolim || __x + __z < __lolim + || __y + __z < __lolim) + std::__throw_domain_error(("Argument too small in __ellint_rf")); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(1) / _Tp(24); + const _Tp __c2 = _Tp(1) / _Tp(10); + const _Tp __c3 = _Tp(3) / _Tp(44); + const _Tp __c4 = _Tp(1) / _Tp(14); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps, _Tp(1) / _Tp(6)); + _Tp __mu; + _Tp __xndev, __yndev, __zndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + __zn) / _Tp(3); + __xndev = 2 - (__mu + __xn) / __mu; + __yndev = 2 - (__mu + __yn) / __mu; + __zndev = 2 - (__mu + __zn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + if (__epsilon < __errtol) + break; + const _Tp __xnroot = std::sqrt(__xn); + const _Tp __ynroot = std::sqrt(__yn); + const _Tp __znroot = std::sqrt(__zn); + const _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + } + + const _Tp __e2 = __xndev * __yndev - __zndev * __zndev; + const _Tp __e3 = __xndev * __yndev * __zndev; + const _Tp __s = _Tp(1) + (__c1 * __e2 - __c2 - __c3 * __e3) * __e2 + + __c4 * __e3; + + return __s / std::sqrt(__mu); + } + } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_1_series(_Tp __k) + { + + const _Tp __kk = __k * __k; + + _Tp __term = __kk / _Tp(4); + _Tp __sum = _Tp(1) + __term; + + const unsigned int __max_iter = 1000; + for (unsigned int __i = 2; __i < __max_iter; ++__i) + { + __term *= (2 * __i - 1) * __kk / (2 * __i); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return __numeric_constants<_Tp>::__pi_2() * __sum; + } +# 191 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_1(_Tp __k) + { + + if (__isnan(__k)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) >= _Tp(1)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __ellint_rf(_Tp(0), _Tp(1) - __k * __k, _Tp(1)); + } +# 219 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_1(_Tp __k, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_1.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __s = std::sin(__phi_red); + const _Tp __c = std::cos(__phi_red); + + const _Tp __F = __s + * __ellint_rf(__c * __c, + _Tp(1) - __k * __k * __s * __s, _Tp(1)); + + if (__n == 0) + return __F; + else + return __F + _Tp(2) * __n * __comp_ellint_1(__k); + } + } +# 266 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_2_series(_Tp __k) + { + + const _Tp __kk = __k * __k; + + _Tp __term = __kk; + _Tp __sum = __term; + + const unsigned int __max_iter = 1000; + for (unsigned int __i = 2; __i < __max_iter; ++__i) + { + const _Tp __i2m = 2 * __i - 1; + const _Tp __i2 = 2 * __i; + __term *= __i2m * __i2m * __kk / (__i2 * __i2); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term / __i2m; + } + + return __numeric_constants<_Tp>::__pi_2() * (_Tp(1) - __sum); + } +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rd(_Tp __x, _Tp __y, _Tp __z) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); + const _Tp __max = std::numeric_limits<_Tp>::max(); + const _Tp __lolim = _Tp(2) / std::pow(__max, _Tp(2) / _Tp(3)); + + if (__x < _Tp(0) || __y < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rd.") + ); + else if (__x + __y < __lolim || __z < __lolim) + std::__throw_domain_error(("Argument too small " "in __ellint_rd.") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(3) / _Tp(14); + const _Tp __c2 = _Tp(1) / _Tp(6); + const _Tp __c3 = _Tp(9) / _Tp(22); + const _Tp __c4 = _Tp(3) / _Tp(26); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + _Tp __sigma = _Tp(0); + _Tp __power4 = _Tp(1); + + _Tp __mu; + _Tp __xndev, __yndev, __zndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + _Tp(3) * __zn) / _Tp(5); + __xndev = (__mu - __xn) / __mu; + __yndev = (__mu - __yn) / __mu; + __zndev = (__mu - __zn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + if (__epsilon < __errtol) + break; + _Tp __xnroot = std::sqrt(__xn); + _Tp __ynroot = std::sqrt(__yn); + _Tp __znroot = std::sqrt(__zn); + _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + __sigma += __power4 / (__znroot * (__zn + __lambda)); + __power4 *= __c0; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + } + + _Tp __ea = __xndev * __yndev; + _Tp __eb = __zndev * __zndev; + _Tp __ec = __ea - __eb; + _Tp __ed = __ea - _Tp(6) * __eb; + _Tp __ef = __ed + __ec + __ec; + _Tp __s1 = __ed * (-__c1 + __c3 * __ed + / _Tp(3) - _Tp(3) * __c4 * __zndev * __ef + / _Tp(2)); + _Tp __s2 = __zndev + * (__c2 * __ef + + __zndev * (-__c3 * __ec - __zndev * __c4 - __ea)); + + return _Tp(3) * __sigma + __power4 * (_Tp(1) + __s1 + __s2) + / (__mu * std::sqrt(__mu)); + } + } +# 399 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_2(_Tp __k) + { + + if (__isnan(__k)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) == 1) + return _Tp(1); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __comp_ellint_2.")); + else + { + const _Tp __kk = __k * __k; + + return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) + - __kk * __ellint_rd(_Tp(0), _Tp(1) - __kk, _Tp(1)) / _Tp(3); + } + } +# 433 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_2(_Tp __k, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_2.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __kk = __k * __k; + const _Tp __s = std::sin(__phi_red); + const _Tp __ss = __s * __s; + const _Tp __sss = __ss * __s; + const _Tp __c = std::cos(__phi_red); + const _Tp __cc = __c * __c; + + const _Tp __E = __s + * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + - __kk * __sss + * __ellint_rd(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + / _Tp(3); + + if (__n == 0) + return __E; + else + return __E + _Tp(2) * __n * __comp_ellint_2(__k); + } + } +# 492 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rc(_Tp __x, _Tp __y) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = _Tp(5) * __min; + + if (__x < _Tp(0) || __y < _Tp(0) || __x + __y < __lolim) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rc.") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(1) / _Tp(7); + const _Tp __c2 = _Tp(9) / _Tp(22); + const _Tp __c3 = _Tp(3) / _Tp(10); + const _Tp __c4 = _Tp(3) / _Tp(8); + + _Tp __xn = __x; + _Tp __yn = __y; + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(30), _Tp(1) / _Tp(6)); + _Tp __mu; + _Tp __sn; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + _Tp(2) * __yn) / _Tp(3); + __sn = (__yn + __mu) / __mu - _Tp(2); + if (std::abs(__sn) < __errtol) + break; + const _Tp __lambda = _Tp(2) * std::sqrt(__xn) * std::sqrt(__yn) + + __yn; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + } + + _Tp __s = __sn * __sn + * (__c3 + __sn*(__c1 + __sn * (__c4 + __sn * __c2))); + + return (_Tp(1) + __s) / std::sqrt(__mu); + } + } +# 561 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rj(_Tp __x, _Tp __y, _Tp __z, _Tp __p) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = std::pow(_Tp(5) * __min, _Tp(1)/_Tp(3)); + + if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rj.") + ); + else if (__x + __y < __lolim || __x + __z < __lolim + || __y + __z < __lolim || __p < __lolim) + std::__throw_domain_error(("Argument too small " "in __ellint_rj") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(3) / _Tp(14); + const _Tp __c2 = _Tp(1) / _Tp(3); + const _Tp __c3 = _Tp(3) / _Tp(22); + const _Tp __c4 = _Tp(3) / _Tp(26); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + _Tp __pn = __p; + _Tp __sigma = _Tp(0); + _Tp __power4 = _Tp(1); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); + + _Tp __mu; + _Tp __xndev, __yndev, __zndev, __pndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + __zn + _Tp(2) * __pn) / _Tp(5); + __xndev = (__mu - __xn) / __mu; + __yndev = (__mu - __yn) / __mu; + __zndev = (__mu - __zn) / __mu; + __pndev = (__mu - __pn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + __epsilon = std::max(__epsilon, std::abs(__pndev)); + if (__epsilon < __errtol) + break; + const _Tp __xnroot = std::sqrt(__xn); + const _Tp __ynroot = std::sqrt(__yn); + const _Tp __znroot = std::sqrt(__zn); + const _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + const _Tp __alpha1 = __pn * (__xnroot + __ynroot + __znroot) + + __xnroot * __ynroot * __znroot; + const _Tp __alpha2 = __alpha1 * __alpha1; + const _Tp __beta = __pn * (__pn + __lambda) + * (__pn + __lambda); + __sigma += __power4 * __ellint_rc(__alpha2, __beta); + __power4 *= __c0; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + __pn = __c0 * (__pn + __lambda); + } + + _Tp __ea = __xndev * (__yndev + __zndev) + __yndev * __zndev; + _Tp __eb = __xndev * __yndev * __zndev; + _Tp __ec = __pndev * __pndev; + _Tp __e2 = __ea - _Tp(3) * __ec; + _Tp __e3 = __eb + _Tp(2) * __pndev * (__ea - __ec); + _Tp __s1 = _Tp(1) + __e2 * (-__c1 + _Tp(3) * __c3 * __e2 / _Tp(4) + - _Tp(3) * __c4 * __e3 / _Tp(2)); + _Tp __s2 = __eb * (__c2 / _Tp(2) + + __pndev * (-__c3 - __c3 + __pndev * __c4)); + _Tp __s3 = __pndev * __ea * (__c2 - __pndev * __c3) + - __c2 * __pndev * __ec; + + return _Tp(3) * __sigma + __power4 * (__s1 + __s2 + __s3) + / (__mu * std::sqrt(__mu)); + } + } +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_3(_Tp __k, _Tp __nu) + { + + if (__isnan(__k) || __isnan(__nu)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__nu == _Tp(1)) + return std::numeric_limits<_Tp>::infinity(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __comp_ellint_3.")); + else + { + const _Tp __kk = __k * __k; + + return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) + + __nu + * __ellint_rj(_Tp(0), _Tp(1) - __kk, _Tp(1), _Tp(1) - __nu) + / _Tp(3); + } + } +# 701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_3(_Tp __k, _Tp __nu, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__nu) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_3.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __kk = __k * __k; + const _Tp __s = std::sin(__phi_red); + const _Tp __ss = __s * __s; + const _Tp __sss = __ss * __s; + const _Tp __c = std::cos(__phi_red); + const _Tp __cc = __c * __c; + + const _Tp __Pi = __s + * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + + __nu * __sss + * __ellint_rj(__cc, _Tp(1) - __kk * __ss, _Tp(1), + _Tp(1) - __nu * __ss) / _Tp(3); + + if (__n == 0) + return __Pi; + else + return __Pi + _Tp(2) * __n * __comp_ellint_3(__k, __nu); + } + } + } + + + + + +} +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 1 3 +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + namespace __detail + { + template _Tp __expint_E1(_Tp); +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1_series(_Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + _Tp __term = _Tp(1); + _Tp __esum = _Tp(0); + _Tp __osum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= - __x / __i; + if (std::abs(__term) < __eps) + break; + if (__term >= _Tp(0)) + __esum += __term / __i; + else + __osum += __term / __i; + } + + return - __esum - __osum + - __numeric_constants<_Tp>::__gamma_e() - std::log(__x); + } +# 118 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1_asymp(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __esum = _Tp(1); + _Tp __osum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + _Tp __prev = __term; + __term *= - __i / __x; + if (std::abs(__term) > std::abs(__prev)) + break; + if (__term >= _Tp(0)) + __esum += __term; + else + __osum += __term; + } + + return std::exp(- __x) * (__esum + __osum) / __x; + } +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_series(unsigned int __n, _Tp __x) + { + const unsigned int __max_iter = 1000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const int __nm1 = __n - 1; + _Tp __ans = (__nm1 != 0 + ? _Tp(1) / __nm1 : -std::log(__x) + - __numeric_constants<_Tp>::__gamma_e()); + _Tp __fact = _Tp(1); + for (int __i = 1; __i <= __max_iter; ++__i) + { + __fact *= -__x / _Tp(__i); + _Tp __del; + if ( __i != __nm1 ) + __del = -__fact / _Tp(__i - __nm1); + else + { + _Tp __psi = -__numeric_constants<_Tp>::gamma_e(); + for (int __ii = 1; __ii <= __nm1; ++__ii) + __psi += _Tp(1) / _Tp(__ii); + __del = __fact * (__psi - std::log(__x)); + } + __ans += __del; + if (std::abs(__del) < __eps * std::abs(__ans)) + return __ans; + } + std::__throw_runtime_error(("Series summation failed " "in __expint_En_series.") + ); + } +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_cont_frac(unsigned int __n, _Tp __x) + { + const unsigned int __max_iter = 1000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __fp_min = std::numeric_limits<_Tp>::min(); + const int __nm1 = __n - 1; + _Tp __b = __x + _Tp(__n); + _Tp __c = _Tp(1) / __fp_min; + _Tp __d = _Tp(1) / __b; + _Tp __h = __d; + for ( unsigned int __i = 1; __i <= __max_iter; ++__i ) + { + _Tp __a = -_Tp(__i * (__nm1 + __i)); + __b += _Tp(2); + __d = _Tp(1) / (__a * __d + __b); + __c = __b + __a / __c; + const _Tp __del = __c * __d; + __h *= __del; + if (std::abs(__del - _Tp(1)) < __eps) + { + const _Tp __ans = __h * std::exp(-__x); + return __ans; + } + } + std::__throw_runtime_error(("Continued fraction failed " "in __expint_En_cont_frac.") + ); + } +# 246 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_recursion(unsigned int __n, _Tp __x) + { + _Tp __En; + _Tp __E1 = __expint_E1(__x); + if (__x < _Tp(__n)) + { + + __En = __E1; + for (unsigned int __j = 2; __j < __n; ++__j) + __En = (std::exp(-__x) - __x * __En) / _Tp(__j - 1); + } + else + { + + __En = _Tp(1); + const int __N = __n + 20; + _Tp __save = _Tp(0); + for (int __j = __N; __j > 0; --__j) + { + __En = (std::exp(-__x) - __j * __En) / __x; + if (__j == __n) + __save = __En; + } + _Tp __norm = __En / __E1; + __En /= __norm; + } + + return __En; + } +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei_series(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= __x / __i; + __sum += __term / __i; + if (__term < std::numeric_limits<_Tp>::epsilon() * __sum) + break; + } + + return __numeric_constants<_Tp>::__gamma_e() + __sum + std::log(__x); + } +# 321 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei_asymp(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + _Tp __prev = __term; + __term *= __i / __x; + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + if (__term >= __prev) + break; + __sum += __term; + } + + return std::exp(__x) * __sum / __x; + } +# 354 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei(_Tp __x) + { + if (__x < _Tp(0)) + return -__expint_E1(-__x); + else if (__x < -std::log(std::numeric_limits<_Tp>::epsilon())) + return __expint_Ei_series(__x); + else + return __expint_Ei_asymp(__x); + } +# 378 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1(_Tp __x) + { + if (__x < _Tp(0)) + return -__expint_Ei(-__x); + else if (__x < _Tp(1)) + return __expint_E1_series(__x); + else if (__x < _Tp(100)) + return __expint_En_cont_frac(1, __x); + else + return __expint_E1_asymp(__x); + } +# 408 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_asymp(unsigned int __n, _Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + for (unsigned int __i = 1; __i <= __n; ++__i) + { + _Tp __prev = __term; + __term *= -(__n - __i + 1) / __x; + if (std::abs(__term) > std::abs(__prev)) + break; + __sum += __term; + } + + return std::exp(-__x) * __sum / __x; + } +# 442 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_large_n(unsigned int __n, _Tp __x) + { + const _Tp __xpn = __x + __n; + const _Tp __xpn2 = __xpn * __xpn; + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + for (unsigned int __i = 1; __i <= __n; ++__i) + { + _Tp __prev = __term; + __term *= (__n - 2 * (__i - 1) * __x) / __xpn2; + if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return std::exp(-__x) * __sum / __xpn; + } +# 476 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint(unsigned int __n, _Tp __x) + { + + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__n <= 1 && __x == _Tp(0)) + return std::numeric_limits<_Tp>::infinity(); + else + { + _Tp __E0 = std::exp(__x) / __x; + if (__n == 0) + return __E0; + + _Tp __E1 = __expint_E1(__x); + if (__n == 1) + return __E1; + + if (__x == _Tp(0)) + return _Tp(1) / static_cast<_Tp>(__n - 1); + + _Tp __En = __expint_En_recursion(__n, __x); + + return __En; + } + } +# 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + inline _Tp + __expint(_Tp __x) + { + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __expint_Ei(__x); + } + } + + + + + +} +# 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 1 3 +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + namespace __detail + { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg_series(_Tp __a, _Tp __c, _Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + _Tp __term = _Tp(1); + _Tp __Fac = _Tp(1); + const unsigned int __max_iter = 100000; + unsigned int __i; + for (__i = 0; __i < __max_iter; ++__i) + { + __term *= (__a + _Tp(__i)) * __x + / ((__c + _Tp(__i)) * _Tp(1 + __i)); + if (std::abs(__term) < __eps) + { + break; + } + __Fac += __term; + } + if (__i == __max_iter) + std::__throw_runtime_error(("Series failed to converge " "in __conf_hyperg_series.") + ); + + return __Fac; + } +# 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg_luke(_Tp __a, _Tp __c, _Tp __xin) + { + const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); + const int __nmax = 20000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __x = -__xin; + const _Tp __x3 = __x * __x * __x; + const _Tp __t0 = __a / __c; + const _Tp __t1 = (__a + _Tp(1)) / (_Tp(2) * __c); + const _Tp __t2 = (__a + _Tp(2)) / (_Tp(2) * (__c + _Tp(1))); + _Tp __F = _Tp(1); + _Tp __prec; + + _Tp __Bnm3 = _Tp(1); + _Tp __Bnm2 = _Tp(1) + __t1 * __x; + _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); + + _Tp __Anm3 = _Tp(1); + _Tp __Anm2 = __Bnm2 - __t0 * __x; + _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x + + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; + + int __n = 3; + while(1) + { + _Tp __npam1 = _Tp(__n - 1) + __a; + _Tp __npcm1 = _Tp(__n - 1) + __c; + _Tp __npam2 = _Tp(__n - 2) + __a; + _Tp __npcm2 = _Tp(__n - 2) + __c; + _Tp __tnm1 = _Tp(2 * __n - 1); + _Tp __tnm3 = _Tp(2 * __n - 3); + _Tp __tnm5 = _Tp(2 * __n - 5); + _Tp __F1 = (_Tp(__n - 2) - __a) / (_Tp(2) * __tnm3 * __npcm1); + _Tp __F2 = (_Tp(__n) + __a) * __npam1 + / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); + _Tp __F3 = -__npam2 * __npam1 * (_Tp(__n - 2) - __a) + / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 + * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); + _Tp __E = -__npam1 * (_Tp(__n - 1) - __c) + / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); + + _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 + + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; + _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 + + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; + _Tp __r = __An / __Bn; + + __prec = std::abs((__F - __r) / __F); + __F = __r; + + if (__prec < __eps || __n > __nmax) + break; + + if (std::abs(__An) > __big || std::abs(__Bn) > __big) + { + __An /= __big; + __Bn /= __big; + __Anm1 /= __big; + __Bnm1 /= __big; + __Anm2 /= __big; + __Bnm2 /= __big; + __Anm3 /= __big; + __Bnm3 /= __big; + } + else if (std::abs(__An) < _Tp(1) / __big + || std::abs(__Bn) < _Tp(1) / __big) + { + __An *= __big; + __Bn *= __big; + __Anm1 *= __big; + __Bnm1 *= __big; + __Anm2 *= __big; + __Bnm2 *= __big; + __Anm3 *= __big; + __Bnm3 *= __big; + } + + ++__n; + __Bnm3 = __Bnm2; + __Bnm2 = __Bnm1; + __Bnm1 = __Bn; + __Anm3 = __Anm2; + __Anm2 = __Anm1; + __Anm1 = __An; + } + + if (__n >= __nmax) + std::__throw_runtime_error(("Iteration failed to converge " "in __conf_hyperg_luke.") + ); + + return __F; + } +# 227 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg(_Tp __a, _Tp __c, _Tp __x) + { + + const _Tp __c_nint = ::std::nearbyint(__c); + + + + if (__isnan(__a) || __isnan(__c) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__c_nint == __c && __c_nint <= 0) + return std::numeric_limits<_Tp>::infinity(); + else if (__a == _Tp(0)) + return _Tp(1); + else if (__c == __a) + return std::exp(__x); + else if (__x < _Tp(0)) + return __conf_hyperg_luke(__a, __c, __x); + else + return __conf_hyperg_series(__a, __c, __x); + } +# 271 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg_series(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + _Tp __term = _Tp(1); + _Tp __Fabc = _Tp(1); + const unsigned int __max_iter = 100000; + unsigned int __i; + for (__i = 0; __i < __max_iter; ++__i) + { + __term *= (__a + _Tp(__i)) * (__b + _Tp(__i)) * __x + / ((__c + _Tp(__i)) * _Tp(1 + __i)); + if (std::abs(__term) < __eps) + { + break; + } + __Fabc += __term; + } + if (__i == __max_iter) + std::__throw_runtime_error(("Series failed to converge " "in __hyperg_series.") + ); + + return __Fabc; + } + + + + + + + + template + _Tp + __hyperg_luke(_Tp __a, _Tp __b, _Tp __c, _Tp __xin) + { + const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); + const int __nmax = 20000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __x = -__xin; + const _Tp __x3 = __x * __x * __x; + const _Tp __t0 = __a * __b / __c; + const _Tp __t1 = (__a + _Tp(1)) * (__b + _Tp(1)) / (_Tp(2) * __c); + const _Tp __t2 = (__a + _Tp(2)) * (__b + _Tp(2)) + / (_Tp(2) * (__c + _Tp(1))); + + _Tp __F = _Tp(1); + + _Tp __Bnm3 = _Tp(1); + _Tp __Bnm2 = _Tp(1) + __t1 * __x; + _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); + + _Tp __Anm3 = _Tp(1); + _Tp __Anm2 = __Bnm2 - __t0 * __x; + _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x + + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; + + int __n = 3; + while (1) + { + const _Tp __npam1 = _Tp(__n - 1) + __a; + const _Tp __npbm1 = _Tp(__n - 1) + __b; + const _Tp __npcm1 = _Tp(__n - 1) + __c; + const _Tp __npam2 = _Tp(__n - 2) + __a; + const _Tp __npbm2 = _Tp(__n - 2) + __b; + const _Tp __npcm2 = _Tp(__n - 2) + __c; + const _Tp __tnm1 = _Tp(2 * __n - 1); + const _Tp __tnm3 = _Tp(2 * __n - 3); + const _Tp __tnm5 = _Tp(2 * __n - 5); + const _Tp __n2 = __n * __n; + const _Tp __F1 = (_Tp(3) * __n2 + (__a + __b - _Tp(6)) * __n + + _Tp(2) - __a * __b - _Tp(2) * (__a + __b)) + / (_Tp(2) * __tnm3 * __npcm1); + const _Tp __F2 = -(_Tp(3) * __n2 - (__a + __b + _Tp(6)) * __n + + _Tp(2) - __a * __b) * __npam1 * __npbm1 + / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); + const _Tp __F3 = (__npam2 * __npam1 * __npbm2 * __npbm1 + * (_Tp(__n - 2) - __a) * (_Tp(__n - 2) - __b)) + / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 + * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); + const _Tp __E = -__npam1 * __npbm1 * (_Tp(__n - 1) - __c) + / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); + + _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 + + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; + _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 + + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; + const _Tp __r = __An / __Bn; + + const _Tp __prec = std::abs((__F - __r) / __F); + __F = __r; + + if (__prec < __eps || __n > __nmax) + break; + + if (std::abs(__An) > __big || std::abs(__Bn) > __big) + { + __An /= __big; + __Bn /= __big; + __Anm1 /= __big; + __Bnm1 /= __big; + __Anm2 /= __big; + __Bnm2 /= __big; + __Anm3 /= __big; + __Bnm3 /= __big; + } + else if (std::abs(__An) < _Tp(1) / __big + || std::abs(__Bn) < _Tp(1) / __big) + { + __An *= __big; + __Bn *= __big; + __Anm1 *= __big; + __Bnm1 *= __big; + __Anm2 *= __big; + __Bnm2 *= __big; + __Anm3 *= __big; + __Bnm3 *= __big; + } + + ++__n; + __Bnm3 = __Bnm2; + __Bnm2 = __Bnm1; + __Bnm1 = __Bn; + __Anm3 = __Anm2; + __Anm2 = __Anm1; + __Anm1 = __An; + } + + if (__n >= __nmax) + std::__throw_runtime_error(("Iteration failed to converge " "in __hyperg_luke.") + ); + + return __F; + } +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg_reflect(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + const _Tp __d = __c - __a - __b; + const int __intd = std::floor(__d + _Tp(0.5L)); + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __toler = _Tp(1000) * __eps; + const _Tp __log_max = std::log(std::numeric_limits<_Tp>::max()); + const bool __d_integer = (std::abs(__d - __intd) < __toler); + + if (__d_integer) + { + const _Tp __ln_omx = std::log(_Tp(1) - __x); + const _Tp __ad = std::abs(__d); + _Tp __F1, __F2; + + _Tp __d1, __d2; + if (__d >= _Tp(0)) + { + __d1 = __d; + __d2 = _Tp(0); + } + else + { + __d1 = _Tp(0); + __d2 = __d; + } + + const _Tp __lng_c = __log_gamma(__c); + + + if (__ad < __eps) + { + + __F1 = _Tp(0); + } + else + { + + bool __ok_d1 = true; + _Tp __lng_ad, __lng_ad1, __lng_bd1; + try + { + __lng_ad = __log_gamma(__ad); + __lng_ad1 = __log_gamma(__a + __d1); + __lng_bd1 = __log_gamma(__b + __d1); + } + catch(...) + { + __ok_d1 = false; + } + + if (__ok_d1) + { + + + + _Tp __sum1 = _Tp(1); + _Tp __term = _Tp(1); + _Tp __ln_pre1 = __lng_ad + __lng_c + __d2 * __ln_omx + - __lng_ad1 - __lng_bd1; + + + + for (int __i = 1; __i < __ad; ++__i) + { + const int __j = __i - 1; + __term *= (__a + __d2 + __j) * (__b + __d2 + __j) + / (_Tp(1) + __d2 + __j) / __i * (_Tp(1) - __x); + __sum1 += __term; + } + + if (__ln_pre1 > __log_max) + std::__throw_runtime_error(("Overflow of gamma functions" " in __hyperg_luke.") + ); + else + __F1 = std::exp(__ln_pre1) * __sum1; + } + else + { + + + __F1 = _Tp(0); + } + } + + + bool __ok_d2 = true; + _Tp __lng_ad2, __lng_bd2; + try + { + __lng_ad2 = __log_gamma(__a + __d2); + __lng_bd2 = __log_gamma(__b + __d2); + } + catch(...) + { + __ok_d2 = false; + } + + if (__ok_d2) + { + + + const int __maxiter = 2000; + const _Tp __psi_1 = -__numeric_constants<_Tp>::__gamma_e(); + const _Tp __psi_1pd = __psi(_Tp(1) + __ad); + const _Tp __psi_apd1 = __psi(__a + __d1); + const _Tp __psi_bpd1 = __psi(__b + __d1); + + _Tp __psi_term = __psi_1 + __psi_1pd - __psi_apd1 + - __psi_bpd1 - __ln_omx; + _Tp __fact = _Tp(1); + _Tp __sum2 = __psi_term; + _Tp __ln_pre2 = __lng_c + __d1 * __ln_omx + - __lng_ad2 - __lng_bd2; + + + int __j; + for (__j = 1; __j < __maxiter; ++__j) + { + + + const _Tp __term1 = _Tp(1) / _Tp(__j) + + _Tp(1) / (__ad + __j); + const _Tp __term2 = _Tp(1) / (__a + __d1 + _Tp(__j - 1)) + + _Tp(1) / (__b + __d1 + _Tp(__j - 1)); + __psi_term += __term1 - __term2; + __fact *= (__a + __d1 + _Tp(__j - 1)) + * (__b + __d1 + _Tp(__j - 1)) + / ((__ad + __j) * __j) * (_Tp(1) - __x); + const _Tp __delta = __fact * __psi_term; + __sum2 += __delta; + if (std::abs(__delta) < __eps * std::abs(__sum2)) + break; + } + if (__j == __maxiter) + std::__throw_runtime_error(("Sum F2 failed to converge " "in __hyperg_reflect") + ); + + if (__sum2 == _Tp(0)) + __F2 = _Tp(0); + else + __F2 = std::exp(__ln_pre2) * __sum2; + } + else + { + + + __F2 = _Tp(0); + } + + const _Tp __sgn_2 = (__intd % 2 == 1 ? -_Tp(1) : _Tp(1)); + const _Tp __F = __F1 + __sgn_2 * __F2; + + return __F; + } + else + { + + + + + bool __ok1 = true; + _Tp __sgn_g1ca = _Tp(0), __ln_g1ca = _Tp(0); + _Tp __sgn_g1cb = _Tp(0), __ln_g1cb = _Tp(0); + try + { + __sgn_g1ca = __log_gamma_sign(__c - __a); + __ln_g1ca = __log_gamma(__c - __a); + __sgn_g1cb = __log_gamma_sign(__c - __b); + __ln_g1cb = __log_gamma(__c - __b); + } + catch(...) + { + __ok1 = false; + } + + bool __ok2 = true; + _Tp __sgn_g2a = _Tp(0), __ln_g2a = _Tp(0); + _Tp __sgn_g2b = _Tp(0), __ln_g2b = _Tp(0); + try + { + __sgn_g2a = __log_gamma_sign(__a); + __ln_g2a = __log_gamma(__a); + __sgn_g2b = __log_gamma_sign(__b); + __ln_g2b = __log_gamma(__b); + } + catch(...) + { + __ok2 = false; + } + + const _Tp __sgn_gc = __log_gamma_sign(__c); + const _Tp __ln_gc = __log_gamma(__c); + const _Tp __sgn_gd = __log_gamma_sign(__d); + const _Tp __ln_gd = __log_gamma(__d); + const _Tp __sgn_gmd = __log_gamma_sign(-__d); + const _Tp __ln_gmd = __log_gamma(-__d); + + const _Tp __sgn1 = __sgn_gc * __sgn_gd * __sgn_g1ca * __sgn_g1cb; + const _Tp __sgn2 = __sgn_gc * __sgn_gmd * __sgn_g2a * __sgn_g2b; + + _Tp __pre1, __pre2; + if (__ok1 && __ok2) + { + _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; + _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b + + __d * std::log(_Tp(1) - __x); + if (__ln_pre1 < __log_max && __ln_pre2 < __log_max) + { + __pre1 = std::exp(__ln_pre1); + __pre2 = std::exp(__ln_pre2); + __pre1 *= __sgn1; + __pre2 *= __sgn2; + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else if (__ok1 && !__ok2) + { + _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; + if (__ln_pre1 < __log_max) + { + __pre1 = std::exp(__ln_pre1); + __pre1 *= __sgn1; + __pre2 = _Tp(0); + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else if (!__ok1 && __ok2) + { + _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b + + __d * std::log(_Tp(1) - __x); + if (__ln_pre2 < __log_max) + { + __pre1 = _Tp(0); + __pre2 = std::exp(__ln_pre2); + __pre2 *= __sgn2; + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else + { + __pre1 = _Tp(0); + __pre2 = _Tp(0); + std::__throw_runtime_error(("Underflow of gamma functions " "in __hyperg_reflect") + ); + } + + const _Tp __F1 = __hyperg_series(__a, __b, _Tp(1) - __d, + _Tp(1) - __x); + const _Tp __F2 = __hyperg_series(__c - __a, __c - __b, _Tp(1) + __d, + _Tp(1) - __x); + + const _Tp __F = __pre1 * __F1 + __pre2 * __F2; + + return __F; + } + } +# 728 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + + const _Tp __a_nint = ::std::nearbyint(__a); + const _Tp __b_nint = ::std::nearbyint(__b); + const _Tp __c_nint = ::std::nearbyint(__c); + + + + + + const _Tp __toler = _Tp(1000) * std::numeric_limits<_Tp>::epsilon(); + if (std::abs(__x) >= _Tp(1)) + std::__throw_domain_error(("Argument outside unit circle " "in __hyperg.") + ); + else if (__isnan(__a) || __isnan(__b) + || __isnan(__c) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__c_nint == __c && __c_nint <= _Tp(0)) + return std::numeric_limits<_Tp>::infinity(); + else if (std::abs(__c - __b) < __toler || std::abs(__c - __a) < __toler) + return std::pow(_Tp(1) - __x, __c - __a - __b); + else if (__a >= _Tp(0) && __b >= _Tp(0) && __c >= _Tp(0) + && __x >= _Tp(0) && __x < _Tp(0.995L)) + return __hyperg_series(__a, __b, __c, __x); + else if (std::abs(__a) < _Tp(10) && std::abs(__b) < _Tp(10)) + { + + + if (__a < _Tp(0) && std::abs(__a - __a_nint) < __toler) + return __hyperg_series(__a_nint, __b, __c, __x); + else if (__b < _Tp(0) && std::abs(__b - __b_nint) < __toler) + return __hyperg_series(__a, __b_nint, __c, __x); + else if (__x < -_Tp(0.25L)) + return __hyperg_luke(__a, __b, __c, __x); + else if (__x < _Tp(0.5L)) + return __hyperg_series(__a, __b, __c, __x); + else + if (std::abs(__c) > _Tp(10)) + return __hyperg_series(__a, __b, __c, __x); + else + return __hyperg_reflect(__a, __b, __c, __x); + } + else + return __hyperg_luke(__a, __b, __c, __x); + } + } + + + + + + +} +# 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + namespace __detail + { +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __poly_legendre_p(unsigned int __l, _Tp __x) + { + + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == +_Tp(1)) + return +_Tp(1); + else if (__x == -_Tp(1)) + return (__l % 2 == 1 ? -_Tp(1) : +_Tp(1)); + else + { + _Tp __p_lm2 = _Tp(1); + if (__l == 0) + return __p_lm2; + + _Tp __p_lm1 = __x; + if (__l == 1) + return __p_lm1; + + _Tp __p_l = 0; + for (unsigned int __ll = 2; __ll <= __l; ++__ll) + { + + + __p_l = _Tp(2) * __x * __p_lm1 - __p_lm2 + - (__x * __p_lm1 - __p_lm2) / _Tp(__ll); + __p_lm2 = __p_lm1; + __p_lm1 = __p_l; + } + + return __p_l; + } + } +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __assoc_legendre_p(unsigned int __l, unsigned int __m, _Tp __x, + _Tp __phase = _Tp(+1)) + { + + if (__m > __l) + return _Tp(0); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__m == 0) + return __poly_legendre_p(__l, __x); + else + { + _Tp __p_mm = _Tp(1); + if (__m > 0) + { + + + _Tp __root = std::sqrt(_Tp(1) - __x) * std::sqrt(_Tp(1) + __x); + _Tp __fact = _Tp(1); + for (unsigned int __i = 1; __i <= __m; ++__i) + { + __p_mm *= __phase * __fact * __root; + __fact += _Tp(2); + } + } + if (__l == __m) + return __p_mm; + + _Tp __p_mp1m = _Tp(2 * __m + 1) * __x * __p_mm; + if (__l == __m + 1) + return __p_mp1m; + + _Tp __p_lm2m = __p_mm; + _Tp __P_lm1m = __p_mp1m; + _Tp __p_lm = _Tp(0); + for (unsigned int __j = __m + 2; __j <= __l; ++__j) + { + __p_lm = (_Tp(2 * __j - 1) * __x * __P_lm1m + - _Tp(__j + __m - 1) * __p_lm2m) / _Tp(__j - __m); + __p_lm2m = __P_lm1m; + __P_lm1m = __p_lm; + } + + return __p_lm; + } + } +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) + { + if (__isnan(__theta)) + return std::numeric_limits<_Tp>::quiet_NaN(); + + const _Tp __x = std::cos(__theta); + + if (__m > __l) + return _Tp(0); + else if (__m == 0) + { + _Tp __P = __poly_legendre_p(__l, __x); + _Tp __fact = std::sqrt(_Tp(2 * __l + 1) + / (_Tp(4) * __numeric_constants<_Tp>::__pi())); + __P *= __fact; + return __P; + } + else if (__x == _Tp(1) || __x == -_Tp(1)) + { + + return _Tp(0); + } + else + { + + + + + + const _Tp __sgn = ( __m % 2 == 1 ? -_Tp(1) : _Tp(1)); + const _Tp __y_mp1m_factor = __x * std::sqrt(_Tp(2 * __m + 3)); + + const _Tp __lncirc = ::std::log1p(-__x * __x); + + + + + + const _Tp __lnpoch = ::std::lgamma(_Tp(__m + _Tp(0.5L))) + - ::std::lgamma(_Tp(__m)); + + + + + const _Tp __lnpre_val = + -_Tp(0.25L) * __numeric_constants<_Tp>::__lnpi() + + _Tp(0.5L) * (__lnpoch + __m * __lncirc); + const _Tp __sr = std::sqrt((_Tp(2) + _Tp(1) / __m) + / (_Tp(4) * __numeric_constants<_Tp>::__pi())); + _Tp __y_mm = __sgn * __sr * std::exp(__lnpre_val); + _Tp __y_mp1m = __y_mp1m_factor * __y_mm; + + if (__l == __m) + return __y_mm; + else if (__l == __m + 1) + return __y_mp1m; + else + { + _Tp __y_lm = _Tp(0); + + + for (unsigned int __ll = __m + 2; __ll <= __l; ++__ll) + { + const _Tp __rat1 = _Tp(__ll - __m) / _Tp(__ll + __m); + const _Tp __rat2 = _Tp(__ll - __m - 1) / _Tp(__ll + __m - 1); + const _Tp __fact1 = std::sqrt(__rat1 * _Tp(2 * __ll + 1) + * _Tp(2 * __ll - 1)); + const _Tp __fact2 = std::sqrt(__rat1 * __rat2 * _Tp(2 * __ll + 1) + / _Tp(2 * __ll - 3)); + __y_lm = (__x * __y_mp1m * __fact1 + - (__ll + __m - 1) * __y_mm * __fact2) / _Tp(__ll - __m); + __y_mm = __y_mp1m; + __y_mp1m = __y_lm; + } + + return __y_lm; + } + } + } + } + + + + + + +} +# 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 1 3 +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + namespace __detail + { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __bessel_ik(_Tp __nu, _Tp __x, + _Tp & __Inu, _Tp & __Knu, _Tp & __Ipnu, _Tp & __Kpnu) + { + if (__x == _Tp(0)) + { + if (__nu == _Tp(0)) + { + __Inu = _Tp(1); + __Ipnu = _Tp(0); + } + else if (__nu == _Tp(1)) + { + __Inu = _Tp(0); + __Ipnu = _Tp(0.5L); + } + else + { + __Inu = _Tp(0); + __Ipnu = _Tp(0); + } + __Knu = std::numeric_limits<_Tp>::infinity(); + __Kpnu = -std::numeric_limits<_Tp>::infinity(); + return; + } + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __fp_min = _Tp(10) * std::numeric_limits<_Tp>::epsilon(); + const int __max_iter = 15000; + const _Tp __x_min = _Tp(2); + + const int __nl = static_cast(__nu + _Tp(0.5L)); + + const _Tp __mu = __nu - __nl; + const _Tp __mu2 = __mu * __mu; + const _Tp __xi = _Tp(1) / __x; + const _Tp __xi2 = _Tp(2) * __xi; + _Tp __h = __nu * __xi; + if ( __h < __fp_min ) + __h = __fp_min; + _Tp __b = __xi2 * __nu; + _Tp __d = _Tp(0); + _Tp __c = __h; + int __i; + for ( __i = 1; __i <= __max_iter; ++__i ) + { + __b += __xi2; + __d = _Tp(1) / (__b + __d); + __c = __b + _Tp(1) / __c; + const _Tp __del = __c * __d; + __h *= __del; + if (std::abs(__del - _Tp(1)) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Argument x too large " "in __bessel_ik; " "try asymptotic expansion.") + + ); + _Tp __Inul = __fp_min; + _Tp __Ipnul = __h * __Inul; + _Tp __Inul1 = __Inul; + _Tp __Ipnu1 = __Ipnul; + _Tp __fact = __nu * __xi; + for (int __l = __nl; __l >= 1; --__l) + { + const _Tp __Inutemp = __fact * __Inul + __Ipnul; + __fact -= __xi; + __Ipnul = __fact * __Inutemp + __Inul; + __Inul = __Inutemp; + } + _Tp __f = __Ipnul / __Inul; + _Tp __Kmu, __Knu1; + if (__x < __x_min) + { + const _Tp __x2 = __x / _Tp(2); + const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; + const _Tp __fact = (std::abs(__pimu) < __eps + ? _Tp(1) : __pimu / std::sin(__pimu)); + _Tp __d = -std::log(__x2); + _Tp __e = __mu * __d; + const _Tp __fact2 = (std::abs(__e) < __eps + ? _Tp(1) : std::sinh(__e) / __e); + _Tp __gam1, __gam2, __gampl, __gammi; + __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); + _Tp __ff = __fact + * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); + _Tp __sum = __ff; + __e = std::exp(__e); + _Tp __p = __e / (_Tp(2) * __gampl); + _Tp __q = _Tp(1) / (_Tp(2) * __e * __gammi); + _Tp __c = _Tp(1); + __d = __x2 * __x2; + _Tp __sum1 = __p; + int __i; + for (__i = 1; __i <= __max_iter; ++__i) + { + __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); + __c *= __d / __i; + __p /= __i - __mu; + __q /= __i + __mu; + const _Tp __del = __c * __ff; + __sum += __del; + const _Tp __del1 = __c * (__p - __i * __ff); + __sum1 += __del1; + if (std::abs(__del) < __eps * std::abs(__sum)) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Bessel k series failed to converge " "in __bessel_ik.") + ); + __Kmu = __sum; + __Knu1 = __sum1 * __xi2; + } + else + { + _Tp __b = _Tp(2) * (_Tp(1) + __x); + _Tp __d = _Tp(1) / __b; + _Tp __delh = __d; + _Tp __h = __delh; + _Tp __q1 = _Tp(0); + _Tp __q2 = _Tp(1); + _Tp __a1 = _Tp(0.25L) - __mu2; + _Tp __q = __c = __a1; + _Tp __a = -__a1; + _Tp __s = _Tp(1) + __q * __delh; + int __i; + for (__i = 2; __i <= __max_iter; ++__i) + { + __a -= 2 * (__i - 1); + __c = -__a * __c / __i; + const _Tp __qnew = (__q1 - __b * __q2) / __a; + __q1 = __q2; + __q2 = __qnew; + __q += __c * __qnew; + __b += _Tp(2); + __d = _Tp(1) / (__b + __a * __d); + __delh = (__b * __d - _Tp(1)) * __delh; + __h += __delh; + const _Tp __dels = __q * __delh; + __s += __dels; + if ( std::abs(__dels / __s) < __eps ) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Steed's method failed " "in __bessel_ik.") + ); + __h = __a1 * __h; + __Kmu = std::sqrt(__numeric_constants<_Tp>::__pi() / (_Tp(2) * __x)) + * std::exp(-__x) / __s; + __Knu1 = __Kmu * (__mu + __x + _Tp(0.5L) - __h) * __xi; + } + + _Tp __Kpmu = __mu * __xi * __Kmu - __Knu1; + _Tp __Inumu = __xi / (__f * __Kmu - __Kpmu); + __Inu = __Inumu * __Inul1 / __Inul; + __Ipnu = __Inumu * __Ipnu1 / __Inul; + for ( __i = 1; __i <= __nl; ++__i ) + { + const _Tp __Knutemp = (__mu + __i) * __xi2 * __Knu1 + __Kmu; + __Kmu = __Knu1; + __Knu1 = __Knutemp; + } + __Knu = __Kmu; + __Kpnu = __nu * __xi * __Kmu - __Knu1; + + return; + } +# 267 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + _Tp + __cyl_bessel_i(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_i.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) + return __cyl_bessel_ij_series(__nu, __x, +_Tp(1), 200); + else + { + _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + return __I_nu; + } + } +# 303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + _Tp + __cyl_bessel_k(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_k.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + { + _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + return __K_nu; + } + } +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __sph_bessel_ik(unsigned int __n, _Tp __x, + _Tp & __i_n, _Tp & __k_n, _Tp & __ip_n, _Tp & __kp_n) + { + const _Tp __nu = _Tp(__n) + _Tp(0.5L); + + _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + + const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() + / std::sqrt(__x); + + __i_n = __factor * __I_nu; + __k_n = __factor * __K_nu; + __ip_n = __factor * __Ip_nu - __i_n / (_Tp(2) * __x); + __kp_n = __factor * __Kp_nu - __k_n / (_Tp(2) * __x); + + return; + } +# 373 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __airy(_Tp __x, _Tp & __Ai, _Tp & __Bi, _Tp & __Aip, _Tp & __Bip) + { + const _Tp __absx = std::abs(__x); + const _Tp __rootx = std::sqrt(__absx); + const _Tp __z = _Tp(2) * __absx * __rootx / _Tp(3); + const _Tp _S_inf = std::numeric_limits<_Tp>::infinity(); + + if (__isnan(__x)) + __Bip = __Aip = __Bi = __Ai = std::numeric_limits<_Tp>::quiet_NaN(); + else if (__z == _S_inf) + { + __Aip = __Ai = _Tp(0); + __Bip = __Bi = _S_inf; + } + else if (__z == -_S_inf) + __Bip = __Aip = __Bi = __Ai = _Tp(0); + else if (__x > _Tp(0)) + { + _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; + + __bessel_ik(_Tp(1) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + __Ai = __rootx * __K_nu + / (__numeric_constants<_Tp>::__sqrt3() + * __numeric_constants<_Tp>::__pi()); + __Bi = __rootx * (__K_nu / __numeric_constants<_Tp>::__pi() + + _Tp(2) * __I_nu / __numeric_constants<_Tp>::__sqrt3()); + + __bessel_ik(_Tp(2) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + __Aip = -__x * __K_nu + / (__numeric_constants<_Tp>::__sqrt3() + * __numeric_constants<_Tp>::__pi()); + __Bip = __x * (__K_nu / __numeric_constants<_Tp>::__pi() + + _Tp(2) * __I_nu + / __numeric_constants<_Tp>::__sqrt3()); + } + else if (__x < _Tp(0)) + { + _Tp __J_nu, __Jp_nu, __N_nu, __Np_nu; + + __bessel_jn(_Tp(1) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); + __Ai = __rootx * (__J_nu + - __N_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); + __Bi = -__rootx * (__N_nu + + __J_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); + + __bessel_jn(_Tp(2) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); + __Aip = __absx * (__N_nu / __numeric_constants<_Tp>::__sqrt3() + + __J_nu) / _Tp(2); + __Bip = __absx * (__J_nu / __numeric_constants<_Tp>::__sqrt3() + - __N_nu) / _Tp(2); + } + else + { + + + + __Ai = _Tp(0.35502805388781723926L); + __Bi = __Ai * __numeric_constants<_Tp>::__sqrt3(); + + + + + __Aip = -_Tp(0.25881940379280679840L); + __Bip = -__Aip * __numeric_constants<_Tp>::__sqrt3(); + } + + return; + } + } + + + + + +} +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + namespace __detail + { +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + template + _Tp + __poly_hermite_recursion(unsigned int __n, _Tp __x) + { + + _Tp __H_0 = 1; + if (__n == 0) + return __H_0; + + + _Tp __H_1 = 2 * __x; + if (__n == 1) + return __H_1; + + + _Tp __H_n, __H_nm1, __H_nm2; + unsigned int __i; + for (__H_nm2 = __H_0, __H_nm1 = __H_1, __i = 2; __i <= __n; ++__i) + { + __H_n = 2 * (__x * __H_nm1 - (__i - 1) * __H_nm2); + __H_nm2 = __H_nm1; + __H_nm1 = __H_n; + } + + return __H_n; + } +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + template + inline _Tp + __poly_hermite(unsigned int __n, _Tp __x) + { + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __poly_hermite_recursion(__n, __x); + } + } + + + + + +} +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 1 3 +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + namespace __detail + { +# 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_large_n(unsigned __n, _Tpa __alpha1, _Tp __x) + { + const _Tp __a = -_Tp(__n); + const _Tp __b = _Tp(__alpha1) + _Tp(1); + const _Tp __eta = _Tp(2) * __b - _Tp(4) * __a; + const _Tp __cos2th = __x / __eta; + const _Tp __sin2th = _Tp(1) - __cos2th; + const _Tp __th = std::acos(std::sqrt(__cos2th)); + const _Tp __pre_h = __numeric_constants<_Tp>::__pi_2() + * __numeric_constants<_Tp>::__pi_2() + * __eta * __eta * __cos2th * __sin2th; + + + const _Tp __lg_b = ::std::lgamma(_Tp(__n) + __b); + const _Tp __lnfact = ::std::lgamma(_Tp(__n + 1)); + + + + + + _Tp __pre_term1 = _Tp(0.5L) * (_Tp(1) - __b) + * std::log(_Tp(0.25L) * __x * __eta); + _Tp __pre_term2 = _Tp(0.25L) * std::log(__pre_h); + _Tp __lnpre = __lg_b - __lnfact + _Tp(0.5L) * __x + + __pre_term1 - __pre_term2; + _Tp __ser_term1 = std::sin(__a * __numeric_constants<_Tp>::__pi()); + _Tp __ser_term2 = std::sin(_Tp(0.25L) * __eta + * (_Tp(2) * __th + - std::sin(_Tp(2) * __th)) + + __numeric_constants<_Tp>::__pi_4()); + _Tp __ser = __ser_term1 + __ser_term2; + + return std::exp(__lnpre) * __ser; + } +# 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_hyperg(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + const _Tp __b = _Tp(__alpha1) + _Tp(1); + const _Tp __mx = -__x; + const _Tp __tc_sgn = (__x < _Tp(0) ? _Tp(1) + : ((__n % 2 == 1) ? -_Tp(1) : _Tp(1))); + + _Tp __tc = _Tp(1); + const _Tp __ax = std::abs(__x); + for (unsigned int __k = 1; __k <= __n; ++__k) + __tc *= (__ax / __k); + + _Tp __term = __tc * __tc_sgn; + _Tp __sum = __term; + for (int __k = int(__n) - 1; __k >= 0; --__k) + { + __term *= ((__b + _Tp(__k)) / _Tp(int(__n) - __k)) + * _Tp(__k + 1) / __mx; + __sum += __term; + } + + return __sum; + } +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_recursion(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + + _Tp __l_0 = _Tp(1); + if (__n == 0) + return __l_0; + + + _Tp __l_1 = -__x + _Tp(1) + _Tp(__alpha1); + if (__n == 1) + return __l_1; + + + _Tp __l_n2 = __l_0; + _Tp __l_n1 = __l_1; + _Tp __l_n = _Tp(0); + for (unsigned int __nn = 2; __nn <= __n; ++__nn) + { + __l_n = (_Tp(2 * __nn - 1) + _Tp(__alpha1) - __x) + * __l_n1 / _Tp(__nn) + - (_Tp(__nn - 1) + _Tp(__alpha1)) * __l_n2 / _Tp(__nn); + __l_n2 = __l_n1; + __l_n1 = __l_n; + } + + return __l_n; + } +# 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Negative argument " "in __poly_laguerre.") + ); + + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__n == 0) + return _Tp(1); + else if (__n == 1) + return _Tp(1) + _Tp(__alpha1) - __x; + else if (__x == _Tp(0)) + { + _Tp __prod = _Tp(__alpha1) + _Tp(1); + for (unsigned int __k = 2; __k <= __n; ++__k) + __prod *= (_Tp(__alpha1) + _Tp(__k)) / _Tp(__k); + return __prod; + } + else if (__n > 10000000 && _Tp(__alpha1) > -_Tp(1) + && __x < _Tp(2) * (_Tp(__alpha1) + _Tp(1)) + _Tp(4 * __n)) + return __poly_laguerre_large_n(__n, __alpha1, __x); + else if (_Tp(__alpha1) >= _Tp(0) + || (__x > _Tp(0) && _Tp(__alpha1) < -_Tp(__n + 1))) + return __poly_laguerre_recursion(__n, __alpha1, __x); + else + return __poly_laguerre_hyperg(__n, __alpha1, __x); + } +# 296 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) + { return __poly_laguerre(__n, __m, __x); } +# 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __laguerre(unsigned int __n, _Tp __x) + { return __poly_laguerre(__n, 0, __x); } + } + + + + + + +} +# 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + namespace __detail + { +# 78 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_sum(_Tp __s) + { + + if (__s < _Tp(1)) + std::__throw_domain_error(("Bad argument in zeta sum.")); + + const unsigned int max_iter = 10000; + _Tp __zeta = _Tp(0); + for (unsigned int __k = 1; __k < max_iter; ++__k) + { + _Tp __term = std::pow(static_cast<_Tp>(__k), -__s); + if (__term < std::numeric_limits<_Tp>::epsilon()) + { + break; + } + __zeta += __term; + } + + return __zeta; + } +# 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_alt(_Tp __s) + { + _Tp __sgn = _Tp(1); + _Tp __zeta = _Tp(0); + for (unsigned int __i = 1; __i < 10000000; ++__i) + { + _Tp __term = __sgn / std::pow(__i, __s); + if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) + break; + __zeta += __term; + __sgn *= _Tp(-1); + } + __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); + + return __zeta; + } +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_glob(_Tp __s) + { + _Tp __zeta = _Tp(0); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + + + if (__s < _Tp(0)) + { + + if (::std::fmod(__s,_Tp(2)) == _Tp(0)) + return _Tp(0); + else + + { + _Tp __zeta = __riemann_zeta_glob(_Tp(1) - __s); + __zeta *= std::pow(_Tp(2) + * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * std::exp(::std::lgamma(_Tp(1) - __s)) + + + + / __numeric_constants<_Tp>::__pi(); + return __zeta; + } + } + + _Tp __num = _Tp(0.5L); + const unsigned int __maxit = 10000; + for (unsigned int __i = 0; __i < __maxit; ++__i) + { + bool __punt = false; + _Tp __sgn = _Tp(1); + _Tp __term = _Tp(0); + for (unsigned int __j = 0; __j <= __i; ++__j) + { + + _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) + - ::std::lgamma(_Tp(1 + __j)) + - ::std::lgamma(_Tp(1 + __i - __j)); + + + + + + if (__bincoeff > __max_bincoeff) + { + + __punt = true; + break; + } + __bincoeff = std::exp(__bincoeff); + __term += __sgn * __bincoeff * std::pow(_Tp(1 + __j), -__s); + __sgn *= _Tp(-1); + } + if (__punt) + break; + __term *= __num; + __zeta += __term; + if (std::abs(__term/__zeta) < __eps) + break; + __num *= _Tp(0.5L); + } + + __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); + + return __zeta; + } +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_product(_Tp __s) + { + static const _Tp __prime[] = { + _Tp(2), _Tp(3), _Tp(5), _Tp(7), _Tp(11), _Tp(13), _Tp(17), _Tp(19), + _Tp(23), _Tp(29), _Tp(31), _Tp(37), _Tp(41), _Tp(43), _Tp(47), + _Tp(53), _Tp(59), _Tp(61), _Tp(67), _Tp(71), _Tp(73), _Tp(79), + _Tp(83), _Tp(89), _Tp(97), _Tp(101), _Tp(103), _Tp(107), _Tp(109) + }; + static const unsigned int __num_primes = sizeof(__prime) / sizeof(_Tp); + + _Tp __zeta = _Tp(1); + for (unsigned int __i = 0; __i < __num_primes; ++__i) + { + const _Tp __fact = _Tp(1) - std::pow(__prime[__i], -__s); + __zeta *= __fact; + if (_Tp(1) - __fact < std::numeric_limits<_Tp>::epsilon()) + break; + } + + __zeta = _Tp(1) / __zeta; + + return __zeta; + } +# 293 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta(_Tp __s) + { + if (__isnan(__s)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__s == _Tp(1)) + return std::numeric_limits<_Tp>::infinity(); + else if (__s < -_Tp(19)) + { + _Tp __zeta = __riemann_zeta_product(_Tp(1) - __s); + __zeta *= std::pow(_Tp(2) * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * std::exp(::std::lgamma(_Tp(1) - __s)) + + + + / __numeric_constants<_Tp>::__pi(); + return __zeta; + } + else if (__s < _Tp(20)) + { + + bool __glob = true; + if (__glob) + return __riemann_zeta_glob(__s); + else + { + if (__s > _Tp(1)) + return __riemann_zeta_sum(__s); + else + { + _Tp __zeta = std::pow(_Tp(2) + * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * ::std::tgamma(_Tp(1) - __s) + + + + * __riemann_zeta_sum(_Tp(1) - __s); + return __zeta; + } + } + } + else + return __riemann_zeta_product(__s); + } +# 365 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __hurwitz_zeta_glob(_Tp __a, _Tp __s) + { + _Tp __zeta = _Tp(0); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + const unsigned int __maxit = 10000; + for (unsigned int __i = 0; __i < __maxit; ++__i) + { + bool __punt = false; + _Tp __sgn = _Tp(1); + _Tp __term = _Tp(0); + for (unsigned int __j = 0; __j <= __i; ++__j) + { + + _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) + - ::std::lgamma(_Tp(1 + __j)) + - ::std::lgamma(_Tp(1 + __i - __j)); + + + + + + if (__bincoeff > __max_bincoeff) + { + + __punt = true; + break; + } + __bincoeff = std::exp(__bincoeff); + __term += __sgn * __bincoeff * std::pow(_Tp(__a + __j), -__s); + __sgn *= _Tp(-1); + } + if (__punt) + break; + __term /= _Tp(__i + 1); + if (std::abs(__term / __zeta) < __eps) + break; + __zeta += __term; + } + + __zeta /= __s - _Tp(1); + + return __zeta; + } +# 430 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + inline _Tp + __hurwitz_zeta(_Tp __a, _Tp __s) + { return __hurwitz_zeta_glob(__a, __s); } + } + + + + + + +} +# 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 203 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + assoc_laguerref(unsigned int __n, unsigned int __m, float __x) + { return __detail::__assoc_laguerre(__n, __m, __x); } + + + + + + + + inline long double + assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x) + { return __detail::__assoc_laguerre(__n, __m, __x); } +# 248 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__assoc_laguerre<__type>(__n, __m, __x); + } +# 264 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + assoc_legendref(unsigned int __l, unsigned int __m, float __x) + { return __detail::__assoc_legendre_p(__l, __m, __x); } + + + + + + + inline long double + assoc_legendrel(unsigned int __l, unsigned int __m, long double __x) + { return __detail::__assoc_legendre_p(__l, __m, __x); } +# 294 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__assoc_legendre_p<__type>(__l, __m, __x); + } +# 309 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + betaf(float __a, float __b) + { return __detail::__beta(__a, __b); } + + + + + + + + inline long double + betal(long double __a, long double __b) + { return __detail::__beta(__a, __b); } +# 339 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type + beta(_Tpa __a, _Tpb __b) + { + typedef typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type __type; + return __detail::__beta<__type>(__a, __b); + } +# 355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_1f(float __k) + { return __detail::__comp_ellint_1(__k); } + + + + + + + + inline long double + comp_ellint_1l(long double __k) + { return __detail::__comp_ellint_1(__k); } +# 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + comp_ellint_1(_Tp __k) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__comp_ellint_1<__type>(__k); + } +# 403 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_2f(float __k) + { return __detail::__comp_ellint_2(__k); } + + + + + + + + inline long double + comp_ellint_2l(long double __k) + { return __detail::__comp_ellint_2(__k); } +# 434 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + comp_ellint_2(_Tp __k) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__comp_ellint_2<__type>(__k); + } +# 450 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_3f(float __k, float __nu) + { return __detail::__comp_ellint_3(__k, __nu); } + + + + + + + + inline long double + comp_ellint_3l(long double __k, long double __nu) + { return __detail::__comp_ellint_3(__k, __nu); } +# 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type + comp_ellint_3(_Tp __k, _Tpn __nu) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type; + return __detail::__comp_ellint_3<__type>(__k, __nu); + } +# 501 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_if(float __nu, float __x) + { return __detail::__cyl_bessel_i(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_il(long double __nu, long double __x) + { return __detail::__cyl_bessel_i(__nu, __x); } +# 531 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_i(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_i<__type>(__nu, __x); + } +# 547 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_jf(float __nu, float __x) + { return __detail::__cyl_bessel_j(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_jl(long double __nu, long double __x) + { return __detail::__cyl_bessel_j(__nu, __x); } +# 577 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_j(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_j<__type>(__nu, __x); + } +# 593 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_kf(float __nu, float __x) + { return __detail::__cyl_bessel_k(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_kl(long double __nu, long double __x) + { return __detail::__cyl_bessel_k(__nu, __x); } +# 629 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_k(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_k<__type>(__nu, __x); + } +# 645 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_neumannf(float __nu, float __x) + { return __detail::__cyl_neumann_n(__nu, __x); } + + + + + + + + inline long double + cyl_neumannl(long double __nu, long double __x) + { return __detail::__cyl_neumann_n(__nu, __x); } +# 677 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_neumann(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_neumann_n<__type>(__nu, __x); + } +# 693 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_1f(float __k, float __phi) + { return __detail::__ellint_1(__k, __phi); } + + + + + + + + inline long double + ellint_1l(long double __k, long double __phi) + { return __detail::__ellint_1(__k, __phi); } +# 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type + ellint_1(_Tp __k, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; + return __detail::__ellint_1<__type>(__k, __phi); + } +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_2f(float __k, float __phi) + { return __detail::__ellint_2(__k, __phi); } + + + + + + + + inline long double + ellint_2l(long double __k, long double __phi) + { return __detail::__ellint_2(__k, __phi); } +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type + ellint_2(_Tp __k, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; + return __detail::__ellint_2<__type>(__k, __phi); + } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_3f(float __k, float __nu, float __phi) + { return __detail::__ellint_3(__k, __nu, __phi); } + + + + + + + + inline long double + ellint_3l(long double __k, long double __nu, long double __phi) + { return __detail::__ellint_3(__k, __nu, __phi); } +# 826 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type + ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type; + return __detail::__ellint_3<__type>(__k, __nu, __phi); + } +# 841 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + expintf(float __x) + { return __detail::__expint(__x); } + + + + + + + + inline long double + expintl(long double __x) + { return __detail::__expint(__x); } +# 866 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + expint(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__expint<__type>(__x); + } +# 882 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + hermitef(unsigned int __n, float __x) + { return __detail::__poly_hermite(__n, __x); } + + + + + + + + inline long double + hermitel(unsigned int __n, long double __x) + { return __detail::__poly_hermite(__n, __x); } +# 914 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + hermite(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__poly_hermite<__type>(__n, __x); + } +# 930 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + laguerref(unsigned int __n, float __x) + { return __detail::__laguerre(__n, __x); } + + + + + + + + inline long double + laguerrel(unsigned int __n, long double __x) + { return __detail::__laguerre(__n, __x); } +# 958 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + laguerre(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__laguerre<__type>(__n, __x); + } +# 974 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + legendref(unsigned int __l, float __x) + { return __detail::__poly_legendre_p(__l, __x); } + + + + + + + + inline long double + legendrel(unsigned int __l, long double __x) + { return __detail::__poly_legendre_p(__l, __x); } +# 1003 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + legendre(unsigned int __l, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__poly_legendre_p<__type>(__l, __x); + } +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + riemann_zetaf(float __s) + { return __detail::__riemann_zeta(__s); } + + + + + + + + inline long double + riemann_zetal(long double __s) + { return __detail::__riemann_zeta(__s); } +# 1054 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + riemann_zeta(_Tp __s) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__riemann_zeta<__type>(__s); + } +# 1070 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_besself(unsigned int __n, float __x) + { return __detail::__sph_bessel(__n, __x); } + + + + + + + + inline long double + sph_bessell(unsigned int __n, long double __x) + { return __detail::__sph_bessel(__n, __x); } +# 1098 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_bessel(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_bessel<__type>(__n, __x); + } +# 1114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_legendref(unsigned int __l, unsigned int __m, float __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + sph_legendrel(unsigned int __l, unsigned int __m, long double __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_legendre<__type>(__l, __m, __theta); + } +# 1161 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_neumannf(unsigned int __n, float __x) + { return __detail::__sph_neumann(__n, __x); } + + + + + + + + inline long double + sph_neumannl(unsigned int __n, long double __x) + { return __detail::__sph_neumann(__n, __x); } +# 1189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_neumann(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_neumann<__type>(__n, __x); + } + + + + +} + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + airy_aif(float __x) + { + float __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + inline long double + airy_ail(long double __x) + { + long double __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + template + inline typename __gnu_cxx::__promote<_Tp>::__type + airy_ai(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + __type __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + inline float + airy_bif(float __x) + { + float __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } + + + + + inline long double + airy_bil(long double __x) + { + long double __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } + + + + + template + inline typename __gnu_cxx::__promote<_Tp>::__type + airy_bi(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + __type __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } +# 1292 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + conf_hypergf(float __a, float __c, float __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + conf_hypergl(long double __a, long double __c, long double __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type + conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x) + { + typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type; + return std::__detail::__conf_hyperg<__type>(__a, __c, __x); + } +# 1340 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + hypergf(float __a, float __b, float __c, float __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1351 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + hypergl(long double __a, long double __b, long double __c, long double __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1372 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type + hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) + { + typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp> + ::__type __type; + return std::__detail::__hyperg<__type>(__a, __b, __c, __x); + } + + + +} +# 3907 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + + +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 2 3 + +using std::abs; +using std::acos; +using std::asin; +using std::atan; +using std::atan2; +using std::cos; +using std::sin; +using std::tan; +using std::cosh; +using std::sinh; +using std::tanh; +using std::exp; +using std::frexp; +using std::ldexp; +using std::log; +using std::log10; +using std::modf; +using std::pow; +using std::sqrt; +using std::ceil; +using std::fabs; +using std::floor; +using std::fmod; + + +using std::fpclassify; +using std::isfinite; +using std::isinf; +using std::isnan; +using std::isnormal; +using std::signbit; +using std::isgreater; +using std::isgreaterequal; +using std::isless; +using std::islessequal; +using std::islessgreater; +using std::isunordered; + + + +using std::acosh; +using std::asinh; +using std::atanh; +using std::cbrt; +using std::copysign; +using std::erf; +using std::erfc; +using std::exp2; +using std::expm1; +using std::fdim; +using std::fma; +using std::fmax; +using std::fmin; +using std::hypot; +using std::ilogb; +using std::lgamma; +using std::llrint; +using std::llround; +using std::log1p; +using std::log2; +using std::logb; +using std::lrint; +using std::lround; +using std::nearbyint; +using std::nextafter; +using std::nexttoward; +using std::remainder; +using std::remquo; +using std::rint; +using std::round; +using std::scalbln; +using std::scalbn; +using std::tgamma; +using std::trunc; +# 4578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 4579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +# 4582 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +# 4583 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(long double x); +} +# 4832 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std +{ + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __pow_helper(T, int); + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __cmath_power(T, unsigned int); +} + +using std::abs; +using std::fabs; +using std::ceil; +using std::floor; +using std::sqrt; + +using std::pow; + +using std::log; +using std::log10; +using std::fmod; +using std::modf; +using std::exp; +using std::frexp; +using std::ldexp; +using std::asin; +using std::sin; +using std::sinh; +using std::acos; +using std::cos; +using std::cosh; +using std::atan; +using std::atan2; +using std::tan; +using std::tanh; +# 5243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 5252 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int abs(long long int); +# 5272 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int abs(long int a); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float abs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double abs(double); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fabs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ceil(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float floor(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sqrt(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float pow(float, float); + + + + +template +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) +typename __gnu_cxx::__promote_2<_Tp, _Up>::__type pow(_Tp, _Up); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log10(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fmod(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float modf(float, float*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float frexp(float, int*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ldexp(float, int); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float asin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float acos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cosh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan2(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tanh(float); +# 5399 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 5505 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float logb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr int ilogb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbn(float a, int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbln(float a, long int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float exp2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float expm1(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log1p(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float acosh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float asinh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float atanh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float hypot(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float cbrt(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erf(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erfc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float lgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float tgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float copysign(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nextafter(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float remainder(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float remquo(float a, float b, int *quo); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float round(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float trunc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float rint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nearbyint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fdim(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fma(float a, float b, float c); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmax(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmin(float a, float b); +} +# 5644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp10(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rsqrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rcbrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinpi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cospi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincospi(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincos(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float jn(const int n, const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float yn(const int n, const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i0(const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdf(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcx(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const double a, const float b); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const float a, const double b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int min(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int min(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const long long int b); +# 5785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float min(const float a, const float b); +# 5796 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const double b); +# 5806 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const float a, const double b); +# 5816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const float b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int max(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int max(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const long long int b); +# 5915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float max(const float a, const float b); +# 5926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const double b); +# 5936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const float a, const double b); +# 5946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const float b); +# 5958 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C"{ +inline __attribute__((device)) void *__nv_aligned_device_malloc(size_t size, size_t align) +{ + __attribute__((device)) void *__nv_aligned_device_malloc_impl(size_t, size_t); + return __nv_aligned_device_malloc_impl(size, align); +} +} +# 6248 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 78 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 2 +# 758 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +static inline __attribute__((host)) __attribute__((device)) float exp10(const float a) +{ + return exp10f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rsqrt(const float a) +{ + return rsqrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rcbrt(const float a) +{ + return rcbrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float sinpi(const float a) +{ + return sinpif(a); +} + +static inline __attribute__((host)) __attribute__((device)) float cospi(const float a) +{ + return cospif(a); +} + +static inline __attribute__((host)) __attribute__((device)) void sincospi(const float a, float *const sptr, float *const cptr) +{ + sincospif(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) void sincos(const float a, float *const sptr, float *const cptr) +{ + sincosf(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) float j0(const float a) +{ + return j0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float j1(const float a) +{ + return j1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float jn(const int n, const float a) +{ + return jnf(n, a); +} + +static inline __attribute__((host)) __attribute__((device)) float y0(const float a) +{ + return y0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float y1(const float a) +{ + return y1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float yn(const int n, const float a) +{ + return ynf(n, a); +} + +static inline __attribute__((device)) float cyl_bessel_i0(const float a) +{ + return cyl_bessel_i0f(a); +} + +static inline __attribute__((device)) float cyl_bessel_i1(const float a) +{ + return cyl_bessel_i1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfinv(const float a) +{ + return erfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcinv(const float a) +{ + return erfcinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdfinv(const float a) +{ + return normcdfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdf(const float a) +{ + return normcdff(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcx(const float a) +{ + return erfcxf(a); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const double a, const float b) +{ + return copysign(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const float a, const double b) +{ + return copysign(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const unsigned int b) +{ + return umin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const int a, const unsigned int b) +{ + return umin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const int b) +{ + return umin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int min(const long int a, const long int b) +{ + long int retval; + + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(min(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int min(const long long int a, const long long int b) +{ + return llmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b) +{ + return ullmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const long long int a, const unsigned long long int b) +{ + return ullmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const long long int b) +{ + return ullmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float min(const float a, const float b) +{ + return fminf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const double b) +{ + return fmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const float a, const double b) +{ + return fmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const float b) +{ + return fmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const unsigned int b) +{ + return umax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const int a, const unsigned int b) +{ + return umax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const int b) +{ + return umax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int max(const long int a, const long int b) +{ + long int retval; + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(max(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int max(const long long int a, const long long int b) +{ + return llmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b) +{ + return ullmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const long long int a, const unsigned long long int b) +{ + return ullmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const long long int b) +{ + return ullmax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float max(const float a, const float b) +{ + return fmaxf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const double b) +{ + return fmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const float a, const double b) +{ + return fmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const float b) +{ + return fmax(a, static_cast(b)); +} +# 1135 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +inline __attribute__((host)) __attribute__((device)) int min(const int a, const int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned int umin(const unsigned int a, const unsigned int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) long long int llmin(const long long int a, const long long int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned long long int ullmin(const unsigned long long int a, + const unsigned long long int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) int max(const int a, const int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned int umax(const unsigned int a, const unsigned int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) long long int llmax(const long long int a, const long long int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned long long int ullmax(const unsigned long long int a, + const unsigned long long int b) +{ + return (a > b) ? a : b; +} +# 6249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +extern "C" +{ +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mulhi(int x, int y); +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umulhi(unsigned int x, unsigned int y); +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __mul64hi(long long int x, long long int y); +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __umul64hi(unsigned long long int x, unsigned long long int y); +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int_as_float(int x); +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float_as_int(float x); +# 163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint_as_float(unsigned int x); +# 172 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float_as_uint(float x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __syncthreads(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __prof_trigger(int); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence_block(void); +__attribute__((device)) __attribute__((cudart_builtin)) + +__attribute__((__noreturn__)) + + + +__attribute__((device_builtin)) void __trap(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __brkpt(); +# 196 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __saturatef(float x); +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __sad(int x, int y, unsigned int z); +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __usad(unsigned int x, unsigned int y, unsigned int z); +# 243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mul24(int x, int y); +# 253 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umul24(unsigned int x, unsigned int y); +# 269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float fdividef(float x, float y); +# 289 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdividef(float x, float y); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) double fdivide(double x, double y); +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __sinf(float x) +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __cosf(float x) +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanf(float x) +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanhf(float x) +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void __sincosf(float x, float *sptr, float *cptr) +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __expf(float x) +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __exp10f(float x) +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log2f(float x) +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log10f(float x) +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __logf(float x) +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __powf(float x, float y) +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rn(float x); +# 463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rz(float x); +# 473 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_ru(float); +# 483 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rd(float x); +# 493 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rn(float x); +# 503 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rz(float x); +# 513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_ru(float x); +# 523 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rd(float x); +# 532 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rn(int x); +# 541 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rz(int x); +# 550 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_ru(int x); +# 559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rd(int x); +# 568 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rn(unsigned int x); +# 577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rz(unsigned int x); +# 586 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_ru(unsigned int x); +# 595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rd(unsigned int x); +# 605 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rn(float x); +# 615 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rz(float x); +# 625 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_ru(float x); +# 635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rd(float x); +# 645 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rn(float x); +# 655 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rz(float x); +# 665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_ru(float x); +# 675 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rd(float x); +# 684 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rn(long long int x); +# 693 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rz(long long int x); +# 702 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_ru(long long int x); +# 711 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rd(long long int x); +# 720 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rn(unsigned long long int x); +# 729 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rz(unsigned long long int x); +# 738 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_ru(unsigned long long int x); +# 747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rd(unsigned long long int x); +# 766 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rn(float x, float y); +# 785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rz(float x, float y); +# 804 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_ru(float x, float y); +# 823 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rd(float x, float y); +# 842 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rn(float x, float y); +# 861 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rz(float x, float y); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_ru(float x, float y); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rd(float x, float y); +# 917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rn(float x, float y); +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rz(float x, float y); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_ru(float x, float y); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rd(float x, float y); +# 1015 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rn(float x, float y, float z); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rz(float x, float y, float z); +# 1103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_ru(float x, float y, float z); +# 1147 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rd(float x, float y, float z); +# 1164 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rn(float x); +# 1181 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rz(float x); +# 1198 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_ru(float x); +# 1215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rd(float x); +# 1233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rn(float x); +# 1251 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rz(float x); +# 1269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_ru(float x); +# 1287 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rd(float x); +# 1305 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frsqrt_rn(float x); +# 1324 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rn(float x, float y); +# 1343 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rz(float x, float y); +# 1362 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_ru(float x, float y); +# 1381 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rd(float x, float y); +# 1390 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clz(int x); +# 1401 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffs(int x); +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popc(unsigned int x); +# 1419 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __brev(unsigned int x); +# 1428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clzll(long long int x); +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffsll(long long int x); +# 1450 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popcll(unsigned long long int x); +# 1459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __brevll(unsigned long long int x); +# 1482 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __byte_perm(unsigned int x, unsigned int y, unsigned int s); +# 1494 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __hadd(int x, int y); +# 1507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __rhadd(int x, int y); +# 1519 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __uhadd(unsigned int x, unsigned int y); +# 1532 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __urhadd(unsigned int x, unsigned int y); +# 1543 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __double2int_rz(double x); +# 1553 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __double2uint_rz(double x); +# 1563 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __double2ll_rz(double x); +# 1573 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __double2ull_rz(double x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm0(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm1(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm2(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm3(void); +# 1603 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs2(unsigned int a); +# 1614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss2(unsigned int a); +# 1625 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd2(unsigned int a, unsigned int b); +# 1636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss2 (unsigned int a, unsigned int b); +# 1646 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus2 (unsigned int a, unsigned int b); +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs2(unsigned int a, unsigned int b); +# 1668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu2(unsigned int a, unsigned int b); +# 1679 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu2(unsigned int a, unsigned int b); +# 1690 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq2(unsigned int a, unsigned int b); +# 1701 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges2(unsigned int a, unsigned int b); +# 1712 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu2(unsigned int a, unsigned int b); +# 1723 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts2(unsigned int a, unsigned int b); +# 1734 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu2(unsigned int a, unsigned int b); +# 1745 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples2(unsigned int a, unsigned int b); +# 1756 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu2(unsigned int a, unsigned int b); +# 1767 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts2(unsigned int a, unsigned int b); +# 1778 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu2(unsigned int a, unsigned int b); +# 1789 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne2(unsigned int a, unsigned int b); +# 1800 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu2(unsigned int a, unsigned int b); +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs2(unsigned int a, unsigned int b); +# 1822 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu2(unsigned int a, unsigned int b); +# 1833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins2(unsigned int a, unsigned int b); +# 1844 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu2(unsigned int a, unsigned int b); +# 1855 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq2(unsigned int a, unsigned int b); +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges2(unsigned int a, unsigned int b); +# 1877 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu2(unsigned int a, unsigned int b); +# 1888 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts2(unsigned int a, unsigned int b); +# 1899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu2(unsigned int a, unsigned int b); +# 1910 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles2(unsigned int a, unsigned int b); +# 1921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu2(unsigned int a, unsigned int b); +# 1932 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts2(unsigned int a, unsigned int b); +# 1943 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu2(unsigned int a, unsigned int b); +# 1954 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne2(unsigned int a, unsigned int b); +# 1965 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu2(unsigned int a, unsigned int b); +# 1976 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub2(unsigned int a, unsigned int b); +# 1987 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss2 (unsigned int a, unsigned int b); +# 1998 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus2 (unsigned int a, unsigned int b); +# 2008 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg2(unsigned int a); +# 2018 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss2(unsigned int a); +# 2029 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs2(unsigned int a, unsigned int b); +# 2040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads2(unsigned int a, unsigned int b); +# 2050 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs4(unsigned int a); +# 2061 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss4(unsigned int a); +# 2072 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd4(unsigned int a, unsigned int b); +# 2083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss4 (unsigned int a, unsigned int b); +# 2093 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus4 (unsigned int a, unsigned int b); +# 2104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs4(unsigned int a, unsigned int b); +# 2115 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu4(unsigned int a, unsigned int b); +# 2126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu4(unsigned int a, unsigned int b); +# 2137 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq4(unsigned int a, unsigned int b); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges4(unsigned int a, unsigned int b); +# 2159 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu4(unsigned int a, unsigned int b); +# 2170 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts4(unsigned int a, unsigned int b); +# 2181 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu4(unsigned int a, unsigned int b); +# 2192 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples4(unsigned int a, unsigned int b); +# 2203 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu4(unsigned int a, unsigned int b); +# 2214 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts4(unsigned int a, unsigned int b); +# 2225 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu4(unsigned int a, unsigned int b); +# 2236 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne4(unsigned int a, unsigned int b); +# 2247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu4(unsigned int a, unsigned int b); +# 2258 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs4(unsigned int a, unsigned int b); +# 2269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu4(unsigned int a, unsigned int b); +# 2280 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins4(unsigned int a, unsigned int b); +# 2291 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu4(unsigned int a, unsigned int b); +# 2302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq4(unsigned int a, unsigned int b); +# 2313 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles4(unsigned int a, unsigned int b); +# 2324 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu4(unsigned int a, unsigned int b); +# 2335 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts4(unsigned int a, unsigned int b); +# 2346 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu4(unsigned int a, unsigned int b); +# 2357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges4(unsigned int a, unsigned int b); +# 2368 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu4(unsigned int a, unsigned int b); +# 2379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts4(unsigned int a, unsigned int b); +# 2390 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu4(unsigned int a, unsigned int b); +# 2401 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne4(unsigned int a, unsigned int b); +# 2412 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu4(unsigned int a, unsigned int b); +# 2423 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub4(unsigned int a, unsigned int b); +# 2434 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss4(unsigned int a, unsigned int b); +# 2445 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus4(unsigned int a, unsigned int b); +# 2455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg4(unsigned int a); +# 2465 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss4(unsigned int a); +# 2476 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs4(unsigned int a, unsigned int b); +# 2487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads4(unsigned int a, unsigned int b); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b); +# 2509 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b); +# 2518 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b); +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b); +# 2539 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32(const int a, const int b, const int c); +# 2551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2572 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2581 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32(const int a, const int b, const int c); +# 2593 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2602 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32_relu(const int a, const int b, const int c); +# 2635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32_relu(const int a, const int b, const int c); +# 2656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32(const int a, const int b, const int c); +# 2677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2686 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2698 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2707 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32(const int a, const int b, const int c); +# 2719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2728 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2750 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32_relu(const int a, const int b, const int c); +# 2762 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2772 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32_relu(const int a, const int b, const int c); +# 2784 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2793 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmax_s32(const int a, const int b, bool* const pred); +# 2802 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool* const pred); +# 2811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmin_s32(const int a, const int b, bool* const pred); +# 2820 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool* const pred); +# 2834 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2848 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2862 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2876 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); + + + + + + +} +# 2899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 2 +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +static __attribute__((host)) __attribute__((device)) short __internal_cast_u2s(unsigned short x) +{ + short res; + + (void)memcpy(&res, &x, sizeof(x)); + + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b){ + + + + + + + int ans = max(a, b); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b){ + unsigned int res; + + + + + + + + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + int ansI_lo = max(aS_lo, bS_lo); + int ansI_hi = max(aS_hi, bS_hi); + + + if(ansI_lo < 0){ ansI_lo = 0; } + if(ansI_hi < 0){ ansI_hi = 0; } + + + unsigned ansU_lo = (unsigned)ansI_lo; + unsigned ansU_hi = (unsigned)ansI_hi; + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b){ + + + + + + + int ans = min(a, b); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b){ + unsigned int res; + + + + + + + + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + int ansI_lo = min(aS_lo, bS_lo); + int ansI_hi = min(aS_hi, bS_hi); + + + if(ansI_lo < 0){ ansI_lo = 0; } + if(ansI_hi < 0){ ansI_hi = 0; } + + + unsigned ansU_lo = (unsigned)ansI_lo; + unsigned ansU_hi = (unsigned)ansI_hi; + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32(const int a, const int b, const int c){ +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(max(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned int ansU_lo = (unsigned int)max(max(aS_lo, bS_lo), cS_lo); + unsigned int ansU_hi = (unsigned int)max(max(aS_hi, bS_hi), cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 301 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(max(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + unsigned short ansU_lo = (unsigned short)max(max(aU_lo, bU_lo), cU_lo); + unsigned short ansU_hi = (unsigned short)max(max(aU_hi, bU_hi), cU_hi); + + + res = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32(const int a, const int b, const int c){ +# 347 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(min(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned int ansU_lo = (unsigned int)min(min(aS_lo, bS_lo), cS_lo); + unsigned int ansU_hi = (unsigned int)min(min(aS_hi, bS_hi), cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(min(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 419 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + unsigned short ansU_lo = (unsigned short)min(min(aU_lo, bU_lo), cU_lo); + unsigned short ansU_hi = (unsigned short)min(min(aU_hi, bU_hi), cU_hi); + + + res = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32_relu(const int a, const int b, const int c){ +# 449 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(max(a, b), c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, max(max(aS_lo, bS_lo), cS_lo)); + unsigned ansU_hi = (unsigned)max(0, max(max(aS_hi, bS_hi), cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32_relu(const int a, const int b, const int c){ +# 507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(min(a, b), c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned res; +# 525 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, min(min(aS_lo, bS_lo), cS_lo)); + unsigned ansU_hi = (unsigned)max(0, min(min(aS_hi, bS_hi), cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32(const int a, const int b, const int c){ +# 566 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 582 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + aU_lo += bU_lo; + aU_hi += bU_hi; + + + short sS_lo = __internal_cast_u2s(aU_lo); + short sS_hi = __internal_cast_u2s(aU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(sS_lo, cS_lo); + unsigned ansU_hi = (unsigned)max(sS_hi, cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 622 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 638 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + unsigned short ansU_lo = (unsigned short)max((unsigned short)(aU_lo + bU_lo), cU_lo); + unsigned short ansU_hi = (unsigned short)max((unsigned short)(aU_hi + bU_hi), cU_hi); + + + res = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32(const int a, const int b, const int c){ +# 668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 684 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + aU_lo += bU_lo; + aU_hi += bU_hi; + + + short sS_lo = __internal_cast_u2s(aU_lo); + short sS_hi = __internal_cast_u2s(aU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)min(sS_lo, cS_lo); + unsigned ansU_hi = (unsigned)min(sS_hi, cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + unsigned short ansU_lo = (unsigned short)min((unsigned short)(aU_lo + bU_lo), cU_lo); + unsigned short ansU_hi = (unsigned short)min((unsigned short)(aU_hi + bU_hi), cU_hi); + + + res = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32_relu(const int a, const int b, const int c){ +# 770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(a + b, c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 788 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + aU_lo += bU_lo; + aU_hi += bU_hi; + + + short sS_lo = __internal_cast_u2s(aU_lo); + short sS_hi = __internal_cast_u2s(aU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, max(sS_lo, cS_lo)); + unsigned ansU_hi = (unsigned)max(0, max(sS_hi, cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32_relu(const int a, const int b, const int c){ +# 828 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(a + b, c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 846 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + aU_lo += bU_lo; + aU_hi += bU_hi; + + + short sS_lo = __internal_cast_u2s(aU_lo); + short sS_hi = __internal_cast_u2s(aU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, min(sS_lo, cS_lo)); + unsigned ansU_hi = (unsigned)max(0, min(sS_hi, cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmax_s32(const int a, const int b, bool* const pred){ +# 892 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(a, b); + + *pred = (a >= b); + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool* const pred){ +# 913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned int ans = max(a, b); + + *pred = (a >= b); + return ans; + +} + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmin_s32(const int a, const int b, bool* const pred){ +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(a, b); + + *pred = (a <= b); + return ans; + +} + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool* const pred){ +# 957 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned int ans = min(a, b); + + *pred = (a <= b); + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 986 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + unsigned int ansU_lo = (unsigned int)max(aS_lo, bS_lo); + unsigned int ansU_hi = (unsigned int)max(aS_hi, bS_hi); + + *pred_hi = (aS_hi >= bS_hi); + *pred_lo = (aS_lo >= bS_lo); + + + unsigned int ans = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + unsigned short ansU_lo = (unsigned short)max(aU_lo, bU_lo); + unsigned short ansU_hi = (unsigned short)max(aU_hi, bU_hi); + + *pred_hi = (aU_hi >= bU_hi); + *pred_lo = (aU_lo >= bU_lo); + + + unsigned int ans = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + unsigned int ansU_lo = (unsigned int)min(aS_lo, bS_lo); + unsigned int ansU_hi = (unsigned int)min(aS_hi, bS_hi); + + *pred_hi = (aS_hi <= bS_hi); + *pred_lo = (aS_lo <= bS_lo); + + + unsigned int ans = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + unsigned short ansU_lo = (unsigned short)min(aU_lo, bU_lo); + unsigned short ansU_hi = (unsigned short)min(aU_hi, bU_hi); + + *pred_hi = (aU_hi <= bU_hi); + *pred_lo = (aU_lo <= bU_lo); + + + unsigned int ans = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + return ans; + +} +# 2900 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" 1 +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) { } + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) { } +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __any(int cond); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __all(int cond); +} +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) { } + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) { } + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) { } + +static __inline__ __attribute__((device)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool any(bool cond) { } + +static __inline__ __attribute__((device)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool all(bool cond) { } +# 2903 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 + + + + +extern "C" +{ +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 266 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 423 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 580 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 749 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 773 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 809 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 821 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 857 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 881 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 890 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 944 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 962 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 980 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 998 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1007 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1016 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1025 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 1050 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1113 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1141 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); +} + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode); + + + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode = cudaRoundNearest); + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 2 + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __fma_rz(a, b, c) : + mode == cudaRoundPosInf ? __fma_ru(a, b, c) : + mode == cudaRoundMinInf ? __fma_rd(a, b, c) : + __fma_rn(a, b, c); +} + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dmul_rz(a, b) : + mode == cudaRoundPosInf ? __dmul_ru(a, b) : + mode == cudaRoundMinInf ? __dmul_rd(a, b) : + __dmul_rn(a, b); +} + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dadd_rz(a, b) : + mode == cudaRoundPosInf ? __dadd_ru(a, b) : + mode == cudaRoundMinInf ? __dadd_rd(a, b) : + __dadd_rn(a, b); +} + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dsub_rz(a, b) : + mode == cudaRoundPosInf ? __dsub_ru(a, b) : + mode == cudaRoundMinInf ? __dsub_rd(a, b) : + __dsub_rn(a, b); +} + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2int_rn(a) : + mode == cudaRoundPosInf ? __double2int_ru(a) : + mode == cudaRoundMinInf ? __double2int_rd(a) : + __double2int_rz(a); +} + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2uint_rn(a) : + mode == cudaRoundPosInf ? __double2uint_ru(a) : + mode == cudaRoundMinInf ? __double2uint_rd(a) : + __double2uint_rz(a); +} + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ll_rn(a) : + mode == cudaRoundPosInf ? __double2ll_ru(a) : + mode == cudaRoundMinInf ? __double2ll_rd(a) : + __double2ll_rz(a); +} + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ull_rn(a) : + mode == cudaRoundPosInf ? __double2ull_ru(a) : + mode == cudaRoundMinInf ? __double2ull_rd(a) : + __double2ull_rz(a); +} + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ll2double_rz(a) : + mode == cudaRoundPosInf ? __ll2double_ru(a) : + mode == cudaRoundMinInf ? __ll2double_rd(a) : + __ll2double_rn(a); +} + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ull2double_rz(a) : + mode == cudaRoundPosInf ? __ull2double_ru(a) : + mode == cudaRoundMinInf ? __ull2double_rd(a) : + __ull2double_rn(a); +} + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode) +{ + return (double)a; +} +# 1185 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 +# 2904 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" 1 +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) { } +# 2905 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 1 +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) { } +# 2906 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" 1 +# 56 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 1 +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" 2 +# 2907 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" 1 +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +static __inline__ __attribute__((device)) double atomicAdd(double *address, double val) { } + +static __inline__ __attribute__((device)) +int atomicAdd_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicAdd_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAdd_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAdd_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAdd_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAdd_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +float atomicAdd_block(float *address, float val) { } + +static __inline__ __attribute__((device)) +float atomicAdd_system(float *address, float val) { } + +static __inline__ __attribute__((device)) +double atomicAdd_block(double *address, double val) { } + +static __inline__ __attribute__((device)) +double atomicAdd_system(double *address, double val) { } + +static __inline__ __attribute__((device)) +int atomicSub_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicSub_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicSub_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicSub_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +int atomicExch_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicExch_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicExch_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicExch_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicExch_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicExch_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +float atomicExch_block(float *address, float val) { } + +static __inline__ __attribute__((device)) +float atomicExch_system(float *address, float val) { } + +static __inline__ __attribute__((device)) +int atomicMin_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicMin_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicMin_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicMin_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMin_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMin_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMin_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMin_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicMax_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicMax_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicMax_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicMax_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMax_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMax_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMax_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMax_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicInc_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicInc_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicDec_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicDec_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +int atomicCAS_block(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) +int atomicCAS_system(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicCAS_block(unsigned int *address, unsigned int compare, + unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicCAS_system(unsigned int *address, unsigned int compare, + unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long int atomicCAS_block(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val) { } + +static __inline__ __attribute__((device)) +unsigned long long int atomicCAS_system(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val) { } + +static __inline__ __attribute__((device)) +int atomicAnd_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicAnd_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicAnd_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicAnd_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAnd_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAnd_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAnd_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAnd_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicOr_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicOr_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicOr_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicOr_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicOr_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicOr_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicOr_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicOr_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicXor_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicXor_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicXor_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicXor_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicXor_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicXor_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicXor_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicXor_system(unsigned long long *address, unsigned long long val) { } +# 2908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" 1 +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) void __threadfence_system(void); +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rn(double x, double y); +# 139 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rz(double x, double y); +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_ru(double x, double y); +# 179 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rd(double x, double y); +# 194 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rn(double x); +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rz(double x); +# 224 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_ru(double x); +# 239 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rd(double x); +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rn(double x); +# 269 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rz(double x); +# 284 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_ru(double x); +# 299 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rd(double x); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __ballot(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_count(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_and(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_or(int); +extern __attribute__((device)) __attribute__((device_builtin)) long long int clock64(void); +# 314 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rn(float x, float y, float z); +# 323 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rd(float x, float y, float z); +# 332 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_ru(float x, float y, float z); +# 341 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rz(float x, float y, float z); +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 407 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 451 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 539 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 558 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 577 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 596 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 615 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 634 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 653 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 672 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 691 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 709 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 727 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 745 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 763 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 772 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 781 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 790 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 799 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 809 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 829 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 839 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 849 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 859 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 879 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 889 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 944 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 962 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 980 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 998 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1007 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1016 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1025 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); + + +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int ballot(bool pred) { } + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) { } + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) { } + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) { } + + + + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) { } + +static __inline__ __attribute__((device)) unsigned int __isGridConstant(const void *ptr) { } + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *ptr) { } + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_grid_constant(const void *ptr) { } + + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) { } + +static __inline__ __attribute__((device)) void * __cvta_grid_constant_to_generic(size_t rawbits) { } +# 1090 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static __inline__ __attribute__((host)) __attribute__((device)) unsigned short __nv_bswap16(unsigned short x) { + + return __builtin_bswap16(x); + + + + + +} +# 1109 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static __inline__ __attribute__((host)) __attribute__((device)) unsigned int __nv_bswap32(unsigned int x) { + + return __builtin_bswap32(x); + + + + + + +} +# 1129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static __inline__ __attribute__((host)) __attribute__((device)) unsigned long long __nv_bswap64(unsigned long long x) { + + return __builtin_bswap64(x); + + + + + + +} +# 2909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" 1 +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +static __attribute__((device)) __inline__ unsigned __fns(unsigned mask, unsigned base, int offset) { } +static __attribute__((device)) __inline__ void __barrier_sync(unsigned id) { } +static __attribute__((device)) __inline__ void __barrier_sync_count(unsigned id, unsigned cnt) { } +static __attribute__((device)) __inline__ void __syncwarp(unsigned mask=0xFFFFFFFF) { } +static __attribute__((device)) __inline__ int __all_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ int __any_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ int __uni_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ unsigned __ballot_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ unsigned __activemask() { } +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl(int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl(unsigned int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_up(int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_up(unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_down(int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_down(unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_xor(int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_xor(unsigned int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl(float var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_up(float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_down(float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_xor(float var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width=32) { } + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl(unsigned long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl(long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_up(long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_down(long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_xor(long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl(double var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_up(double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_down(double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_xor(double var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width=32) { } + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl(long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl(unsigned long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_up(long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_up(unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_down(long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_down(unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_xor(long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_xor(unsigned long var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width=32) { } +# 2910 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" 1 +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ long __ldg(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldg(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldg(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldg(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) { } + + + + +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldca(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldca(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldca(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) { } +# 465 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 490 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 502 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 2911 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_intrinsics.h" 1 +# 2912 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" 1 +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_lo(int srcA, int srcB, int c) { } +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_lo(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_lo(short2 srcA, char4 srcB, int c) { } +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_lo(ushort2 srcA, uchar4 srcB, unsigned int c) { } +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_hi(int srcA, int srcB, int c) { } +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_hi(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_hi(short2 srcA, char4 srcB, int c) { } +# 182 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_hi(ushort2 srcA, uchar4 srcB, unsigned int c) { } +# 197 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp4a(int srcA, int srcB, int c) { } +# 206 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp4a(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp4a(char4 srcA, char4 srcB, int c) { } +# 225 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp4a(uchar4 srcA, uchar4 srcB, unsigned int c) { } +# 2913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 87 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 2 +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned long long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, long long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, float value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, double value) { } + +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, int value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned long long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, long long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, float value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, double value, int *pred) { } + +static __attribute__((device)) __inline__ void __nanosleep(unsigned int ns) { } + +static __attribute__((device)) __inline__ unsigned short int atomicCAS(unsigned short int *address, unsigned short int compare, unsigned short int val) { } +# 2914 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 2 +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +static __attribute__((device)) __inline__ unsigned __reduce_add_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_min_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_max_sync(unsigned mask, unsigned value) { } + +static __attribute__((device)) __inline__ int __reduce_add_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ int __reduce_min_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ int __reduce_max_sync(unsigned mask, int value) { } + +static __attribute__((device)) __inline__ unsigned __reduce_and_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_or_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_xor_sync(unsigned mask, unsigned value) { } + + + + +extern "C" { +inline __attribute__((device)) void *__nv_associate_access_property(const void *ptr, + unsigned long long property) { + extern __attribute__((device)) void *__nv_associate_access_property_impl(const void *, + unsigned long long); + return __nv_associate_access_property_impl(ptr, property); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_4(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_4_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_4_impl(dst, src, src_size); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_8(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_8_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_8_impl(dst, src, src_size); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_16(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_16_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_16_impl(dst, src, src_size); +} + +} +# 2915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 1 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 80 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 2 +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +static __attribute__((device)) __inline__ unsigned __isCtaShared(const void *ptr) { } +static __attribute__((device)) __inline__ unsigned __isClusterShared(const void *ptr) { } +static __attribute__((device)) __inline__ void *__cluster_map_shared_rank(const void *ptr, unsigned target_block_rank) { } +static __attribute__((device)) __inline__ unsigned __cluster_query_shared_rank(const void *ptr) { } +static __attribute__((device)) __inline__ uint2 __cluster_map_shared_multicast(const void *ptr, unsigned cluster_cta_mask) { } +static __attribute__((device)) __inline__ unsigned __clusterDimIsSpecified() { } +static __attribute__((device)) __inline__ dim3 __clusterDim() { } +static __attribute__((device)) __inline__ dim3 __clusterRelativeBlockIdx() { } +static __attribute__((device)) __inline__ dim3 __clusterGridDimInClusters() { } +static __attribute__((device)) __inline__ dim3 __clusterIdx() { } +static __attribute__((device)) __inline__ unsigned __clusterRelativeBlockRank() { } +static __attribute__((device)) __inline__ unsigned __clusterSizeInBlocks() { } +static __attribute__((device)) __inline__ void __cluster_barrier_arrive() { } +static __attribute__((device)) __inline__ void __cluster_barrier_arrive_relaxed() { } +static __attribute__((device)) __inline__ void __cluster_barrier_wait() { } +static __attribute__((device)) __inline__ void __threadfence_cluster() { } + +static __attribute__((device)) __inline__ float2 atomicAdd(float2 *__address, float2 val) { } +static __attribute__((device)) __inline__ float2 atomicAdd_block(float2 *__address, float2 val) { } +static __attribute__((device)) __inline__ float2 atomicAdd_system(float2 *__address, float2 val) { } +static __attribute__((device)) __inline__ float4 atomicAdd(float4 *__address, float4 val) { } +static __attribute__((device)) __inline__ float4 atomicAdd_block(float4 *__address, float4 val) { } +static __attribute__((device)) __inline__ float4 atomicAdd_system(float4 *__address, float4 val) { } +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +extern "C" { + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicCAS(void *, void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicCAS_block(void *, void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicCAS_system(void *, void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicExch(void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicExch_block(void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicExch_system(void *, void *, void *); +} + + + + + + +template +struct __nv_atomic_enable_if { }; + +template +struct __nv_atomic_enable_if { typedef _T __type; }; +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template +struct __nv_atomic_triv_cp_helper { + + + + + + + static const bool __val = __is_trivially_copyable(_T); + + + + +}; +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicCAS(_T *__address, _T __compare, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicCAS((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__compare)))), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicCAS_block(_T *__address, _T __compare, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicCAS_block((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__compare)))), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicCAS_system(_T *__address, _T __compare, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicCAS_system((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__compare)))), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicExch(_T *__address, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicExch((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicExch_block(_T *__address, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicExch_block((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicExch_system(_T *__address, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicExch_system((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} +# 2916 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 1 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 80 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 2 +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __ffma2_rn(float2 x, float2 y, float2 z) { } +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __ffma2_rz(float2 x, float2 y, float2 z) { } +# 124 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __ffma2_rd(float2 x, float2 y, float2 z) { } +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __ffma2_ru(float2 x, float2 y, float2 z) { } +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fadd2_rn(float2 x, float2 y) { } +# 161 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fadd2_rz(float2 x, float2 y) { } +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fadd2_rd(float2 x, float2 y) { } +# 185 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fadd2_ru(float2 x, float2 y) { } +# 198 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fmul2_rn(float2 x, float2 y) { } +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fmul2_rz(float2 x, float2 y) { } +# 222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fmul2_rd(float2 x, float2 y) { } +# 234 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fmul2_ru(float2 x, float2 y) { } +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" 1 +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template struct __nv_itex_trait { }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +{ + __nv_tex_surf_handler("__itex1Dfetch", ptr, obj, x); +} + +template +static __attribute__((device)) T tex1Dfetch(cudaTextureObject_t texObject, int x) +{ + T ret; + tex1Dfetch(&ret, texObject, x); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1D(T *ptr, cudaTextureObject_t obj, float x) +{ + __nv_tex_surf_handler("__itex1D", ptr, obj, x); +} + + +template +static __attribute__((device)) T tex1D(cudaTextureObject_t texObject, float x) +{ + T ret; + tex1D(&ret, texObject, x); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +{ + __nv_tex_surf_handler("__itex2D", ptr, obj, x, y); +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y) +{ + T ret; + tex2D(&ret, texObject, x, y); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y, + bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2D_sparse", ptr, obj, x, y, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y, bool* isResident) +{ + T ret; + tex2D(&ret, texObject, x, y, isResident); + return ret; +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + __nv_tex_surf_handler("__itex3D", ptr, obj, x, y, z); +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z) +{ + T ret; + tex3D(&ret, texObject, x, y, z); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z, + bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex3D_sparse", ptr, obj, x, y, z, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z, bool* isResident) +{ + T ret; + tex3D(&ret, texObject, x, y, z, isResident); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +{ + __nv_tex_surf_handler("__itex1DLayered", ptr, obj, x, layer); +} + +template +static __attribute__((device)) T tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +{ + T ret; + tex1DLayered(&ret, texObject, x, layer); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +{ + __nv_tex_surf_handler("__itex2DLayered", ptr, obj, x, y, layer); +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +{ + T ret; + tex2DLayered(&ret, texObject, x, y, layer); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DLayered_sparse", ptr, obj, x, y, layer, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer, bool* isResident) +{ + T ret; + tex2DLayered(&ret, texObject, x, y, layer, isResident); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + __nv_tex_surf_handler("__itexCubemap", ptr, obj, x, y, z); +} + + +template +static __attribute__((device)) T texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +{ + T ret; + texCubemap(&ret, texObject, x, y, z); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +{ + __nv_tex_surf_handler("__itexCubemapLayered", ptr, obj, x, y, z, layer); +} + +template +static __attribute__((device)) T texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +{ + T ret; + texCubemapLayered(&ret, texObject, x, y, z, layer); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +{ + __nv_tex_surf_handler("__itex2Dgather", ptr, obj, x, y, comp); +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +{ + T ret; + tex2Dgather(&ret, to, x, y, comp); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, bool* isResident, int comp = 0) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2Dgather_sparse", ptr, obj, x, y, comp, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, bool* isResident, int comp = 0) +{ + T ret; + tex2Dgather(&ret, to, x, y, isResident, comp); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +{ + __nv_tex_surf_handler("__itex1DLod", ptr, obj, x, level); +} + +template +static __attribute__((device)) T tex1DLod(cudaTextureObject_t texObject, float x, float level) +{ + T ret; + tex1DLod(&ret, texObject, x, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +{ + __nv_tex_surf_handler("__itex2DLod", ptr, obj, x, y, level); +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +{ + T ret; + tex2DLod(&ret, texObject, x, y, level); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DLod_sparse", ptr, obj, x, y, level, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level, bool* isResident) +{ + T ret; + tex2DLod(&ret, texObject, x, y, level, isResident); + return ret; +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + __nv_tex_surf_handler("__itex3DLod", ptr, obj, x, y, z, level); +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + T ret; + tex3DLod(&ret, texObject, x, y, z, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex3DLod_sparse", ptr, obj, x, y, z, level, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level, bool* isResident) +{ + T ret; + tex3DLod(&ret, texObject, x, y, z, level, isResident); + return ret; +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +{ + __nv_tex_surf_handler("__itex1DLayeredLod", ptr, obj, x, layer, level); +} + +template +static __attribute__((device)) T tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +{ + T ret; + tex1DLayeredLod(&ret, texObject, x, layer, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +{ + __nv_tex_surf_handler("__itex2DLayeredLod", ptr, obj, x, y, layer, level); +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +{ + T ret; + tex2DLayeredLod(&ret, texObject, x, y, layer, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DLayeredLod_sparse", ptr, obj, x, y, layer, level, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level, bool* isResident) +{ + T ret; + tex2DLayeredLod(&ret, texObject, x, y, layer, level, isResident); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + __nv_tex_surf_handler("__itexCubemapLod", ptr, obj, x, y, z, level); +} + +template +static __attribute__((device)) T texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + T ret; + texCubemapLod(&ret, texObject, x, y, z, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itexCubemapGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + T ret; + texCubemapGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +{ + __nv_tex_surf_handler("__itexCubemapLayeredLod", ptr, obj, x, y, z, layer, level); +} + +template +static __attribute__((device)) T texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +{ + T ret; + texCubemapLayeredLod(&ret, texObject, x, y, z, layer, level); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +{ + __nv_tex_surf_handler("__itex1DGrad", ptr, obj, x, dPdx, dPdy); +} + +template +static __attribute__((device)) T tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +{ + T ret; + tex1DGrad(&ret, texObject, x, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +{ + __nv_tex_surf_handler("__itex2DGrad_v2", ptr, obj, x, y, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +{ + T ret; + tex2DGrad(&ret, texObject, x, y, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DGrad_sparse", ptr, obj, x, y, &dPdx, &dPdy, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy, bool* isResident) +{ + T ret; + tex2DGrad(&ret, texObject, x, y, dPdx, dPdy, isResident); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itex3DGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + T ret; + tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex3DGrad_sparse", ptr, obj, x, y, z, &dPdx, &dPdy, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy, bool* isResident) +{ + T ret; + tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy, isResident); + return ret; +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +{ + __nv_tex_surf_handler("__itex1DLayeredGrad", ptr, obj, x, layer, dPdx, dPdy); +} + +template +static __attribute__((device)) T tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +{ + T ret; + tex1DLayeredGrad(&ret, texObject, x, layer, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + __nv_tex_surf_handler("__itex2DLayeredGrad_v2", ptr, obj, x, y, layer, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + T ret; + tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DLayeredGrad_sparse", ptr, obj, x, y, layer, &dPdx, &dPdy, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy, bool* isResident) +{ + T ret; + tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy, isResident); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itexCubemapLayeredGrad_v2", ptr, obj, x, y, z, layer, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + T ret; + texCubemapLayeredGrad(&ret, texObject, x, y, z, layer, dPdx, dPdy); + return ret; +} +# 2919 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" 1 +# 58 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template struct __nv_isurf_trait { }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1Dread", ptr, obj, x, mode); +} + +template +static __attribute__((device)) T surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf1Dread(&ret, surfObject, x, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2Dread", ptr, obj, x, y, mode); +} + +template +static __attribute__((device)) T surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf2Dread(&ret, surfObject, x, y, boundaryMode); + return ret; +} + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf3Dread", ptr, obj, x, y, z, mode); +} + +template +static __attribute__((device)) T surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf3Dread(&ret, surfObject, x, y, z, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1DLayeredread", ptr, obj, x, layer, mode); +} + +template +static __attribute__((device)) T surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf1DLayeredread(&ret, surfObject, x, layer, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2DLayeredread", ptr, obj, x, y, layer, mode); +} + +template +static __attribute__((device)) T surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf2DLayeredread(&ret, surfObject, x, y, layer, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapread", ptr, obj, x, y, face, mode); +} + +template +static __attribute__((device)) T surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surfCubemapread(&ret, surfObject, x, y, face, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapLayeredread", ptr, obj, x, y, layerface, mode); +} + +template +static __attribute__((device)) T surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surfCubemapLayeredread(&ret, surfObject, x, y, layerface, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1Dwrite_v2", &val, obj, x, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2Dwrite_v2", &val, obj, x, y, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf3Dwrite_v2", &val, obj, x, y, z, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1DLayeredwrite_v2", &val, obj, x, layer, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2DLayeredwrite_v2", &val, obj, x, y, layer, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapwrite_v2", &val, obj, x, y, face, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapLayeredwrite_v2", &val, obj, x, y, layerface, mode); +} +# 2920 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/cudacc_ext.h" 1 +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + + +extern "C" __attribute__((host)) __attribute__((device)) unsigned __cudaPushCallConfiguration(dim3 gridDim, + dim3 blockDim, + size_t sharedMem = 0, + struct CUstream_st *stream = 0); +# 2969 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +enum { + __NV_ATOMIC_RELAXED, + __NV_ATOMIC_CONSUME, + __NV_ATOMIC_ACQUIRE, + __NV_ATOMIC_RELEASE, + __NV_ATOMIC_ACQ_REL, + __NV_ATOMIC_SEQ_CST +}; + +enum { + __NV_THREAD_SCOPE_THREAD, + __NV_THREAD_SCOPE_BLOCK, + __NV_THREAD_SCOPE_CLUSTER, + __NV_THREAD_SCOPE_DEVICE, + __NV_THREAD_SCOPE_SYSTEM +}; +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" 1 +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" +extern "C" { + + +uint3 __attribute__((device_builtin)) extern const threadIdx; +uint3 __attribute__((device_builtin)) extern const blockIdx; +dim3 __attribute__((device_builtin)) extern const blockDim; +dim3 __attribute__((device_builtin)) extern const gridDim; +int __attribute__((device_builtin)) extern const warpSize; + + + + +} +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 1 3 +# 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 + +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace rel_ops + { +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 99 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + } + + +} +# 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + template + class initializer_list + { + public: + typedef _E value_type; + typedef const _E& reference; + typedef const _E& const_reference; + typedef size_t size_type; + typedef const _E* iterator; + typedef const _E* const_iterator; + + private: + iterator _M_array; + size_type _M_len; + + + constexpr initializer_list(const_iterator __a, size_type __l) + : _M_array(__a), _M_len(__l) { } + + public: + constexpr initializer_list() noexcept + : _M_array(0), _M_len(0) { } + + + constexpr size_type + size() const noexcept { return _M_len; } + + + constexpr const_iterator + begin() const noexcept { return _M_array; } + + + constexpr const_iterator + end() const noexcept { return begin() + size(); } + }; + + + + + + + + template + constexpr const _Tp* + begin(initializer_list<_Tp> __ils) noexcept + { return __ils.begin(); } + + + + + + + + template + constexpr const _Tp* + end(initializer_list<_Tp> __ils) noexcept + { return __ils.end(); } +} +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 +# 96 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 97 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template + + inline _Tp + exchange(_Tp& __obj, _Up&& __new_val) + noexcept(__and_, + is_nothrow_assignable<_Tp&, _Up>>::value) + { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } + + + + template + [[nodiscard]] + constexpr add_const_t<_Tp>& + as_const(_Tp& __t) noexcept + { return __t; } + + template + void as_const(const _Tp&&) = delete; +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 + +} +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" + +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernel( + T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + void (*kernel)(ExpTypes...), + ActTypes &&... args +) +{ + return [&](ExpTypes... coercedArgs){ + void *pArgs[] = { &coercedArgs... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); + }(std::forward(args)...); +} +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + const cudaKernel_t kernel, + ActTypes &&... args +) +{ + void *pArgs[] = { &args... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); +} +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel( + T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 454 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaEventCreate( + cudaEvent_t *event, + unsigned int flags +) +{ + return ::cudaEventCreateWithFlags(event, flags); +} +# 498 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaGraphInstantiate( + cudaGraphExec_t *pGraphExec, + cudaGraph_t graph, + cudaGraphNode_t *pErrorNode, + char *pLogBuffer, + size_t bufferSize +) +{ + (void)pErrorNode; + (void)pLogBuffer; + (void)bufferSize; + return ::cudaGraphInstantiate(pGraphExec, graph, 0); +} +# 569 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + void **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc(ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostAlloc( + T **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostGetDevicePointer( + T **pDevice, + void *pHost, + unsigned int flags +) +{ + return ::cudaHostGetDevicePointer((void**)(void*)pDevice, pHost, flags); +} +# 698 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocManaged( + T **devPtr, + size_t size, + unsigned int flags = 0x01 +) +{ + return ::cudaMallocManaged((void**)(void*)devPtr, size, flags); +} +# 716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +cudaError_t cudaMemAdvise( + T *devPtr, + size_t count, + enum cudaMemoryAdvise advice, + struct cudaMemLocation location +) +{ + return ::cudaMemAdvise_v2((const void *)devPtr, count, advice, location); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMemPrefetchAsync( + T *devPtr, + size_t count, + struct cudaMemLocation location, + unsigned int flags, + cudaStream_t stream = 0 +) +{ + return ::cudaMemPrefetchAsync_v2((const void *)devPtr, count, location, flags, stream); +} +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaStreamAttachMemAsync( + cudaStream_t stream, + T *devPtr, + size_t length = 0, + unsigned int flags = 0x04 +) +{ + return ::cudaStreamAttachMemAsync(stream, (void*)devPtr, length, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMalloc( + T **devPtr, + size_t size +) +{ + return ::cudaMalloc((void**)(void*)devPtr, size); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + T **ptr, + size_t size, + unsigned int flags = 0 +) +{ + return cudaMallocHost((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocPitch( + T **devPtr, + size_t *pitch, + size_t width, + size_t height +) +{ + return ::cudaMallocPitch((void**)(void*)devPtr, pitch, width, height); +} +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + void **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaStream_t stream +) +{ + return ::cudaMallocAsync((void**)(void*)ptr, size, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocFromPoolAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyBatchAsync( + T **dsts, U **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes *attrs, + size_t *attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t hStream +) +{ + return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, attrs, attrsIdxs, numAttrs, failIdx, hStream); +} +# 938 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyBatchAsync( + T **dsts, U **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes attr, size_t *failIdx, cudaStream_t hStream +) +{ + size_t attrsIdxs = 0; + return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, &attr, &attrsIdxs, 1, failIdx, hStream); +} +# 984 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbol( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice +) +{ + return ::cudaMemcpyToSymbol((const void*)&symbol, src, count, offset, kind); +} +# 1038 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyToSymbolAsync((const void*)&symbol, src, count, offset, kind, stream); +} +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbol( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost +) +{ + return ::cudaMemcpyFromSymbol(dst, (const void*)&symbol, count, offset, kind); +} +# 1140 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyFromSymbolAsync(dst, (const void*)&symbol, count, offset, kind, stream); +} +# 1209 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void*)&symbol, src, count, offset, kind); +} +# 1280 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void*)&symbol, count, offset, kind); +} +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void*)&symbol, src, count, offset, kind); +} +# 1379 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void*)&symbol, count, offset, kind); +} +# 1437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void*)&symbol, src, count, offset, kind); +} +# 1496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void*)&symbol, count, offset, kind); +} + + +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, enum cudaGraphExecUpdateResult *updateResult_out) +{ + cudaGraphExecUpdateResultInfo resultInfo; + cudaError_t status = cudaGraphExecUpdate(hGraphExec, hGraph, &resultInfo); + if (hErrorNode_out) { + *hErrorNode_out = resultInfo.errorNode; + } + if (updateResult_out) { + *updateResult_out = resultInfo.result; + } + return status; +} +# 1549 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + unsigned int flags) +{ + return ::cudaUserObjectCreate( + object_out, + objectToWrap, + [](void *vpObj) { delete reinterpret_cast(vpObj); }, + initialRefcount, + flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + cudaUserObjectFlags flags) +{ + return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned int)flags); +} +# 1599 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolAddress( + void **devPtr, + const T &symbol +) +{ + return ::cudaGetSymbolAddress(devPtr, (const void*)&symbol); +} +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolSize( + size_t *size, + const T &symbol +) +{ + return ::cudaGetSymbolSize(size, (const void*)&symbol); +} +# 1683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetCacheConfig( + T *func, + enum cudaFuncCache cacheConfig +) +{ + return ::cudaFuncSetCacheConfig((const void*)func, cacheConfig); +} + +template +static __inline__ +__attribute__((deprecated)) +__attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig( + T *func, + enum cudaSharedMemConfig config +) +{ + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + + + + return ::cudaFuncSetSharedMemConfig((const void*)func, config); + +#pragma GCC diagnostic pop + +} +# 1743 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, 0x00); +} +# 1796 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize, + unsigned int flags) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, flags); +} + + + + +class __cudaOccupancyB2DHelper { + size_t n; +public: + inline __attribute__((host)) __attribute__((device)) __cudaOccupancyB2DHelper(size_t n_) : n(n_) {} + inline __attribute__((host)) __attribute__((device)) size_t operator()(int) + { + return n; + } +}; +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + cudaError_t status; + + + int device; + struct cudaFuncAttributes attr; + + + int maxThreadsPerMultiProcessor; + int warpSize; + int devMaxThreadsPerBlock; + int multiProcessorCount; + int funcMaxThreadsPerBlock; + int occupancyLimit; + int granularity; + + + int maxBlockSize = 0; + int numBlocks = 0; + int maxOccupancy = 0; + + + int blockSizeToTryAligned; + int blockSizeToTry; + int blockSizeLimitAligned; + int occupancyInBlocks; + int occupancyInThreads; + size_t dynamicSMemSize; + + + + + + if (!minGridSize || !blockSize || !func) { + return cudaErrorInvalidValue; + } + + + + + + status = ::cudaGetDevice(&device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &maxThreadsPerMultiProcessor, + cudaDevAttrMaxThreadsPerMultiProcessor, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &warpSize, + cudaDevAttrWarpSize, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &devMaxThreadsPerBlock, + cudaDevAttrMaxThreadsPerBlock, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &multiProcessorCount, + cudaDevAttrMultiProcessorCount, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaFuncGetAttributes(&attr, func); + if (status != cudaSuccess) { + return status; + } + + funcMaxThreadsPerBlock = attr.maxThreadsPerBlock; + + + + + + occupancyLimit = maxThreadsPerMultiProcessor; + granularity = warpSize; + + if (blockSizeLimit == 0) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (devMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (funcMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = funcMaxThreadsPerBlock; + } + + blockSizeLimitAligned = ((blockSizeLimit + (granularity - 1)) / granularity) * granularity; + + for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { + + + + if (blockSizeLimit < blockSizeToTryAligned) { + blockSizeToTry = blockSizeLimit; + } else { + blockSizeToTry = blockSizeToTryAligned; + } + + dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); + + status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + &occupancyInBlocks, + func, + blockSizeToTry, + dynamicSMemSize, + flags); + + if (status != cudaSuccess) { + return status; + } + + occupancyInThreads = blockSizeToTry * occupancyInBlocks; + + if (occupancyInThreads > maxOccupancy) { + maxBlockSize = blockSizeToTry; + numBlocks = occupancyInBlocks; + maxOccupancy = occupancyInThreads; + } + + + + if (occupancyLimit == maxOccupancy) { + break; + } + } + + + + + + + + *minGridSize = numBlocks * multiProcessorCount; + *blockSize = maxBlockSize; + + return status; +} +# 2062 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMem( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0x00); +} +# 2108 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSize( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, 0x00); +} +# 2147 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock( + size_t *dynamicSmemSize, + T *func, + int numBlocks, + int blockSize) +{ + return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void*)func, numBlocks, blockSize); +} +# 2206 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeWithFlags( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, flags); +} +# 2251 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxPotentialClusterSize( + int *clusterSize, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void*)func, config); +} +# 2295 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveClusters( + int *numClusters, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxActiveClusters(numClusters, (const void*)func, config); +} +# 2336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetAttributes( + struct cudaFuncAttributes *attr, + T *entry +) +{ + return ::cudaFuncGetAttributes(attr, (const void*)entry); +} +# 2402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetAttribute( + T *func, + enum cudaFuncAttribute attr, + int value +) +{ + return ::cudaFuncSetAttribute((const void*)func, attr, value); +} +# 2435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetName( + const char **name, + T *func +) +{ + return ::cudaFuncGetName(name, (const void *)func); +} +# 2458 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetKernel( + cudaKernel_t *kernelPtr, + T *func +) +{ + return ::cudaGetKernel(kernelPtr, (const void *)func); +} +# 2496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetGlobal(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +{ + return ::cudaLibraryGetGlobal((void**)(void*)dptr, bytes, library, name); +} +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetManaged(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +{ + return ::cudaLibraryGetManaged((void**)(void*)dptr, bytes, library, name); +} +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetUnifiedFunction(T **fptr, cudaLibrary_t library, const char *symbol) +{ + return ::cudaLibraryGetUnifiedFunction((void**)(void*)fptr, library, symbol); +} +# 2576 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 0 "" 2 +# 1 "CMakeCUDACompilerId.cu" +# 477 "CMakeCUDACompilerId.cu" +char const* info_compiler = "INFO" ":" "compiler[" "NVIDIA" "]"; + +char const* info_simulate = "INFO" ":" "simulate[" "GNU" "]"; +# 790 "CMakeCUDACompilerId.cu" +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((12) / 10000000)%10)), ('0' + (((12) / 1000000)%10)), ('0' + (((12) / 100000)%10)), ('0' + (((12) / 10000)%10)), ('0' + (((12) / 1000)%10)), ('0' + (((12) / 100)%10)), ('0' + (((12) / 10)%10)), ('0' + ((12) % 10)), + + '.', ('0' + (((8) / 10000000)%10)), ('0' + (((8) / 1000000)%10)), ('0' + (((8) / 100000)%10)), ('0' + (((8) / 10000)%10)), ('0' + (((8) / 1000)%10)), ('0' + (((8) / 100)%10)), ('0' + (((8) / 10)%10)), ('0' + ((8) % 10)), + + '.', ('0' + (((93) / 10000000)%10)), ('0' + (((93) / 1000000)%10)), ('0' + (((93) / 100000)%10)), ('0' + (((93) / 10000)%10)), ('0' + (((93) / 1000)%10)), ('0' + (((93) / 100)%10)), ('0' + (((93) / 10)%10)), ('0' + ((93) % 10)), + + + + + + ']','\0'}; +# 819 "CMakeCUDACompilerId.cu" +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + ('0' + (((14) / 10000000)%10)), ('0' + (((14) / 1000000)%10)), ('0' + (((14) / 100000)%10)), ('0' + (((14) / 10000)%10)), ('0' + (((14) / 1000)%10)), ('0' + (((14) / 100)%10)), ('0' + (((14) / 10)%10)), ('0' + ((14) % 10)), + + '.', ('0' + (((2) / 10000000)%10)), ('0' + (((2) / 1000000)%10)), ('0' + (((2) / 100000)%10)), ('0' + (((2) / 10000)%10)), ('0' + (((2) / 1000)%10)), ('0' + (((2) / 100)%10)), ('0' + (((2) / 10)%10)), ('0' + ((2) % 10)), + + + + + + + + ']','\0'}; + + + + + + +char const* info_platform = "INFO" ":" "platform[" "Linux" "]"; +char const* info_arch = "INFO" ":" "arch[" "]"; + + + + +char const* info_host_compiler = "INFO" ":" "host_compiler[" "GNU" "]"; + + + + +char const info_host_compiler_version[] = { + 'I', 'N', 'F', 'O', ':','h','o','s','t','_', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((14) / 10000000)%10)), ('0' + (((14) / 1000000)%10)), ('0' + (((14) / 100000)%10)), ('0' + (((14) / 10000)%10)), ('0' + (((14) / 1000)%10)), ('0' + (((14) / 100)%10)), ('0' + (((14) / 10)%10)), ('0' + ((14) % 10)), + + '.', ('0' + (((2) / 10000000)%10)), ('0' + (((2) / 1000000)%10)), ('0' + (((2) / 100000)%10)), ('0' + (((2) / 10000)%10)), ('0' + (((2) / 1000)%10)), ('0' + (((2) / 100)%10)), ('0' + (((2) / 10)%10)), ('0' + ((2) % 10)), + + '.', ('0' + (((1) / 10000000)%10)), ('0' + (((1) / 1000000)%10)), ('0' + (((1) / 100000)%10)), ('0' + (((1) / 10000)%10)), ('0' + (((1) / 1000)%10)), ('0' + (((1) / 100)%10)), ('0' + (((1) / 10)%10)), ('0' + ((1) % 10)), + + + + + + ']','\0'}; +# 882 "CMakeCUDACompilerId.cu" +const char* info_language_standard_default = "INFO" ":" "standard_default[" + + + + + + + + "17" + + + + + + + +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" + + + "ON" + + + +"]"; + + + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + + require += info_version[argc]; + + + require += info_simulate[argc]; + + + require += info_simulate_version[argc]; + + + require += info_host_compiler[argc]; + + + require += info_host_compiler_version[argc]; + + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c new file mode 100644 index 0000000..4b1ecad --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c @@ -0,0 +1,51 @@ +# 1 "CMakeCUDACompilerId.cu" +# 477 "CMakeCUDACompilerId.cu" +extern const char *info_compiler; + +extern const char *info_simulate; +# 790 "CMakeCUDACompilerId.cu" +static const char info_version[50]; +# 819 "CMakeCUDACompilerId.cu" +static const char info_simulate_version[41]; +# 839 "CMakeCUDACompilerId.cu" +extern const char *info_platform; +extern const char *info_arch; + + + + +extern const char *info_host_compiler; + + + + +static const char info_host_compiler_version[55]; +# 882 "CMakeCUDACompilerId.cu" +extern const char *info_language_standard_default; +# 900 "CMakeCUDACompilerId.cu" +extern const char *info_language_extensions_default; +# 477 "CMakeCUDACompilerId.cu" +const char *info_compiler = ((const char *)"INFO:compiler[NVIDIA]"); + +const char *info_simulate = ((const char *)"INFO:simulate[GNU]"); +# 790 "CMakeCUDACompilerId.cu" +static const char info_version[50] = {((char)73),((char)78),((char)70),((char)79),((char)58),((char)99),((char)111),((char)109),((char)112),((char)105),((char)108),((char)101),((char)114),((char)95),((char)118),((char)101),((char)114),((char)115),((char)105),((char)111),((char)110),((char)91),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)50),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)56),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)57),((char)51),((char)93),((char)0)}; +# 819 "CMakeCUDACompilerId.cu" +static const char info_simulate_version[41] = {((char)73),((char)78),((char)70),((char)79),((char)58),((char)115),((char)105),((char)109),((char)117),((char)108),((char)97),((char)116),((char)101),((char)95),((char)118),((char)101),((char)114),((char)115),((char)105),((char)111),((char)110),((char)91),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)52),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)50),((char)93),((char)0)}; +# 839 "CMakeCUDACompilerId.cu" +const char *info_platform = ((const char *)"INFO:platform[Linux]"); +const char *info_arch = ((const char *)"INFO:arch[]"); + + + + +const char *info_host_compiler = ((const char *)"INFO:host_compiler[GNU]"); + + + + +static const char info_host_compiler_version[55] = {((char)73),((char)78),((char)70),((char)79),((char)58),((char)104),((char)111),((char)115),((char)116),((char)95),((char)99),((char)111),((char)109),((char)112),((char)105),((char)108),((char)101),((char)114),((char)95),((char)118),((char)101),((char)114),((char)115),((char)105),((char)111),((char)110),((char)91),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)52),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)50),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)93),((char)0)}; +# 882 "CMakeCUDACompilerId.cu" +const char *info_language_standard_default = ((const char *)"INFO:standard_default[17]"); +# 900 "CMakeCUDACompilerId.cu" +const char *info_language_extensions_default = ((const char *)"INFO:extensions_default[ON]"); diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp new file mode 100644 index 0000000..b1e8272 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp @@ -0,0 +1,36281 @@ +# 1 "CMakeCUDACompilerId.cu" +#pragma GCC diagnostic ignored "-Wunused-local-typedefs" +# 1 +#pragma GCC diagnostic push +# 1 +#pragma GCC diagnostic ignored "-Wunused-variable" +# 1 +#pragma GCC diagnostic ignored "-Wunused-function" +# 1 +static char __nv_inited_managed_rt = 0; static void **__nv_fatbinhandle_for_managed_rt; static void __nv_save_fatbinhandle_for_managed_rt(void **in){__nv_fatbinhandle_for_managed_rt = in;} static char __nv_init_managed_rt_with_module(void **); static inline void __nv_init_managed_rt(void) { __nv_inited_managed_rt = (__nv_inited_managed_rt ? __nv_inited_managed_rt : __nv_init_managed_rt_with_module(__nv_fatbinhandle_for_managed_rt));} +# 1 +#pragma GCC diagnostic pop +# 1 +#pragma GCC diagnostic ignored "-Wunused-variable" + +# 1 +#define __nv_is_extended_device_lambda_closure_type(X) false +#define __nv_is_extended_host_device_lambda_closure_type(X) false +#define __nv_is_extended_device_lambda_with_preserved_return_type(X) false +#if defined(__nv_is_extended_device_lambda_closure_type) && defined(__nv_is_extended_host_device_lambda_closure_type)&& defined(__nv_is_extended_device_lambda_with_preserved_return_type) +#endif + +# 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic push +# 64 +#pragma GCC diagnostic ignored "-Wunused-function" +# 31 "/usr/include/bits/types.h" 3 +typedef unsigned char __u_char; +# 32 +typedef unsigned short __u_short; +# 33 +typedef unsigned __u_int; +# 34 +typedef unsigned long __u_long; +# 37 +typedef signed char __int8_t; +# 38 +typedef unsigned char __uint8_t; +# 39 +typedef signed short __int16_t; +# 40 +typedef unsigned short __uint16_t; +# 41 +typedef signed int __int32_t; +# 42 +typedef unsigned __uint32_t; +# 44 +typedef signed long __int64_t; +# 45 +typedef unsigned long __uint64_t; +# 52 +typedef __int8_t __int_least8_t; +# 53 +typedef __uint8_t __uint_least8_t; +# 54 +typedef __int16_t __int_least16_t; +# 55 +typedef __uint16_t __uint_least16_t; +# 56 +typedef __int32_t __int_least32_t; +# 57 +typedef __uint32_t __uint_least32_t; +# 58 +typedef __int64_t __int_least64_t; +# 59 +typedef __uint64_t __uint_least64_t; +# 63 +typedef long __quad_t; +# 64 +typedef unsigned long __u_quad_t; +# 72 +typedef long __intmax_t; +# 73 +typedef unsigned long __uintmax_t; +# 145 "/usr/include/bits/types.h" 3 +typedef unsigned long __dev_t; +# 146 +typedef unsigned __uid_t; +# 147 +typedef unsigned __gid_t; +# 148 +typedef unsigned long __ino_t; +# 149 +typedef unsigned long __ino64_t; +# 150 +typedef unsigned __mode_t; +# 151 +typedef unsigned long __nlink_t; +# 152 +typedef long __off_t; +# 153 +typedef long __off64_t; +# 154 +typedef int __pid_t; +# 155 +typedef struct { int __val[2]; } __fsid_t; +# 156 +typedef long __clock_t; +# 157 +typedef unsigned long __rlim_t; +# 158 +typedef unsigned long __rlim64_t; +# 159 +typedef unsigned __id_t; +# 160 +typedef long __time_t; +# 161 +typedef unsigned __useconds_t; +# 162 +typedef long __suseconds_t; +# 163 +typedef long __suseconds64_t; +# 165 +typedef int __daddr_t; +# 166 +typedef int __key_t; +# 169 +typedef int __clockid_t; +# 172 +typedef void *__timer_t; +# 175 +typedef long __blksize_t; +# 180 +typedef long __blkcnt_t; +# 181 +typedef long __blkcnt64_t; +# 184 +typedef unsigned long __fsblkcnt_t; +# 185 +typedef unsigned long __fsblkcnt64_t; +# 188 +typedef unsigned long __fsfilcnt_t; +# 189 +typedef unsigned long __fsfilcnt64_t; +# 192 +typedef long __fsword_t; +# 194 +typedef long __ssize_t; +# 197 +typedef long __syscall_slong_t; +# 199 +typedef unsigned long __syscall_ulong_t; +# 203 +typedef __off64_t __loff_t; +# 204 +typedef char *__caddr_t; +# 207 +typedef long __intptr_t; +# 210 +typedef unsigned __socklen_t; +# 215 +typedef int __sig_atomic_t; +# 28 "/usr/include/ctype.h" 3 +extern "C" { +# 47 "/usr/include/ctype.h" 3 +enum { +# 48 +_ISupper = ((0 < 8) ? (1 << 0) << 8 : ((1 << 0) >> 8)), +# 49 +_ISlower = ((1 < 8) ? (1 << 1) << 8 : ((1 << 1) >> 8)), +# 50 +_ISalpha = ((2 < 8) ? (1 << 2) << 8 : ((1 << 2) >> 8)), +# 51 +_ISdigit = ((3 < 8) ? (1 << 3) << 8 : ((1 << 3) >> 8)), +# 52 +_ISxdigit = ((4 < 8) ? (1 << 4) << 8 : ((1 << 4) >> 8)), +# 53 +_ISspace = ((5 < 8) ? (1 << 5) << 8 : ((1 << 5) >> 8)), +# 54 +_ISprint = ((6 < 8) ? (1 << 6) << 8 : ((1 << 6) >> 8)), +# 55 +_ISgraph = ((7 < 8) ? (1 << 7) << 8 : ((1 << 7) >> 8)), +# 56 +_ISblank = ((8 < 8) ? (1 << 8) << 8 : ((1 << 8) >> 8)), +# 57 +_IScntrl, +# 58 +_ISpunct = ((10 < 8) ? (1 << 10) << 8 : ((1 << 10) >> 8)), +# 59 +_ISalnum = ((11 < 8) ? (1 << 11) << 8 : ((1 << 11) >> 8)) +# 60 +}; +# 79 "/usr/include/ctype.h" 3 +extern const unsigned short **__ctype_b_loc() noexcept(true) +# 80 + __attribute((const)); +# 81 +extern const __int32_t **__ctype_tolower_loc() noexcept(true) +# 82 + __attribute((const)); +# 83 +extern const __int32_t **__ctype_toupper_loc() noexcept(true) +# 84 + __attribute((const)); +# 108 "/usr/include/ctype.h" 3 +extern int isalnum(int) noexcept(true); +# 109 +extern int isalpha(int) noexcept(true); +# 110 +extern int iscntrl(int) noexcept(true); +# 111 +extern int isdigit(int) noexcept(true); +# 112 +extern int islower(int) noexcept(true); +# 113 +extern int isgraph(int) noexcept(true); +# 114 +extern int isprint(int) noexcept(true); +# 115 +extern int ispunct(int) noexcept(true); +# 116 +extern int isspace(int) noexcept(true); +# 117 +extern int isupper(int) noexcept(true); +# 118 +extern int isxdigit(int) noexcept(true); +# 122 +extern int tolower(int __c) noexcept(true); +# 125 +extern int toupper(int __c) noexcept(true); +# 130 +extern int isblank(int) noexcept(true); +# 135 +extern int isctype(int __c, int __mask) noexcept(true); +# 142 +extern int isascii(int __c) noexcept(true); +# 146 +extern int toascii(int __c) noexcept(true); +# 150 +extern int _toupper(int) noexcept(true); +# 151 +extern int _tolower(int) noexcept(true); +# 27 "/usr/include/bits/types/__locale_t.h" 3 +struct __locale_struct { +# 30 +struct __locale_data *__locales[13]; +# 33 +const unsigned short *__ctype_b; +# 34 +const int *__ctype_tolower; +# 35 +const int *__ctype_toupper; +# 38 +const char *__names[13]; +# 39 +}; +# 41 +typedef __locale_struct *__locale_t; +# 24 "/usr/include/bits/types/locale_t.h" 3 +typedef __locale_t locale_t; +# 251 "/usr/include/ctype.h" 3 +extern int isalnum_l(int, locale_t) noexcept(true); +# 252 +extern int isalpha_l(int, locale_t) noexcept(true); +# 253 +extern int iscntrl_l(int, locale_t) noexcept(true); +# 254 +extern int isdigit_l(int, locale_t) noexcept(true); +# 255 +extern int islower_l(int, locale_t) noexcept(true); +# 256 +extern int isgraph_l(int, locale_t) noexcept(true); +# 257 +extern int isprint_l(int, locale_t) noexcept(true); +# 258 +extern int ispunct_l(int, locale_t) noexcept(true); +# 259 +extern int isspace_l(int, locale_t) noexcept(true); +# 260 +extern int isupper_l(int, locale_t) noexcept(true); +# 261 +extern int isxdigit_l(int, locale_t) noexcept(true); +# 263 +extern int isblank_l(int, locale_t) noexcept(true); +# 267 +extern int __tolower_l(int __c, locale_t __l) noexcept(true); +# 268 +extern int tolower_l(int __c, locale_t __l) noexcept(true); +# 271 +extern int __toupper_l(int __c, locale_t __l) noexcept(true); +# 272 +extern int toupper_l(int __c, locale_t __l) noexcept(true); +# 327 "/usr/include/ctype.h" 3 +} +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +#if 0 +# 68 +enum cudaRoundMode { +# 70 +cudaRoundNearest, +# 71 +cudaRoundZero, +# 72 +cudaRoundPosInf, +# 73 +cudaRoundMinInf +# 74 +}; +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 104 +struct char1 { +# 106 +signed char x; +# 107 +}; +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 109 +struct uchar1 { +# 111 +unsigned char x; +# 112 +}; +#endif +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 115 +struct __attribute((aligned(2))) char2 { +# 117 +signed char x, y; +# 118 +}; +#endif +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 120 +struct __attribute((aligned(2))) uchar2 { +# 122 +unsigned char x, y; +# 123 +}; +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 125 +struct char3 { +# 127 +signed char x, y, z; +# 128 +}; +#endif +# 130 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 130 +struct uchar3 { +# 132 +unsigned char x, y, z; +# 133 +}; +#endif +# 135 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 135 +struct __attribute((aligned(4))) char4 { +# 137 +signed char x, y, z, w; +# 138 +}; +#endif +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 140 +struct __attribute((aligned(4))) uchar4 { +# 142 +unsigned char x, y, z, w; +# 143 +}; +#endif +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 145 +struct short1 { +# 147 +short x; +# 148 +}; +#endif +# 150 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 150 +struct ushort1 { +# 152 +unsigned short x; +# 153 +}; +#endif +# 155 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 155 +struct __attribute((aligned(4))) short2 { +# 157 +short x, y; +# 158 +}; +#endif +# 160 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 160 +struct __attribute((aligned(4))) ushort2 { +# 162 +unsigned short x, y; +# 163 +}; +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 165 +struct short3 { +# 167 +short x, y, z; +# 168 +}; +#endif +# 170 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 170 +struct ushort3 { +# 172 +unsigned short x, y, z; +# 173 +}; +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 175 +struct __attribute((aligned(8))) short4 { short x; short y; short z; short w; }; +#endif +# 176 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 176 +struct __attribute((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; +#endif +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 178 +struct int1 { +# 180 +int x; +# 181 +}; +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 183 +struct uint1 { +# 185 +unsigned x; +# 186 +}; +#endif +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 188 +struct __attribute((aligned(8))) int2 { int x; int y; }; +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 189 +struct __attribute((aligned(8))) uint2 { unsigned x; unsigned y; }; +#endif +# 191 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 191 +struct int3 { +# 193 +int x, y, z; +# 194 +}; +#endif +# 196 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 196 +struct uint3 { +# 198 +unsigned x, y, z; +# 199 +}; +#endif +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 201 +struct __attribute((aligned(16))) int4 { +# 203 +int x, y, z, w; +# 204 +}; +#endif +# 206 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 206 +struct __attribute((aligned(16))) uint4 { +# 208 +unsigned x, y, z, w; +# 209 +}; +#endif +# 211 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 211 +struct long1 { +# 213 +long x; +# 214 +}; +#endif +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 216 +struct ulong1 { +# 218 +unsigned long x; +# 219 +}; +#endif +# 226 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 226 +struct __attribute((aligned((2) * sizeof(long)))) long2 { +# 228 +long x, y; +# 229 +}; +#endif +# 231 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 231 +struct __attribute((aligned((2) * sizeof(unsigned long)))) ulong2 { +# 233 +unsigned long x, y; +# 234 +}; +#endif +# 238 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 238 +struct long3 { +# 240 +long x, y, z; +# 241 +}; +#endif +# 243 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 243 +struct ulong3 { +# 245 +unsigned long x, y, z; +# 246 +}; +#endif +# 248 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 248 +struct __attribute((aligned(16))) long4 { +# 250 +long x, y, z, w; +# 251 +}; +#endif +# 253 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 253 +struct __attribute((aligned(16))) ulong4 { +# 255 +unsigned long x, y, z, w; +# 256 +}; +#endif +# 258 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 258 +struct float1 { +# 260 +float x; +# 261 +}; +#endif +# 280 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 280 +struct __attribute((aligned(8))) float2 { float x; float y; }; +#endif +# 285 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 285 +struct float3 { +# 287 +float x, y, z; +# 288 +}; +#endif +# 290 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 290 +struct __attribute((aligned(16))) float4 { +# 292 +float x, y, z, w; +# 293 +}; +#endif +# 295 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 295 +struct longlong1 { +# 297 +long long x; +# 298 +}; +#endif +# 300 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 300 +struct ulonglong1 { +# 302 +unsigned long long x; +# 303 +}; +#endif +# 305 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 305 +struct __attribute((aligned(16))) longlong2 { +# 307 +long long x, y; +# 308 +}; +#endif +# 310 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 310 +struct __attribute((aligned(16))) ulonglong2 { +# 312 +unsigned long long x, y; +# 313 +}; +#endif +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 315 +struct longlong3 { +# 317 +long long x, y, z; +# 318 +}; +#endif +# 320 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 320 +struct ulonglong3 { +# 322 +unsigned long long x, y, z; +# 323 +}; +#endif +# 325 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 325 +struct __attribute((aligned(16))) longlong4 { +# 327 +long long x, y, z, w; +# 328 +}; +#endif +# 330 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 330 +struct __attribute((aligned(16))) ulonglong4 { +# 332 +unsigned long long x, y, z, w; +# 333 +}; +#endif +# 335 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 335 +struct double1 { +# 337 +double x; +# 338 +}; +#endif +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 340 +struct __attribute((aligned(16))) double2 { +# 342 +double x, y; +# 343 +}; +#endif +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 345 +struct double3 { +# 347 +double x, y, z; +# 348 +}; +#endif +# 350 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 350 +struct __attribute((aligned(16))) double4 { +# 352 +double x, y, z, w; +# 353 +}; +#endif +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef char1 +# 367 +char1; +#endif +# 368 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uchar1 +# 368 +uchar1; +#endif +# 369 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef char2 +# 369 +char2; +#endif +# 370 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uchar2 +# 370 +uchar2; +#endif +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef char3 +# 371 +char3; +#endif +# 372 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uchar3 +# 372 +uchar3; +#endif +# 373 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef char4 +# 373 +char4; +#endif +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uchar4 +# 374 +uchar4; +#endif +# 375 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef short1 +# 375 +short1; +#endif +# 376 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ushort1 +# 376 +ushort1; +#endif +# 377 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef short2 +# 377 +short2; +#endif +# 378 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ushort2 +# 378 +ushort2; +#endif +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef short3 +# 379 +short3; +#endif +# 380 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ushort3 +# 380 +ushort3; +#endif +# 381 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef short4 +# 381 +short4; +#endif +# 382 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ushort4 +# 382 +ushort4; +#endif +# 383 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef int1 +# 383 +int1; +#endif +# 384 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uint1 +# 384 +uint1; +#endif +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef int2 +# 385 +int2; +#endif +# 386 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uint2 +# 386 +uint2; +#endif +# 387 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef int3 +# 387 +int3; +#endif +# 388 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uint3 +# 388 +uint3; +#endif +# 389 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef int4 +# 389 +int4; +#endif +# 390 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uint4 +# 390 +uint4; +#endif +# 391 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef long1 +# 391 +long1; +#endif +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulong1 +# 392 +ulong1; +#endif +# 393 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef long2 +# 393 +long2; +#endif +# 394 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulong2 +# 394 +ulong2; +#endif +# 395 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef long3 +# 395 +long3; +#endif +# 396 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulong3 +# 396 +ulong3; +#endif +# 397 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef long4 +# 397 +long4; +#endif +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulong4 +# 398 +ulong4; +#endif +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef float1 +# 399 +float1; +#endif +# 400 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef float2 +# 400 +float2; +#endif +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef float3 +# 401 +float3; +#endif +# 402 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef float4 +# 402 +float4; +#endif +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef longlong1 +# 403 +longlong1; +#endif +# 404 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulonglong1 +# 404 +ulonglong1; +#endif +# 405 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef longlong2 +# 405 +longlong2; +#endif +# 406 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulonglong2 +# 406 +ulonglong2; +#endif +# 407 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef longlong3 +# 407 +longlong3; +#endif +# 408 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulonglong3 +# 408 +ulonglong3; +#endif +# 409 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef longlong4 +# 409 +longlong4; +#endif +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulonglong4 +# 410 +ulonglong4; +#endif +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef double1 +# 411 +double1; +#endif +# 412 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef double2 +# 412 +double2; +#endif +# 413 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef double3 +# 413 +double3; +#endif +# 414 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef double4 +# 414 +double4; +#endif +# 426 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 426 +struct dim3 { +# 428 +unsigned x, y, z; +# 440 +}; +#endif +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef dim3 +# 442 +dim3; +#endif +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 +extern "C" { +# 24 +extern long __sysconf(int __name) noexcept(true); +# 25 +} +# 145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +typedef long ptrdiff_t; +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +typedef unsigned long size_t; +#if !defined(__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__) +#define __CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ +#endif +#include "crt/host_runtime.h" +# 436 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +typedef +# 425 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +struct { +# 426 +long long __max_align_ll __attribute((__aligned__(__alignof__(long long)))); +# 427 +long double __max_align_ld __attribute((__aligned__(__alignof__(long double)))); +# 436 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +} max_align_t; +# 443 +typedef __decltype((nullptr)) nullptr_t; +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 205 +enum cudaError { +# 212 +cudaSuccess, +# 218 +cudaErrorInvalidValue, +# 224 +cudaErrorMemoryAllocation, +# 230 +cudaErrorInitializationError, +# 237 +cudaErrorCudartUnloading, +# 244 +cudaErrorProfilerDisabled, +# 252 +cudaErrorProfilerNotInitialized, +# 259 +cudaErrorProfilerAlreadyStarted, +# 266 +cudaErrorProfilerAlreadyStopped, +# 274 +cudaErrorInvalidConfiguration, +# 280 +cudaErrorInvalidPitchValue = 12, +# 286 +cudaErrorInvalidSymbol, +# 294 +cudaErrorInvalidHostPointer = 16, +# 302 +cudaErrorInvalidDevicePointer, +# 307 +cudaErrorInvalidTexture, +# 313 +cudaErrorInvalidTextureBinding, +# 320 +cudaErrorInvalidChannelDescriptor, +# 326 +cudaErrorInvalidMemcpyDirection, +# 336 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorAddressOfConstant, +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorTextureFetchFailed, +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorTextureNotBound, +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSynchronizationError, +# 368 +cudaErrorInvalidFilterSetting, +# 374 +cudaErrorInvalidNormSetting, +# 382 +cudaErrorMixedDeviceExecution, +# 390 +cudaErrorNotYetImplemented = 31, +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorMemoryValueTooLarge, +# 405 +cudaErrorStubLibrary = 34, +# 412 +cudaErrorInsufficientDriver, +# 419 +cudaErrorCallRequiresNewerDriver, +# 425 +cudaErrorInvalidSurface, +# 431 +cudaErrorDuplicateVariableName = 43, +# 437 +cudaErrorDuplicateTextureName, +# 443 +cudaErrorDuplicateSurfaceName, +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorDevicesUnavailable, +# 466 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorIncompatibleDriverContext = 49, +# 472 +cudaErrorMissingConfiguration = 52, +# 481 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorPriorLaunchFailure, +# 487 +cudaErrorLaunchMaxDepthExceeded = 65, +# 495 +cudaErrorLaunchFileScopedTex, +# 503 +cudaErrorLaunchFileScopedSurf, +# 519 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSyncDepthExceeded, +# 531 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorLaunchPendingCountExceeded, +# 537 +cudaErrorInvalidDeviceFunction = 98, +# 543 +cudaErrorNoDevice = 100, +# 550 +cudaErrorInvalidDevice, +# 555 +cudaErrorDeviceNotLicensed, +# 564 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSoftwareValidityNotEstablished, +# 569 +cudaErrorStartupFailure = 127, +# 574 +cudaErrorInvalidKernelImage = 200, +# 584 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorDeviceUninitialized, +# 589 +cudaErrorMapBufferObjectFailed = 205, +# 594 +cudaErrorUnmapBufferObjectFailed, +# 600 +cudaErrorArrayIsMapped, +# 605 +cudaErrorAlreadyMapped, +# 613 +cudaErrorNoKernelImageForDevice, +# 618 +cudaErrorAlreadyAcquired, +# 623 +cudaErrorNotMapped, +# 629 +cudaErrorNotMappedAsArray, +# 635 +cudaErrorNotMappedAsPointer, +# 641 +cudaErrorECCUncorrectable, +# 647 +cudaErrorUnsupportedLimit, +# 653 +cudaErrorDeviceAlreadyInUse, +# 659 +cudaErrorPeerAccessUnsupported, +# 665 +cudaErrorInvalidPtx, +# 670 +cudaErrorInvalidGraphicsContext, +# 676 +cudaErrorNvlinkUncorrectable, +# 683 +cudaErrorJitCompilerNotFound, +# 690 +cudaErrorUnsupportedPtxVersion, +# 697 +cudaErrorJitCompilationDisabled, +# 702 +cudaErrorUnsupportedExecAffinity, +# 708 +cudaErrorUnsupportedDevSideSync, +# 719 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorContained, +# 724 +cudaErrorInvalidSource = 300, +# 729 +cudaErrorFileNotFound, +# 734 +cudaErrorSharedObjectSymbolNotFound, +# 739 +cudaErrorSharedObjectInitFailed, +# 744 +cudaErrorOperatingSystem, +# 751 +cudaErrorInvalidResourceHandle = 400, +# 757 +cudaErrorIllegalState, +# 765 +cudaErrorLossyQuery, +# 772 +cudaErrorSymbolNotFound = 500, +# 780 +cudaErrorNotReady = 600, +# 788 +cudaErrorIllegalAddress = 700, +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorLaunchOutOfResources, +# 808 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorLaunchTimeout, +# 814 +cudaErrorLaunchIncompatibleTexturing, +# 821 +cudaErrorPeerAccessAlreadyEnabled, +# 828 +cudaErrorPeerAccessNotEnabled, +# 841 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSetOnActiveProcess = 708, +# 848 +cudaErrorContextIsDestroyed, +# 855 +cudaErrorAssert, +# 862 +cudaErrorTooManyPeers, +# 868 +cudaErrorHostMemoryAlreadyRegistered, +# 874 +cudaErrorHostMemoryNotRegistered, +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorHardwareStackError, +# 891 +cudaErrorIllegalInstruction, +# 900 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorMisalignedAddress, +# 911 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorInvalidAddressSpace, +# 919 +cudaErrorInvalidPc, +# 930 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorLaunchFailure, +# 939 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorCooperativeLaunchTooLarge, +# 947 +cudaErrorTensorMemoryLeak, +# 952 +cudaErrorNotPermitted = 800, +# 958 +cudaErrorNotSupported, +# 967 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSystemNotReady, +# 974 +cudaErrorSystemDriverMismatch, +# 983 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorCompatNotSupportedOnDevice, +# 988 +cudaErrorMpsConnectionFailed, +# 993 +cudaErrorMpsRpcFailure, +# 999 +cudaErrorMpsServerNotReady, +# 1004 +cudaErrorMpsMaxClientsReached, +# 1009 +cudaErrorMpsMaxConnectionsReached, +# 1014 +cudaErrorMpsClientTerminated, +# 1019 +cudaErrorCdpNotSupported, +# 1024 +cudaErrorCdpVersionMismatch, +# 1029 +cudaErrorStreamCaptureUnsupported = 900, +# 1035 +cudaErrorStreamCaptureInvalidated, +# 1041 +cudaErrorStreamCaptureMerge, +# 1046 +cudaErrorStreamCaptureUnmatched, +# 1052 +cudaErrorStreamCaptureUnjoined, +# 1059 +cudaErrorStreamCaptureIsolation, +# 1065 +cudaErrorStreamCaptureImplicit, +# 1071 +cudaErrorCapturedEvent, +# 1078 +cudaErrorStreamCaptureWrongThread, +# 1083 +cudaErrorTimeout, +# 1089 +cudaErrorGraphExecUpdateFailure, +# 1099 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorExternalDevice, +# 1105 +cudaErrorInvalidClusterSize, +# 1111 +cudaErrorFunctionNotLoaded, +# 1117 +cudaErrorInvalidResourceType, +# 1123 +cudaErrorInvalidResourceConfiguration, +# 1128 +cudaErrorUnknown = 999, +# 1136 +cudaErrorApiFailureBase = 10000 +# 1137 +}; +#endif +# 1142 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1142 +enum cudaChannelFormatKind { +# 1144 +cudaChannelFormatKindSigned, +# 1145 +cudaChannelFormatKindUnsigned, +# 1146 +cudaChannelFormatKindFloat, +# 1147 +cudaChannelFormatKindNone, +# 1148 +cudaChannelFormatKindNV12, +# 1149 +cudaChannelFormatKindUnsignedNormalized8X1, +# 1150 +cudaChannelFormatKindUnsignedNormalized8X2, +# 1151 +cudaChannelFormatKindUnsignedNormalized8X4, +# 1152 +cudaChannelFormatKindUnsignedNormalized16X1, +# 1153 +cudaChannelFormatKindUnsignedNormalized16X2, +# 1154 +cudaChannelFormatKindUnsignedNormalized16X4, +# 1155 +cudaChannelFormatKindSignedNormalized8X1, +# 1156 +cudaChannelFormatKindSignedNormalized8X2, +# 1157 +cudaChannelFormatKindSignedNormalized8X4, +# 1158 +cudaChannelFormatKindSignedNormalized16X1, +# 1159 +cudaChannelFormatKindSignedNormalized16X2, +# 1160 +cudaChannelFormatKindSignedNormalized16X4, +# 1161 +cudaChannelFormatKindUnsignedBlockCompressed1, +# 1162 +cudaChannelFormatKindUnsignedBlockCompressed1SRGB, +# 1163 +cudaChannelFormatKindUnsignedBlockCompressed2, +# 1164 +cudaChannelFormatKindUnsignedBlockCompressed2SRGB, +# 1165 +cudaChannelFormatKindUnsignedBlockCompressed3, +# 1166 +cudaChannelFormatKindUnsignedBlockCompressed3SRGB, +# 1167 +cudaChannelFormatKindUnsignedBlockCompressed4, +# 1168 +cudaChannelFormatKindSignedBlockCompressed4, +# 1169 +cudaChannelFormatKindUnsignedBlockCompressed5, +# 1170 +cudaChannelFormatKindSignedBlockCompressed5, +# 1171 +cudaChannelFormatKindUnsignedBlockCompressed6H, +# 1172 +cudaChannelFormatKindSignedBlockCompressed6H, +# 1173 +cudaChannelFormatKindUnsignedBlockCompressed7, +# 1174 +cudaChannelFormatKindUnsignedBlockCompressed7SRGB, +# 1175 +cudaChannelFormatKindUnsignedNormalized1010102 +# 1177 +}; +#endif +# 1182 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1182 +struct cudaChannelFormatDesc { +# 1184 +int x; +# 1185 +int y; +# 1186 +int z; +# 1187 +int w; +# 1188 +cudaChannelFormatKind f; +# 1189 +}; +#endif +# 1194 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct cudaArray *cudaArray_t; +# 1199 +typedef const cudaArray *cudaArray_const_t; +# 1201 +struct cudaArray; +# 1206 +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; +# 1211 +typedef const cudaMipmappedArray *cudaMipmappedArray_const_t; +# 1213 +struct cudaMipmappedArray; +# 1223 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1223 +struct cudaArraySparseProperties { +# 1224 +struct { +# 1225 +unsigned width; +# 1226 +unsigned height; +# 1227 +unsigned depth; +# 1228 +} tileExtent; +# 1229 +unsigned miptailFirstLevel; +# 1230 +unsigned long long miptailSize; +# 1231 +unsigned flags; +# 1232 +unsigned reserved[4]; +# 1233 +}; +#endif +# 1238 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1238 +struct cudaArrayMemoryRequirements { +# 1239 +size_t size; +# 1240 +size_t alignment; +# 1241 +unsigned reserved[4]; +# 1242 +}; +#endif +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1247 +enum cudaMemoryType { +# 1249 +cudaMemoryTypeUnregistered, +# 1250 +cudaMemoryTypeHost, +# 1251 +cudaMemoryTypeDevice, +# 1252 +cudaMemoryTypeManaged +# 1253 +}; +#endif +# 1258 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1258 +enum cudaMemcpyKind { +# 1260 +cudaMemcpyHostToHost, +# 1261 +cudaMemcpyHostToDevice, +# 1262 +cudaMemcpyDeviceToHost, +# 1263 +cudaMemcpyDeviceToDevice, +# 1264 +cudaMemcpyDefault +# 1265 +}; +#endif +# 1272 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1272 +struct cudaPitchedPtr { +# 1274 +void *ptr; +# 1275 +size_t pitch; +# 1276 +size_t xsize; +# 1277 +size_t ysize; +# 1278 +}; +#endif +# 1285 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1285 +struct cudaExtent { +# 1287 +size_t width; +# 1288 +size_t height; +# 1289 +size_t depth; +# 1290 +}; +#endif +# 1297 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1297 +struct cudaPos { +# 1299 +size_t x; +# 1300 +size_t y; +# 1301 +size_t z; +# 1302 +}; +#endif +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1307 +struct cudaMemcpy3DParms { +# 1309 +cudaArray_t srcArray; +# 1310 +cudaPos srcPos; +# 1311 +cudaPitchedPtr srcPtr; +# 1313 +cudaArray_t dstArray; +# 1314 +cudaPos dstPos; +# 1315 +cudaPitchedPtr dstPtr; +# 1317 +cudaExtent extent; +# 1318 +cudaMemcpyKind kind; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 1319 +}; +#endif +# 1324 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1324 +struct cudaMemcpyNodeParams { +# 1325 +int flags; +# 1326 +int reserved[3]; +# 1327 +cudaMemcpy3DParms copyParams; +# 1328 +}; +#endif +# 1333 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1333 +struct cudaMemcpy3DPeerParms { +# 1335 +cudaArray_t srcArray; +# 1336 +cudaPos srcPos; +# 1337 +cudaPitchedPtr srcPtr; +# 1338 +int srcDevice; +# 1340 +cudaArray_t dstArray; +# 1341 +cudaPos dstPos; +# 1342 +cudaPitchedPtr dstPtr; +# 1343 +int dstDevice; +# 1345 +cudaExtent extent; +# 1346 +}; +#endif +# 1351 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1351 +struct cudaMemsetParams { +# 1352 +void *dst; +# 1353 +size_t pitch; +# 1354 +unsigned value; +# 1355 +unsigned elementSize; +# 1356 +size_t width; +# 1357 +size_t height; +# 1358 +}; +#endif +# 1363 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1363 +struct cudaMemsetParamsV2 { +# 1364 +void *dst; +# 1365 +size_t pitch; +# 1366 +unsigned value; +# 1367 +unsigned elementSize; +# 1368 +size_t width; +# 1369 +size_t height; +# 1370 +}; +#endif +# 1375 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1375 +enum cudaAccessProperty { +# 1376 +cudaAccessPropertyNormal, +# 1377 +cudaAccessPropertyStreaming, +# 1378 +cudaAccessPropertyPersisting +# 1379 +}; +#endif +# 1392 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1392 +struct cudaAccessPolicyWindow { +# 1393 +void *base_ptr; +# 1394 +size_t num_bytes; +# 1395 +float hitRatio; +# 1396 +cudaAccessProperty hitProp; +# 1397 +cudaAccessProperty missProp; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 1398 +}; +#endif +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef void (*cudaHostFn_t)(void * userData); +# 1415 +#if 0 +# 1415 +struct cudaHostNodeParams { +# 1416 +cudaHostFn_t fn; +# 1417 +void *userData; +# 1418 +}; +#endif +# 1423 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1423 +struct cudaHostNodeParamsV2 { +# 1424 +cudaHostFn_t fn; +# 1425 +void *userData; +# 1426 +}; +#endif +# 1431 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1431 +enum cudaStreamCaptureStatus { +# 1432 +cudaStreamCaptureStatusNone, +# 1433 +cudaStreamCaptureStatusActive, +# 1434 +cudaStreamCaptureStatusInvalidated +# 1436 +}; +#endif +# 1442 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1442 +enum cudaStreamCaptureMode { +# 1443 +cudaStreamCaptureModeGlobal, +# 1444 +cudaStreamCaptureModeThreadLocal, +# 1445 +cudaStreamCaptureModeRelaxed +# 1446 +}; +#endif +# 1448 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1448 +enum cudaSynchronizationPolicy { +# 1449 +cudaSyncPolicyAuto = 1, +# 1450 +cudaSyncPolicySpin, +# 1451 +cudaSyncPolicyYield, +# 1452 +cudaSyncPolicyBlockingSync +# 1453 +}; +#endif +# 1458 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1458 +enum cudaClusterSchedulingPolicy { +# 1459 +cudaClusterSchedulingPolicyDefault, +# 1460 +cudaClusterSchedulingPolicySpread, +# 1461 +cudaClusterSchedulingPolicyLoadBalancing +# 1462 +}; +#endif +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1467 +enum cudaStreamUpdateCaptureDependenciesFlags { +# 1468 +cudaStreamAddCaptureDependencies, +# 1469 +cudaStreamSetCaptureDependencies +# 1470 +}; +#endif +# 1475 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1475 +enum cudaUserObjectFlags { +# 1476 +cudaUserObjectNoDestructorSync = 1 +# 1477 +}; +#endif +# 1482 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1482 +enum cudaUserObjectRetainFlags { +# 1483 +cudaGraphUserObjectMove = 1 +# 1484 +}; +#endif +# 1489 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct cudaGraphicsResource; +# 1494 +#if 0 +# 1494 +enum cudaGraphicsRegisterFlags { +# 1496 +cudaGraphicsRegisterFlagsNone, +# 1497 +cudaGraphicsRegisterFlagsReadOnly, +# 1498 +cudaGraphicsRegisterFlagsWriteDiscard, +# 1499 +cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, +# 1500 +cudaGraphicsRegisterFlagsTextureGather = 8 +# 1501 +}; +#endif +# 1506 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1506 +enum cudaGraphicsMapFlags { +# 1508 +cudaGraphicsMapFlagsNone, +# 1509 +cudaGraphicsMapFlagsReadOnly, +# 1510 +cudaGraphicsMapFlagsWriteDiscard +# 1511 +}; +#endif +# 1516 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1516 +enum cudaGraphicsCubeFace { +# 1518 +cudaGraphicsCubeFacePositiveX, +# 1519 +cudaGraphicsCubeFaceNegativeX, +# 1520 +cudaGraphicsCubeFacePositiveY, +# 1521 +cudaGraphicsCubeFaceNegativeY, +# 1522 +cudaGraphicsCubeFacePositiveZ, +# 1523 +cudaGraphicsCubeFaceNegativeZ +# 1524 +}; +#endif +# 1529 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1529 +enum cudaResourceType { +# 1531 +cudaResourceTypeArray, +# 1532 +cudaResourceTypeMipmappedArray, +# 1533 +cudaResourceTypeLinear, +# 1534 +cudaResourceTypePitch2D +# 1535 +}; +#endif +# 1540 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1540 +enum cudaResourceViewFormat { +# 1542 +cudaResViewFormatNone, +# 1543 +cudaResViewFormatUnsignedChar1, +# 1544 +cudaResViewFormatUnsignedChar2, +# 1545 +cudaResViewFormatUnsignedChar4, +# 1546 +cudaResViewFormatSignedChar1, +# 1547 +cudaResViewFormatSignedChar2, +# 1548 +cudaResViewFormatSignedChar4, +# 1549 +cudaResViewFormatUnsignedShort1, +# 1550 +cudaResViewFormatUnsignedShort2, +# 1551 +cudaResViewFormatUnsignedShort4, +# 1552 +cudaResViewFormatSignedShort1, +# 1553 +cudaResViewFormatSignedShort2, +# 1554 +cudaResViewFormatSignedShort4, +# 1555 +cudaResViewFormatUnsignedInt1, +# 1556 +cudaResViewFormatUnsignedInt2, +# 1557 +cudaResViewFormatUnsignedInt4, +# 1558 +cudaResViewFormatSignedInt1, +# 1559 +cudaResViewFormatSignedInt2, +# 1560 +cudaResViewFormatSignedInt4, +# 1561 +cudaResViewFormatHalf1, +# 1562 +cudaResViewFormatHalf2, +# 1563 +cudaResViewFormatHalf4, +# 1564 +cudaResViewFormatFloat1, +# 1565 +cudaResViewFormatFloat2, +# 1566 +cudaResViewFormatFloat4, +# 1567 +cudaResViewFormatUnsignedBlockCompressed1, +# 1568 +cudaResViewFormatUnsignedBlockCompressed2, +# 1569 +cudaResViewFormatUnsignedBlockCompressed3, +# 1570 +cudaResViewFormatUnsignedBlockCompressed4, +# 1571 +cudaResViewFormatSignedBlockCompressed4, +# 1572 +cudaResViewFormatUnsignedBlockCompressed5, +# 1573 +cudaResViewFormatSignedBlockCompressed5, +# 1574 +cudaResViewFormatUnsignedBlockCompressed6H, +# 1575 +cudaResViewFormatSignedBlockCompressed6H, +# 1576 +cudaResViewFormatUnsignedBlockCompressed7 +# 1577 +}; +#endif +# 1582 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1582 +struct cudaResourceDesc { +# 1583 +cudaResourceType resType; +# 1585 +union { +# 1586 +struct { +# 1587 +cudaArray_t array; +# 1588 +} array; +# 1589 +struct { +# 1590 +cudaMipmappedArray_t mipmap; +# 1591 +} mipmap; +# 1592 +struct { +# 1593 +void *devPtr; +# 1594 +cudaChannelFormatDesc desc; +# 1595 +size_t sizeInBytes; +# 1596 +} linear; +# 1597 +struct { +# 1598 +void *devPtr; +# 1599 +cudaChannelFormatDesc desc; +# 1600 +size_t width; +# 1601 +size_t height; +# 1602 +size_t pitchInBytes; +# 1603 +} pitch2D; +# 1604 +} res; +# 1605 +}; +#endif +# 1610 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1610 +struct cudaResourceViewDesc { +# 1612 +cudaResourceViewFormat format; +# 1613 +size_t width; +# 1614 +size_t height; +# 1615 +size_t depth; +# 1616 +unsigned firstMipmapLevel; +# 1617 +unsigned lastMipmapLevel; +# 1618 +unsigned firstLayer; +# 1619 +unsigned lastLayer; +# 1620 +}; +#endif +# 1625 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1625 +struct cudaPointerAttributes { +# 1631 +cudaMemoryType type; +# 1642 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +int device; +# 1648 +void *devicePointer; +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +void *hostPointer; +# 1658 +}; +#endif +# 1663 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1663 +struct cudaFuncAttributes { +# 1670 +size_t sharedSizeBytes; +# 1676 +size_t constSizeBytes; +# 1681 +size_t localSizeBytes; +# 1688 +int maxThreadsPerBlock; +# 1693 +int numRegs; +# 1700 +int ptxVersion; +# 1707 +int binaryVersion; +# 1713 +int cacheModeCA; +# 1720 +int maxDynamicSharedSizeBytes; +# 1729 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +int preferredShmemCarveout; +# 1735 +int clusterDimMustBeSet; +# 1746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +int requiredClusterWidth; +# 1747 +int requiredClusterHeight; +# 1748 +int requiredClusterDepth; +# 1754 +int clusterSchedulingPolicyPreference; +# 1776 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +int nonPortableClusterSizeAllowed; +# 1781 +int reserved[16]; +# 1782 +}; +#endif +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1787 +enum cudaFuncAttribute { +# 1789 +cudaFuncAttributeMaxDynamicSharedMemorySize = 8, +# 1790 +cudaFuncAttributePreferredSharedMemoryCarveout, +# 1791 +cudaFuncAttributeClusterDimMustBeSet, +# 1792 +cudaFuncAttributeRequiredClusterWidth, +# 1793 +cudaFuncAttributeRequiredClusterHeight, +# 1794 +cudaFuncAttributeRequiredClusterDepth, +# 1795 +cudaFuncAttributeNonPortableClusterSizeAllowed, +# 1796 +cudaFuncAttributeClusterSchedulingPolicyPreference, +# 1797 +cudaFuncAttributeMax +# 1798 +}; +#endif +# 1803 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1803 +enum cudaFuncCache { +# 1805 +cudaFuncCachePreferNone, +# 1806 +cudaFuncCachePreferShared, +# 1807 +cudaFuncCachePreferL1, +# 1808 +cudaFuncCachePreferEqual +# 1809 +}; +#endif +# 1815 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1815 +enum cudaSharedMemConfig { +# 1817 +cudaSharedMemBankSizeDefault, +# 1818 +cudaSharedMemBankSizeFourByte, +# 1819 +cudaSharedMemBankSizeEightByte +# 1820 +}; +#endif +# 1825 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1825 +enum cudaSharedCarveout { +# 1826 +cudaSharedmemCarveoutDefault = (-1), +# 1827 +cudaSharedmemCarveoutMaxShared = 100, +# 1828 +cudaSharedmemCarveoutMaxL1 = 0 +# 1829 +}; +#endif +# 1834 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1834 +enum cudaComputeMode { +# 1836 +cudaComputeModeDefault, +# 1837 +cudaComputeModeExclusive, +# 1838 +cudaComputeModeProhibited, +# 1839 +cudaComputeModeExclusiveProcess +# 1840 +}; +#endif +# 1845 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1845 +enum cudaLimit { +# 1847 +cudaLimitStackSize, +# 1848 +cudaLimitPrintfFifoSize, +# 1849 +cudaLimitMallocHeapSize, +# 1850 +cudaLimitDevRuntimeSyncDepth, +# 1851 +cudaLimitDevRuntimePendingLaunchCount, +# 1852 +cudaLimitMaxL2FetchGranularity, +# 1853 +cudaLimitPersistingL2CacheSize +# 1854 +}; +#endif +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1859 +enum cudaMemoryAdvise { +# 1861 +cudaMemAdviseSetReadMostly = 1, +# 1862 +cudaMemAdviseUnsetReadMostly, +# 1863 +cudaMemAdviseSetPreferredLocation, +# 1864 +cudaMemAdviseUnsetPreferredLocation, +# 1865 +cudaMemAdviseSetAccessedBy, +# 1866 +cudaMemAdviseUnsetAccessedBy +# 1867 +}; +#endif +# 1872 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1872 +enum cudaMemRangeAttribute { +# 1874 +cudaMemRangeAttributeReadMostly = 1, +# 1875 +cudaMemRangeAttributePreferredLocation, +# 1876 +cudaMemRangeAttributeAccessedBy, +# 1877 +cudaMemRangeAttributeLastPrefetchLocation, +# 1878 +cudaMemRangeAttributePreferredLocationType, +# 1879 +cudaMemRangeAttributePreferredLocationId, +# 1880 +cudaMemRangeAttributeLastPrefetchLocationType, +# 1881 +cudaMemRangeAttributeLastPrefetchLocationId +# 1882 +}; +#endif +# 1887 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1887 +enum cudaFlushGPUDirectRDMAWritesOptions { +# 1888 +cudaFlushGPUDirectRDMAWritesOptionHost = (1 << 0), +# 1889 +cudaFlushGPUDirectRDMAWritesOptionMemOps +# 1890 +}; +#endif +# 1895 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1895 +enum cudaGPUDirectRDMAWritesOrdering { +# 1896 +cudaGPUDirectRDMAWritesOrderingNone, +# 1897 +cudaGPUDirectRDMAWritesOrderingOwner = 100, +# 1898 +cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +# 1899 +}; +#endif +# 1904 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1904 +enum cudaFlushGPUDirectRDMAWritesScope { +# 1905 +cudaFlushGPUDirectRDMAWritesToOwner = 100, +# 1906 +cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +# 1907 +}; +#endif +# 1912 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1912 +enum cudaFlushGPUDirectRDMAWritesTarget { +# 1913 +cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +# 1914 +}; +#endif +# 1920 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1920 +enum cudaDeviceAttr { +# 1922 +cudaDevAttrMaxThreadsPerBlock = 1, +# 1923 +cudaDevAttrMaxBlockDimX, +# 1924 +cudaDevAttrMaxBlockDimY, +# 1925 +cudaDevAttrMaxBlockDimZ, +# 1926 +cudaDevAttrMaxGridDimX, +# 1927 +cudaDevAttrMaxGridDimY, +# 1928 +cudaDevAttrMaxGridDimZ, +# 1929 +cudaDevAttrMaxSharedMemoryPerBlock, +# 1930 +cudaDevAttrTotalConstantMemory, +# 1931 +cudaDevAttrWarpSize, +# 1932 +cudaDevAttrMaxPitch, +# 1933 +cudaDevAttrMaxRegistersPerBlock, +# 1934 +cudaDevAttrClockRate, +# 1935 +cudaDevAttrTextureAlignment, +# 1936 +cudaDevAttrGpuOverlap, +# 1937 +cudaDevAttrMultiProcessorCount, +# 1938 +cudaDevAttrKernelExecTimeout, +# 1939 +cudaDevAttrIntegrated, +# 1940 +cudaDevAttrCanMapHostMemory, +# 1941 +cudaDevAttrComputeMode, +# 1942 +cudaDevAttrMaxTexture1DWidth, +# 1943 +cudaDevAttrMaxTexture2DWidth, +# 1944 +cudaDevAttrMaxTexture2DHeight, +# 1945 +cudaDevAttrMaxTexture3DWidth, +# 1946 +cudaDevAttrMaxTexture3DHeight, +# 1947 +cudaDevAttrMaxTexture3DDepth, +# 1948 +cudaDevAttrMaxTexture2DLayeredWidth, +# 1949 +cudaDevAttrMaxTexture2DLayeredHeight, +# 1950 +cudaDevAttrMaxTexture2DLayeredLayers, +# 1951 +cudaDevAttrSurfaceAlignment, +# 1952 +cudaDevAttrConcurrentKernels, +# 1953 +cudaDevAttrEccEnabled, +# 1954 +cudaDevAttrPciBusId, +# 1955 +cudaDevAttrPciDeviceId, +# 1956 +cudaDevAttrTccDriver, +# 1957 +cudaDevAttrMemoryClockRate, +# 1958 +cudaDevAttrGlobalMemoryBusWidth, +# 1959 +cudaDevAttrL2CacheSize, +# 1960 +cudaDevAttrMaxThreadsPerMultiProcessor, +# 1961 +cudaDevAttrAsyncEngineCount, +# 1962 +cudaDevAttrUnifiedAddressing, +# 1963 +cudaDevAttrMaxTexture1DLayeredWidth, +# 1964 +cudaDevAttrMaxTexture1DLayeredLayers, +# 1965 +cudaDevAttrMaxTexture2DGatherWidth = 45, +# 1966 +cudaDevAttrMaxTexture2DGatherHeight, +# 1967 +cudaDevAttrMaxTexture3DWidthAlt, +# 1968 +cudaDevAttrMaxTexture3DHeightAlt, +# 1969 +cudaDevAttrMaxTexture3DDepthAlt, +# 1970 +cudaDevAttrPciDomainId, +# 1971 +cudaDevAttrTexturePitchAlignment, +# 1972 +cudaDevAttrMaxTextureCubemapWidth, +# 1973 +cudaDevAttrMaxTextureCubemapLayeredWidth, +# 1974 +cudaDevAttrMaxTextureCubemapLayeredLayers, +# 1975 +cudaDevAttrMaxSurface1DWidth, +# 1976 +cudaDevAttrMaxSurface2DWidth, +# 1977 +cudaDevAttrMaxSurface2DHeight, +# 1978 +cudaDevAttrMaxSurface3DWidth, +# 1979 +cudaDevAttrMaxSurface3DHeight, +# 1980 +cudaDevAttrMaxSurface3DDepth, +# 1981 +cudaDevAttrMaxSurface1DLayeredWidth, +# 1982 +cudaDevAttrMaxSurface1DLayeredLayers, +# 1983 +cudaDevAttrMaxSurface2DLayeredWidth, +# 1984 +cudaDevAttrMaxSurface2DLayeredHeight, +# 1985 +cudaDevAttrMaxSurface2DLayeredLayers, +# 1986 +cudaDevAttrMaxSurfaceCubemapWidth, +# 1987 +cudaDevAttrMaxSurfaceCubemapLayeredWidth, +# 1988 +cudaDevAttrMaxSurfaceCubemapLayeredLayers, +# 1989 +cudaDevAttrMaxTexture1DLinearWidth, +# 1990 +cudaDevAttrMaxTexture2DLinearWidth, +# 1991 +cudaDevAttrMaxTexture2DLinearHeight, +# 1992 +cudaDevAttrMaxTexture2DLinearPitch, +# 1993 +cudaDevAttrMaxTexture2DMipmappedWidth, +# 1994 +cudaDevAttrMaxTexture2DMipmappedHeight, +# 1995 +cudaDevAttrComputeCapabilityMajor, +# 1996 +cudaDevAttrComputeCapabilityMinor, +# 1997 +cudaDevAttrMaxTexture1DMipmappedWidth, +# 1998 +cudaDevAttrStreamPrioritiesSupported, +# 1999 +cudaDevAttrGlobalL1CacheSupported, +# 2000 +cudaDevAttrLocalL1CacheSupported, +# 2001 +cudaDevAttrMaxSharedMemoryPerMultiprocessor, +# 2002 +cudaDevAttrMaxRegistersPerMultiprocessor, +# 2003 +cudaDevAttrManagedMemory, +# 2004 +cudaDevAttrIsMultiGpuBoard, +# 2005 +cudaDevAttrMultiGpuBoardGroupID, +# 2006 +cudaDevAttrHostNativeAtomicSupported, +# 2007 +cudaDevAttrSingleToDoublePrecisionPerfRatio, +# 2008 +cudaDevAttrPageableMemoryAccess, +# 2009 +cudaDevAttrConcurrentManagedAccess, +# 2010 +cudaDevAttrComputePreemptionSupported, +# 2011 +cudaDevAttrCanUseHostPointerForRegisteredMem, +# 2012 +cudaDevAttrReserved92, +# 2013 +cudaDevAttrReserved93, +# 2014 +cudaDevAttrReserved94, +# 2015 +cudaDevAttrCooperativeLaunch, +# 2016 +cudaDevAttrCooperativeMultiDeviceLaunch, +# 2017 +cudaDevAttrMaxSharedMemoryPerBlockOptin, +# 2018 +cudaDevAttrCanFlushRemoteWrites, +# 2019 +cudaDevAttrHostRegisterSupported, +# 2020 +cudaDevAttrPageableMemoryAccessUsesHostPageTables, +# 2021 +cudaDevAttrDirectManagedMemAccessFromHost, +# 2022 +cudaDevAttrMaxBlocksPerMultiprocessor = 106, +# 2023 +cudaDevAttrMaxPersistingL2CacheSize = 108, +# 2024 +cudaDevAttrMaxAccessPolicyWindowSize, +# 2025 +cudaDevAttrReservedSharedMemoryPerBlock = 111, +# 2026 +cudaDevAttrSparseCudaArraySupported, +# 2027 +cudaDevAttrHostRegisterReadOnlySupported, +# 2028 +cudaDevAttrTimelineSemaphoreInteropSupported, +# 2029 +cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, +# 2030 +cudaDevAttrMemoryPoolsSupported, +# 2031 +cudaDevAttrGPUDirectRDMASupported, +# 2032 +cudaDevAttrGPUDirectRDMAFlushWritesOptions, +# 2033 +cudaDevAttrGPUDirectRDMAWritesOrdering, +# 2034 +cudaDevAttrMemoryPoolSupportedHandleTypes, +# 2035 +cudaDevAttrClusterLaunch, +# 2036 +cudaDevAttrDeferredMappingCudaArraySupported, +# 2037 +cudaDevAttrReserved122, +# 2038 +cudaDevAttrReserved123, +# 2039 +cudaDevAttrReserved124, +# 2040 +cudaDevAttrIpcEventSupport, +# 2041 +cudaDevAttrMemSyncDomainCount, +# 2042 +cudaDevAttrReserved127, +# 2043 +cudaDevAttrReserved128, +# 2044 +cudaDevAttrReserved129, +# 2045 +cudaDevAttrNumaConfig, +# 2046 +cudaDevAttrNumaId, +# 2047 +cudaDevAttrReserved132, +# 2048 +cudaDevAttrMpsEnabled, +# 2049 +cudaDevAttrHostNumaId, +# 2050 +cudaDevAttrD3D12CigSupported, +# 2051 +cudaDevAttrGpuPciDeviceId = 139, +# 2052 +cudaDevAttrGpuPciSubsystemId, +# 2053 +cudaDevAttrHostNumaMultinodeIpcSupported = 143, +# 2054 +cudaDevAttrMax +# 2055 +}; +#endif +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2060 +enum cudaMemPoolAttr { +# 2070 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaMemPoolReuseFollowEventDependencies = 1, +# 2077 +cudaMemPoolReuseAllowOpportunistic, +# 2085 +cudaMemPoolReuseAllowInternalDependencies, +# 2096 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaMemPoolAttrReleaseThreshold, +# 2102 +cudaMemPoolAttrReservedMemCurrent, +# 2109 +cudaMemPoolAttrReservedMemHigh, +# 2115 +cudaMemPoolAttrUsedMemCurrent, +# 2122 +cudaMemPoolAttrUsedMemHigh +# 2123 +}; +#endif +# 2128 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2128 +enum cudaMemLocationType { +# 2129 +cudaMemLocationTypeInvalid, +# 2130 +cudaMemLocationTypeDevice, +# 2131 +cudaMemLocationTypeHost, +# 2132 +cudaMemLocationTypeHostNuma, +# 2133 +cudaMemLocationTypeHostNumaCurrent +# 2134 +}; +#endif +# 2142 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2142 +struct cudaMemLocation { +# 2143 +cudaMemLocationType type; +# 2144 +int id; +# 2145 +}; +#endif +# 2150 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2150 +enum cudaMemAccessFlags { +# 2151 +cudaMemAccessFlagsProtNone, +# 2152 +cudaMemAccessFlagsProtRead, +# 2153 +cudaMemAccessFlagsProtReadWrite = 3 +# 2154 +}; +#endif +# 2159 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2159 +struct cudaMemAccessDesc { +# 2160 +cudaMemLocation location; +# 2161 +cudaMemAccessFlags flags; +# 2162 +}; +#endif +# 2167 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2167 +enum cudaMemAllocationType { +# 2168 +cudaMemAllocationTypeInvalid, +# 2172 +cudaMemAllocationTypePinned, +# 2173 +cudaMemAllocationTypeMax = 2147483647 +# 2174 +}; +#endif +# 2179 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2179 +enum cudaMemAllocationHandleType { +# 2180 +cudaMemHandleTypeNone, +# 2181 +cudaMemHandleTypePosixFileDescriptor, +# 2182 +cudaMemHandleTypeWin32, +# 2183 +cudaMemHandleTypeWin32Kmt = 4, +# 2184 +cudaMemHandleTypeFabric = 8 +# 2185 +}; +#endif +# 2196 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2196 +struct cudaMemPoolProps { +# 2197 +cudaMemAllocationType allocType; +# 2198 +cudaMemAllocationHandleType handleTypes; +# 2199 +cudaMemLocation location; +# 2206 +void *win32SecurityAttributes; +# 2207 +size_t maxSize; +# 2208 +unsigned short usage; +# 2209 +unsigned char reserved[54]; +# 2210 +}; +#endif +# 2215 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2215 +struct cudaMemPoolPtrExportData { +# 2216 +unsigned char reserved[64]; +# 2217 +}; +#endif +# 2222 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2222 +struct cudaMemAllocNodeParams { +# 2227 +cudaMemPoolProps poolProps; +# 2228 +const cudaMemAccessDesc *accessDescs; +# 2229 +size_t accessDescCount; +# 2230 +size_t bytesize; +# 2231 +void *dptr; +# 2232 +}; +#endif +# 2237 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2237 +struct cudaMemAllocNodeParamsV2 { +# 2242 +cudaMemPoolProps poolProps; +# 2243 +const cudaMemAccessDesc *accessDescs; +# 2244 +size_t accessDescCount; +# 2245 +size_t bytesize; +# 2246 +void *dptr; +# 2247 +}; +#endif +# 2252 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2252 +struct cudaMemFreeNodeParams { +# 2253 +void *dptr; +# 2254 +}; +#endif +# 2259 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2259 +enum cudaGraphMemAttributeType { +# 2264 +cudaGraphMemAttrUsedMemCurrent, +# 2271 +cudaGraphMemAttrUsedMemHigh, +# 2278 +cudaGraphMemAttrReservedMemCurrent, +# 2285 +cudaGraphMemAttrReservedMemHigh +# 2286 +}; +#endif +# 2291 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2291 +enum cudaMemcpyFlags { +# 2292 +cudaMemcpyFlagDefault, +# 2297 +cudaMemcpyFlagPreferOverlapWithCompute +# 2298 +}; +#endif +# 2300 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2300 +enum cudaMemcpySrcAccessOrder { +# 2304 +cudaMemcpySrcAccessOrderInvalid, +# 2309 +cudaMemcpySrcAccessOrderStream, +# 2320 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaMemcpySrcAccessOrderDuringApiCall, +# 2329 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaMemcpySrcAccessOrderAny, +# 2331 +cudaMemcpySrcAccessOrderMax = 2147483647 +# 2332 +}; +#endif +# 2337 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2337 +struct cudaMemcpyAttributes { +# 2338 +cudaMemcpySrcAccessOrder srcAccessOrder; +# 2339 +cudaMemLocation srcLocHint; +# 2340 +cudaMemLocation dstLocHint; +# 2341 +unsigned flags; +# 2342 +}; +#endif +# 2347 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2347 +enum cudaMemcpy3DOperandType { +# 2348 +cudaMemcpyOperandTypePointer = 1, +# 2349 +cudaMemcpyOperandTypeArray, +# 2350 +cudaMemcpyOperandTypeMax = 2147483647 +# 2351 +}; +#endif +# 2356 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2356 +struct cudaOffset3D { +# 2357 +size_t x; +# 2358 +size_t y; +# 2359 +size_t z; +# 2360 +}; +#endif +# 2365 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2365 +struct cudaMemcpy3DOperand { +# 2366 +cudaMemcpy3DOperandType type; +# 2367 +union { +# 2371 +struct { +# 2372 +void *ptr; +# 2373 +size_t rowLength; +# 2374 +size_t layerHeight; +# 2375 +cudaMemLocation locHint; +# 2376 +} ptr; +# 2381 +struct { +# 2382 +cudaArray_t array; +# 2383 +cudaOffset3D offset; +# 2384 +} array; +# 2385 +} op; +# 2386 +}; +#endif +# 2388 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2388 +struct cudaMemcpy3DBatchOp { +# 2389 +cudaMemcpy3DOperand src; +# 2390 +cudaMemcpy3DOperand dst; +# 2391 +cudaExtent extent; +# 2392 +cudaMemcpySrcAccessOrder srcAccessOrder; +# 2393 +unsigned flags; +# 2394 +}; +#endif +# 2400 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2400 +enum cudaDeviceP2PAttr { +# 2401 +cudaDevP2PAttrPerformanceRank = 1, +# 2402 +cudaDevP2PAttrAccessSupported, +# 2403 +cudaDevP2PAttrNativeAtomicSupported, +# 2404 +cudaDevP2PAttrCudaArrayAccessSupported +# 2405 +}; +#endif +# 2412 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2412 +struct CUuuid_st { +# 2413 +char bytes[16]; +# 2414 +}; +#endif +# 2415 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef CUuuid_st +# 2415 +CUuuid; +#endif +# 2417 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef CUuuid_st +# 2417 +cudaUUID_t; +#endif +# 2422 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2422 +struct cudaDeviceProp { +# 2424 +char name[256]; +# 2425 +cudaUUID_t uuid; +# 2426 +char luid[8]; +# 2427 +unsigned luidDeviceNodeMask; +# 2428 +size_t totalGlobalMem; +# 2429 +size_t sharedMemPerBlock; +# 2430 +int regsPerBlock; +# 2431 +int warpSize; +# 2432 +size_t memPitch; +# 2433 +int maxThreadsPerBlock; +# 2434 +int maxThreadsDim[3]; +# 2435 +int maxGridSize[3]; +# 2436 +int clockRate; +# 2437 +size_t totalConstMem; +# 2438 +int major; +# 2439 +int minor; +# 2440 +size_t textureAlignment; +# 2441 +size_t texturePitchAlignment; +# 2442 +int deviceOverlap; +# 2443 +int multiProcessorCount; +# 2444 +int kernelExecTimeoutEnabled; +# 2445 +int integrated; +# 2446 +int canMapHostMemory; +# 2447 +int computeMode; +# 2448 +int maxTexture1D; +# 2449 +int maxTexture1DMipmap; +# 2450 +int maxTexture1DLinear; +# 2451 +int maxTexture2D[2]; +# 2452 +int maxTexture2DMipmap[2]; +# 2453 +int maxTexture2DLinear[3]; +# 2454 +int maxTexture2DGather[2]; +# 2455 +int maxTexture3D[3]; +# 2456 +int maxTexture3DAlt[3]; +# 2457 +int maxTextureCubemap; +# 2458 +int maxTexture1DLayered[2]; +# 2459 +int maxTexture2DLayered[3]; +# 2460 +int maxTextureCubemapLayered[2]; +# 2461 +int maxSurface1D; +# 2462 +int maxSurface2D[2]; +# 2463 +int maxSurface3D[3]; +# 2464 +int maxSurface1DLayered[2]; +# 2465 +int maxSurface2DLayered[3]; +# 2466 +int maxSurfaceCubemap; +# 2467 +int maxSurfaceCubemapLayered[2]; +# 2468 +size_t surfaceAlignment; +# 2469 +int concurrentKernels; +# 2470 +int ECCEnabled; +# 2471 +int pciBusID; +# 2472 +int pciDeviceID; +# 2473 +int pciDomainID; +# 2474 +int tccDriver; +# 2475 +int asyncEngineCount; +# 2476 +int unifiedAddressing; +# 2477 +int memoryClockRate; +# 2478 +int memoryBusWidth; +# 2479 +int l2CacheSize; +# 2480 +int persistingL2CacheMaxSize; +# 2481 +int maxThreadsPerMultiProcessor; +# 2482 +int streamPrioritiesSupported; +# 2483 +int globalL1CacheSupported; +# 2484 +int localL1CacheSupported; +# 2485 +size_t sharedMemPerMultiprocessor; +# 2486 +int regsPerMultiprocessor; +# 2487 +int managedMemory; +# 2488 +int isMultiGpuBoard; +# 2489 +int multiGpuBoardGroupID; +# 2490 +int hostNativeAtomicSupported; +# 2491 +int singleToDoublePrecisionPerfRatio; +# 2492 +int pageableMemoryAccess; +# 2493 +int concurrentManagedAccess; +# 2494 +int computePreemptionSupported; +# 2495 +int canUseHostPointerForRegisteredMem; +# 2496 +int cooperativeLaunch; +# 2497 +int cooperativeMultiDeviceLaunch; +# 2498 +size_t sharedMemPerBlockOptin; +# 2499 +int pageableMemoryAccessUsesHostPageTables; +# 2500 +int directManagedMemAccessFromHost; +# 2501 +int maxBlocksPerMultiProcessor; +# 2502 +int accessPolicyMaxWindowSize; +# 2503 +size_t reservedSharedMemPerBlock; +# 2504 +int hostRegisterSupported; +# 2505 +int sparseCudaArraySupported; +# 2506 +int hostRegisterReadOnlySupported; +# 2507 +int timelineSemaphoreInteropSupported; +# 2508 +int memoryPoolsSupported; +# 2509 +int gpuDirectRDMASupported; +# 2510 +unsigned gpuDirectRDMAFlushWritesOptions; +# 2511 +int gpuDirectRDMAWritesOrdering; +# 2512 +unsigned memoryPoolSupportedHandleTypes; +# 2513 +int deferredMappingCudaArraySupported; +# 2514 +int ipcEventSupported; +# 2515 +int clusterLaunch; +# 2516 +int unifiedFunctionPointers; +# 2517 +int reserved[63]; +# 2518 +}; +#endif +# 2531 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 2528 +struct cudaIpcEventHandle_st { +# 2530 +char reserved[64]; +# 2531 +} cudaIpcEventHandle_t; +#endif +# 2539 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 2536 +struct cudaIpcMemHandle_st { +# 2538 +char reserved[64]; +# 2539 +} cudaIpcMemHandle_t; +#endif +# 2547 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 2544 +struct cudaMemFabricHandle_st { +# 2546 +char reserved[64]; +# 2547 +} cudaMemFabricHandle_t; +#endif +# 2552 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2552 +enum cudaExternalMemoryHandleType { +# 2556 +cudaExternalMemoryHandleTypeOpaqueFd = 1, +# 2560 +cudaExternalMemoryHandleTypeOpaqueWin32, +# 2564 +cudaExternalMemoryHandleTypeOpaqueWin32Kmt, +# 2568 +cudaExternalMemoryHandleTypeD3D12Heap, +# 2572 +cudaExternalMemoryHandleTypeD3D12Resource, +# 2576 +cudaExternalMemoryHandleTypeD3D11Resource, +# 2580 +cudaExternalMemoryHandleTypeD3D11ResourceKmt, +# 2584 +cudaExternalMemoryHandleTypeNvSciBuf +# 2585 +}; +#endif +# 2627 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2627 +struct cudaExternalMemoryHandleDesc { +# 2631 +cudaExternalMemoryHandleType type; +# 2632 +union { +# 2638 +int fd; +# 2654 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 2658 +void *handle; +# 2663 +const void *name; +# 2664 +} win32; +# 2669 +const void *nvSciBufObject; +# 2670 +} handle; +# 2674 +unsigned long long size; +# 2678 +unsigned flags; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 2679 +}; +#endif +# 2684 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2684 +struct cudaExternalMemoryBufferDesc { +# 2688 +unsigned long long offset; +# 2692 +unsigned long long size; +# 2696 +unsigned flags; +# 2697 +}; +#endif +# 2702 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2702 +struct cudaExternalMemoryMipmappedArrayDesc { +# 2707 +unsigned long long offset; +# 2711 +cudaChannelFormatDesc formatDesc; +# 2715 +cudaExtent extent; +# 2720 +unsigned flags; +# 2724 +unsigned numLevels; +# 2725 +}; +#endif +# 2730 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2730 +enum cudaExternalSemaphoreHandleType { +# 2734 +cudaExternalSemaphoreHandleTypeOpaqueFd = 1, +# 2738 +cudaExternalSemaphoreHandleTypeOpaqueWin32, +# 2742 +cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt, +# 2746 +cudaExternalSemaphoreHandleTypeD3D12Fence, +# 2750 +cudaExternalSemaphoreHandleTypeD3D11Fence, +# 2754 +cudaExternalSemaphoreHandleTypeNvSciSync, +# 2758 +cudaExternalSemaphoreHandleTypeKeyedMutex, +# 2762 +cudaExternalSemaphoreHandleTypeKeyedMutexKmt, +# 2766 +cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd, +# 2770 +cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 +# 2771 +}; +#endif +# 2776 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2776 +struct cudaExternalSemaphoreHandleDesc { +# 2780 +cudaExternalSemaphoreHandleType type; +# 2781 +union { +# 2788 +int fd; +# 2804 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 2808 +void *handle; +# 2813 +const void *name; +# 2814 +} win32; +# 2818 +const void *nvSciSyncObj; +# 2819 +} handle; +# 2823 +unsigned flags; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 2824 +}; +#endif +# 2829 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2829 +struct cudaExternalSemaphoreSignalParams_v1 { +# 2830 +struct { +# 2834 +struct { +# 2838 +unsigned long long value; +# 2839 +} fence; +# 2840 +union { +# 2845 +void *fence; +# 2846 +unsigned long long reserved; +# 2847 +} nvSciSync; +# 2851 +struct { +# 2855 +unsigned long long key; +# 2856 +} keyedMutex; +# 2857 +} params; +# 2868 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned flags; +# 2869 +}; +#endif +# 2874 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2874 +struct cudaExternalSemaphoreWaitParams_v1 { +# 2875 +struct { +# 2879 +struct { +# 2883 +unsigned long long value; +# 2884 +} fence; +# 2885 +union { +# 2890 +void *fence; +# 2891 +unsigned long long reserved; +# 2892 +} nvSciSync; +# 2896 +struct { +# 2900 +unsigned long long key; +# 2904 +unsigned timeoutMs; +# 2905 +} keyedMutex; +# 2906 +} params; +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned flags; +# 2918 +}; +#endif +# 2923 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2923 +struct cudaExternalSemaphoreSignalParams { +# 2924 +struct { +# 2928 +struct { +# 2932 +unsigned long long value; +# 2933 +} fence; +# 2934 +union { +# 2939 +void *fence; +# 2940 +unsigned long long reserved; +# 2941 +} nvSciSync; +# 2945 +struct { +# 2949 +unsigned long long key; +# 2950 +} keyedMutex; +# 2951 +unsigned reserved[12]; +# 2952 +} params; +# 2963 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned flags; +# 2964 +unsigned reserved[16]; +# 2965 +}; +#endif +# 2970 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2970 +struct cudaExternalSemaphoreWaitParams { +# 2971 +struct { +# 2975 +struct { +# 2979 +unsigned long long value; +# 2980 +} fence; +# 2981 +union { +# 2986 +void *fence; +# 2987 +unsigned long long reserved; +# 2988 +} nvSciSync; +# 2992 +struct { +# 2996 +unsigned long long key; +# 3000 +unsigned timeoutMs; +# 3001 +} keyedMutex; +# 3002 +unsigned reserved[10]; +# 3003 +} params; +# 3014 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned flags; +# 3015 +unsigned reserved[16]; +# 3016 +}; +#endif +# 3027 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef cudaError +# 3027 +cudaError_t; +#endif +# 3032 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUstream_st * +# 3032 +cudaStream_t; +#endif +# 3037 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUevent_st * +# 3037 +cudaEvent_t; +#endif +# 3042 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef cudaGraphicsResource * +# 3042 +cudaGraphicsResource_t; +#endif +# 3047 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUexternalMemory_st * +# 3047 +cudaExternalMemory_t; +#endif +# 3052 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUexternalSemaphore_st * +# 3052 +cudaExternalSemaphore_t; +#endif +# 3057 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUgraph_st * +# 3057 +cudaGraph_t; +#endif +# 3062 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUgraphNode_st * +# 3062 +cudaGraphNode_t; +#endif +# 3067 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUuserObject_st * +# 3067 +cudaUserObject_t; +#endif +# 3072 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef unsigned long long +# 3072 +cudaGraphConditionalHandle; +#endif +# 3077 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUfunc_st * +# 3077 +cudaFunction_t; +#endif +# 3082 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUkern_st * +# 3082 +cudaKernel_t; +#endif +# 3087 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3087 +enum cudaJitOption { +# 3094 +cudaJitMaxRegisters, +# 3108 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitThreadsPerBlock, +# 3116 +cudaJitWallTime, +# 3125 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitInfoLogBuffer, +# 3134 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitInfoLogBufferSizeBytes, +# 3143 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitErrorLogBuffer, +# 3152 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitErrorLogBufferSizeBytes, +# 3160 +cudaJitOptimizationLevel, +# 3168 +cudaJitFallbackStrategy = 10, +# 3176 +cudaJitGenerateDebugInfo, +# 3183 +cudaJitLogVerbose, +# 3190 +cudaJitGenerateLineInfo, +# 3198 +cudaJitCacheMode, +# 3205 +cudaJitPositionIndependentCode = 30, +# 3218 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitMinCtaPerSm, +# 3231 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitMaxThreadsPerBlock, +# 3241 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitOverrideDirectiveValues +# 3242 +}; +#endif +# 3248 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3248 +enum cudaLibraryOption { +# 3250 +cudaLibraryHostUniversalFunctionAndDataTable, +# 3261 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLibraryBinaryIsPreserved +# 3262 +}; +#endif +# 3264 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3264 +struct cudalibraryHostUniversalFunctionAndDataTable { +# 3266 +void *functionTable; +# 3267 +size_t functionWindowSize; +# 3268 +void *dataTable; +# 3269 +size_t dataWindowSize; +# 3270 +}; +#endif +# 3275 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3275 +enum cudaJit_CacheMode { +# 3277 +cudaJitCacheOptionNone, +# 3278 +cudaJitCacheOptionCG, +# 3279 +cudaJitCacheOptionCA +# 3280 +}; +#endif +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3285 +enum cudaJit_Fallback { +# 3287 +cudaPreferPtx, +# 3289 +cudaPreferBinary +# 3290 +}; +#endif +# 3295 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUlib_st * +# 3295 +cudaLibrary_t; +#endif +# 3300 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUmemPoolHandle_st * +# 3300 +cudaMemPool_t; +#endif +# 3305 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3305 +enum cudaCGScope { +# 3306 +cudaCGScopeInvalid, +# 3307 +cudaCGScopeGrid, +# 3308 +cudaCGScopeMultiGrid +# 3309 +}; +#endif +# 3314 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3314 +struct cudaLaunchParams { +# 3316 +void *func; +# 3317 +dim3 gridDim; +# 3318 +dim3 blockDim; +# 3319 +void **args; +# 3320 +size_t sharedMem; +# 3321 +cudaStream_t stream; +# 3322 +}; +#endif +# 3327 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3327 +struct cudaKernelNodeParams { +# 3328 +void *func; +# 3329 +dim3 gridDim; +# 3330 +dim3 blockDim; +# 3331 +unsigned sharedMemBytes; +# 3332 +void **kernelParams; +# 3333 +void **extra; +# 3334 +}; +#endif +# 3339 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3339 +struct cudaKernelNodeParamsV2 { +# 3340 +void *func; +# 3342 +dim3 gridDim; +# 3343 +dim3 blockDim; +# 3349 +unsigned sharedMemBytes; +# 3350 +void **kernelParams; +# 3351 +void **extra; +# 3352 +}; +#endif +# 3357 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3357 +struct cudaExternalSemaphoreSignalNodeParams { +# 3358 +cudaExternalSemaphore_t *extSemArray; +# 3359 +const cudaExternalSemaphoreSignalParams *paramsArray; +# 3360 +unsigned numExtSems; +# 3361 +}; +#endif +# 3366 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3366 +struct cudaExternalSemaphoreSignalNodeParamsV2 { +# 3367 +cudaExternalSemaphore_t *extSemArray; +# 3368 +const cudaExternalSemaphoreSignalParams *paramsArray; +# 3369 +unsigned numExtSems; +# 3370 +}; +#endif +# 3375 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3375 +struct cudaExternalSemaphoreWaitNodeParams { +# 3376 +cudaExternalSemaphore_t *extSemArray; +# 3377 +const cudaExternalSemaphoreWaitParams *paramsArray; +# 3378 +unsigned numExtSems; +# 3379 +}; +#endif +# 3384 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3384 +struct cudaExternalSemaphoreWaitNodeParamsV2 { +# 3385 +cudaExternalSemaphore_t *extSemArray; +# 3386 +const cudaExternalSemaphoreWaitParams *paramsArray; +# 3387 +unsigned numExtSems; +# 3388 +}; +#endif +# 3390 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3390 +enum cudaGraphConditionalHandleFlags { +# 3391 +cudaGraphCondAssignDefault = 1 +# 3392 +}; +#endif +# 3397 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3397 +enum cudaGraphConditionalNodeType { +# 3398 +cudaGraphCondTypeIf, +# 3399 +cudaGraphCondTypeWhile, +# 3400 +cudaGraphCondTypeSwitch +# 3401 +}; +#endif +# 3406 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3406 +struct cudaConditionalNodeParams { +# 3407 +cudaGraphConditionalHandle handle; +# 3410 +cudaGraphConditionalNodeType type; +# 3411 +unsigned size; +# 3413 +cudaGraph_t *phGraph_out; +# 3432 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +}; +#endif +# 3437 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3437 +enum cudaGraphNodeType { +# 3438 +cudaGraphNodeTypeKernel, +# 3439 +cudaGraphNodeTypeMemcpy, +# 3440 +cudaGraphNodeTypeMemset, +# 3441 +cudaGraphNodeTypeHost, +# 3442 +cudaGraphNodeTypeGraph, +# 3443 +cudaGraphNodeTypeEmpty, +# 3444 +cudaGraphNodeTypeWaitEvent, +# 3445 +cudaGraphNodeTypeEventRecord, +# 3446 +cudaGraphNodeTypeExtSemaphoreSignal, +# 3447 +cudaGraphNodeTypeExtSemaphoreWait, +# 3448 +cudaGraphNodeTypeMemAlloc, +# 3449 +cudaGraphNodeTypeMemFree, +# 3450 +cudaGraphNodeTypeConditional = 13, +# 3467 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaGraphNodeTypeCount +# 3468 +}; +#endif +# 3473 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3473 +struct cudaChildGraphNodeParams { +# 3474 +cudaGraph_t graph; +# 3476 +}; +#endif +# 3481 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3481 +struct cudaEventRecordNodeParams { +# 3482 +cudaEvent_t event; +# 3483 +}; +#endif +# 3488 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3488 +struct cudaEventWaitNodeParams { +# 3489 +cudaEvent_t event; +# 3490 +}; +#endif +# 3495 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3495 +struct cudaGraphNodeParams { +# 3496 +cudaGraphNodeType type; +# 3497 +int reserved0[3]; +# 3499 +union { +# 3500 +long long reserved1[29]; +# 3501 +cudaKernelNodeParamsV2 kernel; +# 3502 +cudaMemcpyNodeParams memcpy; +# 3503 +cudaMemsetParamsV2 memset; +# 3504 +cudaHostNodeParamsV2 host; +# 3505 +cudaChildGraphNodeParams graph; +# 3506 +cudaEventWaitNodeParams eventWait; +# 3507 +cudaEventRecordNodeParams eventRecord; +# 3508 +cudaExternalSemaphoreSignalNodeParamsV2 extSemSignal; +# 3509 +cudaExternalSemaphoreWaitNodeParamsV2 extSemWait; +# 3510 +cudaMemAllocNodeParamsV2 alloc; +# 3511 +cudaMemFreeNodeParams free; +# 3512 +cudaConditionalNodeParams conditional; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 3513 +}; +# 3515 +long long reserved2; +# 3516 +}; +#endif +# 3528 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3521 +enum cudaGraphDependencyType_enum { +# 3522 +cudaGraphDependencyTypeDefault, +# 3523 +cudaGraphDependencyTypeProgrammatic +# 3528 +} cudaGraphDependencyType; +#endif +# 3558 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3535 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct cudaGraphEdgeData_st { +# 3536 +unsigned char from_port; +# 3546 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned char to_port; +# 3553 +unsigned char type; +# 3556 +unsigned char reserved[5]; +# 3558 +} cudaGraphEdgeData; +#endif +# 3579 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct CUgraphExec_st *cudaGraphExec_t; +# 3584 +#if 0 +# 3584 +enum cudaGraphExecUpdateResult { +# 3585 +cudaGraphExecUpdateSuccess, +# 3586 +cudaGraphExecUpdateError, +# 3587 +cudaGraphExecUpdateErrorTopologyChanged, +# 3588 +cudaGraphExecUpdateErrorNodeTypeChanged, +# 3589 +cudaGraphExecUpdateErrorFunctionChanged, +# 3590 +cudaGraphExecUpdateErrorParametersChanged, +# 3591 +cudaGraphExecUpdateErrorNotSupported, +# 3592 +cudaGraphExecUpdateErrorUnsupportedFunctionChange, +# 3593 +cudaGraphExecUpdateErrorAttributesChanged +# 3594 +}; +#endif +# 3606 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3599 +enum cudaGraphInstantiateResult { +# 3600 +cudaGraphInstantiateSuccess, +# 3601 +cudaGraphInstantiateError, +# 3602 +cudaGraphInstantiateInvalidStructure, +# 3603 +cudaGraphInstantiateNodeOperationNotSupported, +# 3604 +cudaGraphInstantiateMultipleDevicesNotSupported, +# 3605 +cudaGraphInstantiateConditionalHandleUnused +# 3606 +} cudaGraphInstantiateResult; +#endif +# 3617 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3611 +struct cudaGraphInstantiateParams_st { +# 3613 +unsigned long long flags; +# 3614 +cudaStream_t uploadStream; +# 3615 +cudaGraphNode_t errNode_out; +# 3616 +cudaGraphInstantiateResult result_out; +# 3617 +} cudaGraphInstantiateParams; +#endif +# 3639 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3622 +struct cudaGraphExecUpdateResultInfo_st { +# 3626 +cudaGraphExecUpdateResult result; +# 3633 +cudaGraphNode_t errorNode; +# 3638 +cudaGraphNode_t errorFromNode; +# 3639 +} cudaGraphExecUpdateResultInfo; +#endif +# 3644 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct CUgraphDeviceUpdatableNode_st *cudaGraphDeviceNode_t; +# 3649 +#if 0 +# 3649 +enum cudaGraphKernelNodeField { +# 3651 +cudaGraphKernelNodeFieldInvalid, +# 3652 +cudaGraphKernelNodeFieldGridDim, +# 3653 +cudaGraphKernelNodeFieldParam, +# 3654 +cudaGraphKernelNodeFieldEnabled +# 3655 +}; +#endif +# 3660 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3660 +struct cudaGraphKernelNodeUpdate { +# 3661 +cudaGraphDeviceNode_t node; +# 3662 +cudaGraphKernelNodeField field; +# 3663 +union { +# 3665 +dim3 gridDim; +# 3670 +struct { +# 3671 +const void *pValue; +# 3672 +size_t offset; +# 3673 +size_t size; +# 3674 +} param; +# 3675 +unsigned isEnabled; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 3676 +} updateData; +# 3677 +}; +#endif +# 3683 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3683 +enum cudaGetDriverEntryPointFlags { +# 3684 +cudaEnableDefault, +# 3685 +cudaEnableLegacyStream, +# 3686 +cudaEnablePerThreadDefaultStream +# 3687 +}; +#endif +# 3692 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3692 +enum cudaDriverEntryPointQueryResult { +# 3693 +cudaDriverEntryPointSuccess, +# 3694 +cudaDriverEntryPointSymbolNotFound, +# 3695 +cudaDriverEntryPointVersionNotSufficent +# 3696 +}; +#endif +# 3701 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3701 +enum cudaGraphDebugDotFlags { +# 3702 +cudaGraphDebugDotFlagsVerbose = (1 << 0), +# 3703 +cudaGraphDebugDotFlagsKernelNodeParams = (1 << 2), +# 3704 +cudaGraphDebugDotFlagsMemcpyNodeParams = (1 << 3), +# 3705 +cudaGraphDebugDotFlagsMemsetNodeParams = (1 << 4), +# 3706 +cudaGraphDebugDotFlagsHostNodeParams = (1 << 5), +# 3707 +cudaGraphDebugDotFlagsEventNodeParams = (1 << 6), +# 3708 +cudaGraphDebugDotFlagsExtSemasSignalNodeParams = (1 << 7), +# 3709 +cudaGraphDebugDotFlagsExtSemasWaitNodeParams = (1 << 8), +# 3710 +cudaGraphDebugDotFlagsKernelNodeAttributes = (1 << 9), +# 3711 +cudaGraphDebugDotFlagsHandles = (1 << 10), +# 3712 +cudaGraphDebugDotFlagsConditionalNodeParams = (1 << 15) +# 3713 +}; +#endif +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3718 +enum cudaGraphInstantiateFlags { +# 3719 +cudaGraphInstantiateFlagAutoFreeOnLaunch = 1, +# 3720 +cudaGraphInstantiateFlagUpload, +# 3723 +cudaGraphInstantiateFlagDeviceLaunch = 4, +# 3726 +cudaGraphInstantiateFlagUseNodePriority = 8 +# 3728 +}; +#endif +# 3749 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3746 +enum cudaLaunchMemSyncDomain { +# 3747 +cudaLaunchMemSyncDomainDefault, +# 3748 +cudaLaunchMemSyncDomainRemote +# 3749 +} cudaLaunchMemSyncDomain; +#endif +# 3765 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3762 +struct cudaLaunchMemSyncDomainMap_st { +# 3763 +unsigned char default_; +# 3764 +unsigned char remote; +# 3765 +} cudaLaunchMemSyncDomainMap; +#endif +# 3917 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3770 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum cudaLaunchAttributeID { +# 3771 +cudaLaunchAttributeIgnore, +# 3772 +cudaLaunchAttributeAccessPolicyWindow, +# 3774 +cudaLaunchAttributeCooperative, +# 3776 +cudaLaunchAttributeSynchronizationPolicy, +# 3777 +cudaLaunchAttributeClusterDimension, +# 3779 +cudaLaunchAttributeClusterSchedulingPolicyPreference, +# 3781 +cudaLaunchAttributeProgrammaticStreamSerialization, +# 3792 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributeProgrammaticEvent, +# 3818 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributePriority, +# 3820 +cudaLaunchAttributeMemSyncDomainMap, +# 3822 +cudaLaunchAttributeMemSyncDomain, +# 3824 +cudaLaunchAttributePreferredClusterDimension, +# 3860 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributeLaunchCompletionEvent, +# 3882 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributeDeviceUpdatableKernelNode, +# 3910 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributePreferredSharedMemoryCarveout +# 3917 +} cudaLaunchAttributeID; +#endif +# 4013 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3922 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +union cudaLaunchAttributeValue { +# 3923 +char pad[64]; +# 3924 +cudaAccessPolicyWindow accessPolicyWindow; +# 3925 +int cooperative; +# 3927 +cudaSynchronizationPolicy syncPolicy; +# 3941 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 3942 +unsigned x; +# 3943 +unsigned y; +# 3944 +unsigned z; +# 3945 +} clusterDim; +# 3946 +cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; +# 3949 +int programmaticStreamSerializationAllowed; +# 3960 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 3961 +cudaEvent_t event; +# 3962 +int flags; +# 3963 +int triggerAtBlockStart; +# 3964 +} programmaticEvent; +# 3965 +int priority; +# 3966 +cudaLaunchMemSyncDomainMap memSyncDomainMap; +# 3969 +cudaLaunchMemSyncDomain memSyncDomain; +# 3984 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 3985 +unsigned x; +# 3986 +unsigned y; +# 3987 +unsigned z; +# 3988 +} preferredClusterDim; +# 3997 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 3998 +cudaEvent_t event; +# 3999 +int flags; +# 4000 +} launchCompletionEvent; +# 4008 +struct { +# 4009 +int deviceUpdatable; +# 4010 +cudaGraphDeviceNode_t devNode; +# 4011 +} deviceUpdatableKernelNode; +# 4012 +unsigned sharedMemCarveout; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 4013 +} cudaLaunchAttributeValue; +#endif +# 4022 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 4018 +struct cudaLaunchAttribute_st { +# 4019 +cudaLaunchAttributeID id; +# 4020 +char pad[(8) - sizeof(cudaLaunchAttributeID)]; +# 4021 +cudaLaunchAttributeValue val; +# 4022 +} cudaLaunchAttribute; +#endif +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 4027 +struct cudaLaunchConfig_st { +# 4028 +dim3 gridDim; +# 4029 +dim3 blockDim; +# 4030 +size_t dynamicSmemBytes; +# 4031 +cudaStream_t stream; +# 4032 +cudaLaunchAttribute *attrs; +# 4033 +unsigned numAttrs; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 4034 +} cudaLaunchConfig_t; +#endif +# 4061 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 4061 +enum cudaDeviceNumaConfig { +# 4062 +cudaDeviceNumaConfigNone, +# 4063 +cudaDeviceNumaConfigNumaNode +# 4064 +}; +#endif +# 4069 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct cudaAsyncCallbackEntry *cudaAsyncCallbackHandle_t; +# 4071 +struct cudaAsyncCallbackEntry; +# 4078 +#if 0 +typedef +# 4076 +enum cudaAsyncNotificationType_enum { +# 4077 +cudaAsyncNotificationTypeOverBudget = 1 +# 4078 +} cudaAsyncNotificationType; +#endif +# 4091 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 4083 +struct cudaAsyncNotificationInfo { +# 4085 +cudaAsyncNotificationType type; +# 4086 +union { +# 4087 +struct { +# 4088 +unsigned long long bytesOverBudget; +# 4089 +} overBudget; +# 4090 +} info; +# 4091 +} cudaAsyncNotificationInfo_t; +#endif +# 4093 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef void (*cudaAsyncCallback)(cudaAsyncNotificationInfo_t *, void *, cudaAsyncCallbackHandle_t); +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +#if 0 +# 86 +enum cudaSurfaceBoundaryMode { +# 88 +cudaBoundaryModeZero, +# 89 +cudaBoundaryModeClamp, +# 90 +cudaBoundaryModeTrap +# 91 +}; +#endif +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +#if 0 +# 96 +enum cudaSurfaceFormatMode { +# 98 +cudaFormatModeForced, +# 99 +cudaFormatModeAuto +# 100 +}; +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +#if 0 +typedef unsigned long long +# 105 +cudaSurfaceObject_t; +#endif +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +# 86 +enum cudaTextureAddressMode { +# 88 +cudaAddressModeWrap, +# 89 +cudaAddressModeClamp, +# 90 +cudaAddressModeMirror, +# 91 +cudaAddressModeBorder +# 92 +}; +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +# 97 +enum cudaTextureFilterMode { +# 99 +cudaFilterModePoint, +# 100 +cudaFilterModeLinear +# 101 +}; +#endif +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +# 106 +enum cudaTextureReadMode { +# 108 +cudaReadModeElementType, +# 109 +cudaReadModeNormalizedFloat +# 110 +}; +#endif +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +# 115 +struct cudaTextureDesc { +# 120 +cudaTextureAddressMode addressMode[3]; +# 124 +cudaTextureFilterMode filterMode; +# 128 +cudaTextureReadMode readMode; +# 132 +int sRGB; +# 136 +float borderColor[4]; +# 140 +int normalizedCoords; +# 144 +unsigned maxAnisotropy; +# 148 +cudaTextureFilterMode mipmapFilterMode; +# 152 +float mipmapLevelBias; +# 156 +float minMipmapLevelClamp; +# 160 +float maxMipmapLevelClamp; +# 164 +int disableTrilinearOptimization; +# 168 +int seamlessCubemap; +# 169 +}; +#endif +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +typedef unsigned long long +# 174 +cudaTextureObject_t; +#endif +# 94 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" +typedef +# 57 +enum cudaDataType_t { +# 59 +CUDA_R_16F = 2, +# 60 +CUDA_C_16F = 6, +# 61 +CUDA_R_16BF = 14, +# 62 +CUDA_C_16BF, +# 63 +CUDA_R_32F = 0, +# 64 +CUDA_C_32F = 4, +# 65 +CUDA_R_64F = 1, +# 66 +CUDA_C_64F = 5, +# 67 +CUDA_R_4I = 16, +# 68 +CUDA_C_4I, +# 69 +CUDA_R_4U, +# 70 +CUDA_C_4U, +# 71 +CUDA_R_8I = 3, +# 72 +CUDA_C_8I = 7, +# 73 +CUDA_R_8U, +# 74 +CUDA_C_8U, +# 75 +CUDA_R_16I = 20, +# 76 +CUDA_C_16I, +# 77 +CUDA_R_16U, +# 78 +CUDA_C_16U, +# 79 +CUDA_R_32I = 10, +# 80 +CUDA_C_32I, +# 81 +CUDA_R_32U, +# 82 +CUDA_C_32U, +# 83 +CUDA_R_64I = 24, +# 84 +CUDA_C_64I, +# 85 +CUDA_R_64U, +# 86 +CUDA_C_64U, +# 87 +CUDA_R_8F_E4M3, +# 88 +CUDA_R_8F_UE4M3 = CUDA_R_8F_E4M3, +# 89 +CUDA_R_8F_E5M2, +# 90 +CUDA_R_8F_UE8M0, +# 91 +CUDA_R_6F_E2M3, +# 92 +CUDA_R_6F_E3M2, +# 93 +CUDA_R_4F_E2M1 +# 94 +} cudaDataType; +# 102 +typedef +# 97 +enum libraryPropertyType_t { +# 99 +MAJOR_VERSION, +# 100 +MINOR_VERSION, +# 101 +PATCH_LEVEL +# 102 +} libraryPropertyType; +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 310 +typedef unsigned long size_t; +# 311 +typedef long ptrdiff_t; +# 314 +typedef __decltype((nullptr)) nullptr_t; +# 317 +#pragma GCC visibility push ( default ) +# 320 +__attribute((__noreturn__, __always_inline__)) inline void +# 321 +__terminate() noexcept +# 322 +{ +# 323 +void terminate() noexcept __attribute((__noreturn__, __cold__)); +# 324 +terminate(); +# 325 +} +#pragma GCC visibility pop +} +# 341 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 343 +inline namespace __cxx11 __attribute((__abi_tag__("cxx11"))) { } +# 344 +} +# 345 +namespace __gnu_cxx { +# 347 +inline namespace __cxx11 __attribute((__abi_tag__("cxx11"))) { } +# 348 +} +# 534 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 536 +#pragma GCC visibility push ( default ) +# 541 +__attribute((__always_inline__)) constexpr bool +# 543 +__is_constant_evaluated() noexcept +# 544 +{ +# 550 +return __builtin_is_constant_evaluated(); +# 554 +} +#pragma GCC visibility pop +} +# 573 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 575 +#pragma GCC visibility push ( default ) +# 577 +__attribute((__noreturn__)) void +# 579 +__glibcxx_assert_fail(const char * __file, int __line, const char * __function, const char * __condition) noexcept; +# 583 +#pragma GCC visibility pop +} +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 606 +__attribute((__always_inline__, __visibility__("default"))) inline void +# 608 +__glibcxx_assert_fail() +# 609 +{ } +# 610 +} +# 828 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace __gnu_cxx { +# 830 +typedef __decltype(((0.0bf16))) __bfloat16_t; +# 831 +} +# 34 "/usr/include/stdlib.h" 3 +extern "C" { +# 63 "/usr/include/stdlib.h" 3 +typedef +# 60 +struct { +# 61 +int quot; +# 62 +int rem; +# 63 +} div_t; +# 71 +typedef +# 68 +struct { +# 69 +long quot; +# 70 +long rem; +# 71 +} ldiv_t; +# 81 +__extension__ typedef +# 78 +struct { +# 79 +long long quot; +# 80 +long long rem; +# 81 +} lldiv_t; +# 98 "/usr/include/stdlib.h" 3 +extern size_t __ctype_get_mb_cur_max() noexcept(true); +# 102 +extern double atof(const char * __nptr) noexcept(true) +# 103 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 105 +extern int atoi(const char * __nptr) noexcept(true) +# 106 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 108 +extern long atol(const char * __nptr) noexcept(true) +# 109 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 113 +__extension__ extern long long atoll(const char * __nptr) noexcept(true) +# 114 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 118 +extern double strtod(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 120 + __attribute((__nonnull__(1))); +# 124 +extern float strtof(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 125 + __attribute((__nonnull__(1))); +# 127 +extern long double strtold(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 129 + __attribute((__nonnull__(1))); +# 141 "/usr/include/stdlib.h" 3 +extern _Float32 strtof32(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 143 + __attribute((__nonnull__(1))); +# 147 +extern _Float64 strtof64(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 149 + __attribute((__nonnull__(1))); +# 153 +extern _Float128 strtof128(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 155 + __attribute((__nonnull__(1))); +# 159 +extern _Float32x strtof32x(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 161 + __attribute((__nonnull__(1))); +# 165 +extern _Float64x strtof64x(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 167 + __attribute((__nonnull__(1))); +# 177 "/usr/include/stdlib.h" 3 +extern long strtol(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtol") +# 179 + __attribute((__nonnull__(1))); +# 181 +extern unsigned long strtoul(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoul") +# 183 + __attribute((__nonnull__(1))); +# 188 +__extension__ extern long long strtoq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoll") +# 190 + __attribute((__nonnull__(1))); +# 193 +__extension__ extern unsigned long long strtouq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoull") +# 195 + __attribute((__nonnull__(1))); +# 201 +__extension__ extern long long strtoll(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoll") +# 203 + __attribute((__nonnull__(1))); +# 206 +__extension__ extern unsigned long long strtoull(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoull") +# 208 + __attribute((__nonnull__(1))); +# 215 +extern long strtol(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtol") +# 218 + __attribute((__nonnull__(1))); +# 219 +extern unsigned long strtoul(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoul") +# 223 + __attribute((__nonnull__(1))); +# 226 +__extension__ extern long long strtoq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoll") +# 229 + __attribute((__nonnull__(1))); +# 231 +__extension__ extern unsigned long long strtouq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoull") +# 235 + __attribute((__nonnull__(1))); +# 238 +__extension__ extern long long strtoll(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoll") +# 241 + __attribute((__nonnull__(1))); +# 243 +__extension__ extern unsigned long long strtoull(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoull") +# 247 + __attribute((__nonnull__(1))); +# 278 "/usr/include/stdlib.h" 3 +extern int strfromd(char * __dest, size_t __size, const char * __format, double __f) noexcept(true) +# 280 + __attribute((__nonnull__(3))); +# 282 +extern int strfromf(char * __dest, size_t __size, const char * __format, float __f) noexcept(true) +# 284 + __attribute((__nonnull__(3))); +# 286 +extern int strfroml(char * __dest, size_t __size, const char * __format, long double __f) noexcept(true) +# 288 + __attribute((__nonnull__(3))); +# 298 "/usr/include/stdlib.h" 3 +extern int strfromf32(char * __dest, size_t __size, const char * __format, _Float32 __f) noexcept(true) +# 300 + __attribute((__nonnull__(3))); +# 304 +extern int strfromf64(char * __dest, size_t __size, const char * __format, _Float64 __f) noexcept(true) +# 306 + __attribute((__nonnull__(3))); +# 310 +extern int strfromf128(char * __dest, size_t __size, const char * __format, _Float128 __f) noexcept(true) +# 312 + __attribute((__nonnull__(3))); +# 316 +extern int strfromf32x(char * __dest, size_t __size, const char * __format, _Float32x __f) noexcept(true) +# 318 + __attribute((__nonnull__(3))); +# 322 +extern int strfromf64x(char * __dest, size_t __size, const char * __format, _Float64x __f) noexcept(true) +# 324 + __attribute((__nonnull__(3))); +# 340 "/usr/include/stdlib.h" 3 +extern long strtol_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtol_l") +# 342 + __attribute((__nonnull__(1, 4))); +# 344 +extern unsigned long strtoul_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoul_l") +# 347 + __attribute((__nonnull__(1, 4))); +# 350 +__extension__ extern long long strtoll_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoll_l") +# 353 + __attribute((__nonnull__(1, 4))); +# 356 +__extension__ extern unsigned long long strtoull_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoull_l") +# 359 + __attribute((__nonnull__(1, 4))); +# 365 +extern long strtol_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtol_l") +# 369 + __attribute((__nonnull__(1, 4))); +# 370 +extern unsigned long strtoul_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoul_l") +# 375 + __attribute((__nonnull__(1, 4))); +# 377 +__extension__ extern long long strtoll_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoll_l") +# 382 + __attribute((__nonnull__(1, 4))); +# 384 +__extension__ extern unsigned long long strtoull_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoull_l") +# 389 + __attribute((__nonnull__(1, 4))); +# 415 "/usr/include/stdlib.h" 3 +extern double strtod_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 417 + __attribute((__nonnull__(1, 3))); +# 419 +extern float strtof_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 421 + __attribute((__nonnull__(1, 3))); +# 423 +extern long double strtold_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 426 + __attribute((__nonnull__(1, 3))); +# 436 "/usr/include/stdlib.h" 3 +extern _Float32 strtof32_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 439 + __attribute((__nonnull__(1, 3))); +# 443 +extern _Float64 strtof64_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 446 + __attribute((__nonnull__(1, 3))); +# 450 +extern _Float128 strtof128_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 453 + __attribute((__nonnull__(1, 3))); +# 457 +extern _Float32x strtof32x_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 460 + __attribute((__nonnull__(1, 3))); +# 464 +extern _Float64x strtof64x_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 467 + __attribute((__nonnull__(1, 3))); +# 505 "/usr/include/stdlib.h" 3 +extern char *l64a(long __n) noexcept(true); +# 508 +extern long a64l(const char * __s) noexcept(true) +# 509 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 27 "/usr/include/sys/types.h" 3 +extern "C" { +# 33 +typedef __u_char u_char; +# 34 +typedef __u_short u_short; +# 35 +typedef __u_int u_int; +# 36 +typedef __u_long u_long; +# 37 +typedef __quad_t quad_t; +# 38 +typedef __u_quad_t u_quad_t; +# 39 +typedef __fsid_t fsid_t; +# 42 +typedef __loff_t loff_t; +# 47 +typedef __ino_t ino_t; +# 54 +typedef __ino64_t ino64_t; +# 59 +typedef __dev_t dev_t; +# 64 +typedef __gid_t gid_t; +# 69 +typedef __mode_t mode_t; +# 74 +typedef __nlink_t nlink_t; +# 79 +typedef __uid_t uid_t; +# 85 +typedef __off_t off_t; +# 92 +typedef __off64_t off64_t; +# 97 +typedef __pid_t pid_t; +# 103 +typedef __id_t id_t; +# 108 +typedef __ssize_t ssize_t; +# 114 +typedef __daddr_t daddr_t; +# 115 +typedef __caddr_t caddr_t; +# 121 +typedef __key_t key_t; +# 7 "/usr/include/bits/types/clock_t.h" 3 +typedef __clock_t clock_t; +# 7 "/usr/include/bits/types/clockid_t.h" 3 +typedef __clockid_t clockid_t; +# 10 "/usr/include/bits/types/time_t.h" 3 +typedef __time_t time_t; +# 7 "/usr/include/bits/types/timer_t.h" 3 +typedef __timer_t timer_t; +# 134 "/usr/include/sys/types.h" 3 +typedef __useconds_t useconds_t; +# 138 +typedef __suseconds_t suseconds_t; +# 148 "/usr/include/sys/types.h" 3 +typedef unsigned long ulong; +# 149 +typedef unsigned short ushort; +# 150 +typedef unsigned uint; +# 24 "/usr/include/bits/stdint-intn.h" 3 +typedef __int8_t int8_t; +# 25 +typedef __int16_t int16_t; +# 26 +typedef __int32_t int32_t; +# 27 +typedef __int64_t int64_t; +# 158 "/usr/include/sys/types.h" 3 +typedef __uint8_t u_int8_t; +# 159 +typedef __uint16_t u_int16_t; +# 160 +typedef __uint32_t u_int32_t; +# 161 +typedef __uint64_t u_int64_t; +# 164 +typedef long register_t __attribute((__mode__(__word__))); +# 34 "/usr/include/bits/byteswap.h" 3 +static inline __uint16_t __bswap_16(__uint16_t __bsx) +# 35 +{ +# 37 +return __builtin_bswap16(__bsx); +# 41 +} +# 49 +static inline __uint32_t __bswap_32(__uint32_t __bsx) +# 50 +{ +# 52 +return __builtin_bswap32(__bsx); +# 56 +} +# 70 "/usr/include/bits/byteswap.h" 3 +__extension__ static inline __uint64_t __bswap_64(__uint64_t __bsx) +# 71 +{ +# 73 +return __builtin_bswap64(__bsx); +# 77 +} +# 33 "/usr/include/bits/uintn-identity.h" 3 +static inline __uint16_t __uint16_identity(__uint16_t __x) +# 34 +{ +# 35 +return __x; +# 36 +} +# 39 +static inline __uint32_t __uint32_identity(__uint32_t __x) +# 40 +{ +# 41 +return __x; +# 42 +} +# 45 +static inline __uint64_t __uint64_identity(__uint64_t __x) +# 46 +{ +# 47 +return __x; +# 48 +} +# 8 "/usr/include/bits/types/__sigset_t.h" 3 +typedef +# 6 +struct { +# 7 +unsigned long __val[(1024) / ((8) * sizeof(unsigned long))]; +# 8 +} __sigset_t; +# 7 "/usr/include/bits/types/sigset_t.h" 3 +typedef __sigset_t sigset_t; +# 8 "/usr/include/bits/types/struct_timeval.h" 3 +struct timeval { +# 14 +__time_t tv_sec; +# 15 +__suseconds_t tv_usec; +# 17 +}; +# 11 "/usr/include/bits/types/struct_timespec.h" 3 +struct timespec { +# 16 +__time_t tv_sec; +# 21 +__syscall_slong_t tv_nsec; +# 31 "/usr/include/bits/types/struct_timespec.h" 3 +}; +# 49 "/usr/include/sys/select.h" 3 +typedef long __fd_mask; +# 70 "/usr/include/sys/select.h" 3 +typedef +# 60 +struct { +# 64 +__fd_mask fds_bits[1024 / (8 * ((int)sizeof(__fd_mask)))]; +# 70 +} fd_set; +# 77 +typedef __fd_mask fd_mask; +# 91 "/usr/include/sys/select.h" 3 +extern "C" { +# 102 "/usr/include/sys/select.h" 3 +extern int select(int __nfds, fd_set *__restrict__ __readfds, fd_set *__restrict__ __writefds, fd_set *__restrict__ __exceptfds, timeval *__restrict__ __timeout); +# 127 "/usr/include/sys/select.h" 3 +extern int pselect(int __nfds, fd_set *__restrict__ __readfds, fd_set *__restrict__ __writefds, fd_set *__restrict__ __exceptfds, const timespec *__restrict__ __timeout, const __sigset_t *__restrict__ __sigmask); +# 153 "/usr/include/sys/select.h" 3 +} +# 185 "/usr/include/sys/types.h" 3 +typedef __blksize_t blksize_t; +# 192 +typedef __blkcnt_t blkcnt_t; +# 196 +typedef __fsblkcnt_t fsblkcnt_t; +# 200 +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/sys/types.h" 3 +typedef __blkcnt64_t blkcnt64_t; +# 220 +typedef __fsblkcnt64_t fsblkcnt64_t; +# 221 +typedef __fsfilcnt64_t fsfilcnt64_t; +# 33 "/usr/include/bits/atomic_wide_counter.h" 3 +typedef +# 26 +union { +# 27 +__extension__ unsigned long long __value64; +# 29 +struct { +# 30 +unsigned __low; +# 31 +unsigned __high; +# 32 +} __value32; +# 33 +} __atomic_wide_counter; +# 55 "/usr/include/bits/thread-shared-types.h" 3 +typedef +# 51 +struct __pthread_internal_list { +# 53 +__pthread_internal_list *__prev; +# 54 +__pthread_internal_list *__next; +# 55 +} __pthread_list_t; +# 60 +typedef +# 57 +struct __pthread_internal_slist { +# 59 +__pthread_internal_slist *__next; +# 60 +} __pthread_slist_t; +# 22 "/usr/include/bits/struct_mutex.h" 3 +struct __pthread_mutex_s { +# 24 +int __lock; +# 25 +unsigned __count; +# 26 +int __owner; +# 28 +unsigned __nusers; +# 32 +int __kind; +# 34 +short __spins; +# 35 +short __elision; +# 36 +__pthread_list_t __list; +# 53 "/usr/include/bits/struct_mutex.h" 3 +}; +# 23 "/usr/include/bits/struct_rwlock.h" 3 +struct __pthread_rwlock_arch_t { +# 25 +unsigned __readers; +# 26 +unsigned __writers; +# 27 +unsigned __wrphase_futex; +# 28 +unsigned __writers_futex; +# 29 +unsigned __pad3; +# 30 +unsigned __pad4; +# 32 +int __cur_writer; +# 33 +int __shared; +# 34 +signed char __rwelision; +# 39 +unsigned char __pad1[7]; +# 42 +unsigned long __pad2; +# 45 +unsigned __flags; +# 55 "/usr/include/bits/struct_rwlock.h" 3 +}; +# 94 "/usr/include/bits/thread-shared-types.h" 3 +struct __pthread_cond_s { +# 96 +__atomic_wide_counter __wseq; +# 97 +__atomic_wide_counter __g1_start; +# 98 +unsigned __g_size[2]; +# 99 +unsigned __g1_orig_size; +# 100 +unsigned __wrefs; +# 101 +unsigned __g_signals[2]; +# 102 +unsigned __unused_initialized_1; +# 103 +unsigned __unused_initialized_2; +# 104 +}; +# 106 +typedef unsigned __tss_t; +# 107 +typedef unsigned long __thrd_t; +# 112 +typedef +# 110 +struct { +# 111 +int __data; +# 112 +} __once_flag; +# 27 "/usr/include/bits/pthreadtypes.h" 3 +typedef unsigned long pthread_t; +# 36 +typedef +# 33 +union { +# 34 +char __size[4]; +# 35 +int __align; +# 36 +} pthread_mutexattr_t; +# 45 +typedef +# 42 +union { +# 43 +char __size[4]; +# 44 +int __align; +# 45 +} pthread_condattr_t; +# 49 +typedef unsigned pthread_key_t; +# 53 +typedef int pthread_once_t; +# 56 +union pthread_attr_t { +# 58 +char __size[56]; +# 59 +long __align; +# 60 +}; +# 62 +typedef pthread_attr_t pthread_attr_t; +# 72 +typedef +# 68 +union { +# 69 +__pthread_mutex_s __data; +# 70 +char __size[40]; +# 71 +long __align; +# 72 +} pthread_mutex_t; +# 80 +typedef +# 76 +union { +# 77 +__pthread_cond_s __data; +# 78 +char __size[48]; +# 79 +__extension__ long long __align; +# 80 +} pthread_cond_t; +# 91 +typedef +# 87 +union { +# 88 +__pthread_rwlock_arch_t __data; +# 89 +char __size[56]; +# 90 +long __align; +# 91 +} pthread_rwlock_t; +# 97 +typedef +# 94 +union { +# 95 +char __size[8]; +# 96 +long __align; +# 97 +} pthread_rwlockattr_t; +# 103 +typedef volatile int pthread_spinlock_t; +# 112 +typedef +# 109 +union { +# 110 +char __size[32]; +# 111 +long __align; +# 112 +} pthread_barrier_t; +# 118 +typedef +# 115 +union { +# 116 +char __size[4]; +# 117 +int __align; +# 118 +} pthread_barrierattr_t; +# 230 "/usr/include/sys/types.h" 3 +} +# 521 "/usr/include/stdlib.h" 3 +extern long random() noexcept(true); +# 524 +extern void srandom(unsigned __seed) noexcept(true); +# 530 +extern char *initstate(unsigned __seed, char * __statebuf, size_t __statelen) noexcept(true) +# 531 + __attribute((__nonnull__(2))); +# 535 +extern char *setstate(char * __statebuf) noexcept(true) __attribute((__nonnull__(1))); +# 543 +struct random_data { +# 545 +int32_t *fptr; +# 546 +int32_t *rptr; +# 547 +int32_t *state; +# 548 +int rand_type; +# 549 +int rand_deg; +# 550 +int rand_sep; +# 551 +int32_t *end_ptr; +# 552 +}; +# 554 +extern int random_r(random_data *__restrict__ __buf, int32_t *__restrict__ __result) noexcept(true) +# 555 + __attribute((__nonnull__(1, 2))); +# 557 +extern int srandom_r(unsigned __seed, random_data * __buf) noexcept(true) +# 558 + __attribute((__nonnull__(2))); +# 560 +extern int initstate_r(unsigned __seed, char *__restrict__ __statebuf, size_t __statelen, random_data *__restrict__ __buf) noexcept(true) +# 563 + __attribute((__nonnull__(2, 4))); +# 565 +extern int setstate_r(char *__restrict__ __statebuf, random_data *__restrict__ __buf) noexcept(true) +# 567 + __attribute((__nonnull__(1, 2))); +# 573 +extern int rand() noexcept(true); +# 575 +extern void srand(unsigned __seed) noexcept(true); +# 579 +extern int rand_r(unsigned * __seed) noexcept(true); +# 587 +extern double drand48() noexcept(true); +# 588 +extern double erand48(unsigned short __xsubi[3]) noexcept(true) __attribute((__nonnull__(1))); +# 591 +extern long lrand48() noexcept(true); +# 592 +extern long nrand48(unsigned short __xsubi[3]) noexcept(true) +# 593 + __attribute((__nonnull__(1))); +# 596 +extern long mrand48() noexcept(true); +# 597 +extern long jrand48(unsigned short __xsubi[3]) noexcept(true) +# 598 + __attribute((__nonnull__(1))); +# 601 +extern void srand48(long __seedval) noexcept(true); +# 602 +extern unsigned short *seed48(unsigned short __seed16v[3]) noexcept(true) +# 603 + __attribute((__nonnull__(1))); +# 604 +extern void lcong48(unsigned short __param[7]) noexcept(true) __attribute((__nonnull__(1))); +# 610 +struct drand48_data { +# 612 +unsigned short __x[3]; +# 613 +unsigned short __old_x[3]; +# 614 +unsigned short __c; +# 615 +unsigned short __init; +# 616 +__extension__ unsigned long long __a; +# 618 +}; +# 621 +extern int drand48_r(drand48_data *__restrict__ __buffer, double *__restrict__ __result) noexcept(true) +# 622 + __attribute((__nonnull__(1, 2))); +# 623 +extern int erand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, double *__restrict__ __result) noexcept(true) +# 625 + __attribute((__nonnull__(1, 2))); +# 628 +extern int lrand48_r(drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 630 + __attribute((__nonnull__(1, 2))); +# 631 +extern int nrand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 634 + __attribute((__nonnull__(1, 2))); +# 637 +extern int mrand48_r(drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 639 + __attribute((__nonnull__(1, 2))); +# 640 +extern int jrand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 643 + __attribute((__nonnull__(1, 2))); +# 646 +extern int srand48_r(long __seedval, drand48_data * __buffer) noexcept(true) +# 647 + __attribute((__nonnull__(2))); +# 649 +extern int seed48_r(unsigned short __seed16v[3], drand48_data * __buffer) noexcept(true) +# 650 + __attribute((__nonnull__(1, 2))); +# 652 +extern int lcong48_r(unsigned short __param[7], drand48_data * __buffer) noexcept(true) +# 654 + __attribute((__nonnull__(1, 2))); +# 657 +extern __uint32_t arc4random() noexcept(true); +# 661 +extern void arc4random_buf(void * __buf, size_t __size) noexcept(true) +# 662 + __attribute((__nonnull__(1))); +# 666 +extern __uint32_t arc4random_uniform(__uint32_t __upper_bound) noexcept(true); +# 672 +extern void *malloc(size_t __size) noexcept(true) __attribute((__malloc__)) +# 673 + __attribute((__alloc_size__(1))); +# 675 +extern void *calloc(size_t __nmemb, size_t __size) noexcept(true) +# 676 + __attribute((__malloc__)) __attribute((__alloc_size__(1, 2))); +# 683 +extern void *realloc(void * __ptr, size_t __size) noexcept(true) +# 684 + __attribute((__warn_unused_result__)) __attribute((__alloc_size__(2))); +# 687 +extern void free(void * __ptr) noexcept(true); +# 695 +extern void *reallocarray(void * __ptr, size_t __nmemb, size_t __size) noexcept(true) +# 696 + __attribute((__warn_unused_result__)) +# 697 + __attribute((__alloc_size__(2, 3))) +# 698 + __attribute((__malloc__(__builtin_free, 1))); +# 701 +extern void *reallocarray(void * __ptr, size_t __nmemb, size_t __size) noexcept(true) +# 702 + __attribute((__malloc__(reallocarray, 1))); +# 26 "/usr/include/alloca.h" 3 +extern "C" { +# 32 +extern void *alloca(size_t __size) noexcept(true); +# 38 +} +# 712 "/usr/include/stdlib.h" 3 +extern void *valloc(size_t __size) noexcept(true) __attribute((__malloc__)) +# 713 + __attribute((__alloc_size__(1))); +# 718 +extern int posix_memalign(void ** __memptr, size_t __alignment, size_t __size) noexcept(true) +# 719 + __attribute((__nonnull__(1))); +# 724 +extern void *aligned_alloc(size_t __alignment, size_t __size) noexcept(true) +# 725 + __attribute((__malloc__)) __attribute((__alloc_align__(1 ))) +# 726 + __attribute((__alloc_size__(2))); +# 730 +extern void abort() noexcept(true) __attribute((__noreturn__)) __attribute((__cold__)); +# 734 +extern int atexit(void (* __func)(void)) noexcept(true) __attribute((__nonnull__(1))); +# 739 +extern "C++" int at_quick_exit(void (* __func)(void)) noexcept(true) __asm__("at_quick_exit") +# 740 + __attribute((__nonnull__(1))); +# 749 "/usr/include/stdlib.h" 3 +extern int on_exit(void (* __func)(int __status, void * __arg), void * __arg) noexcept(true) +# 750 + __attribute((__nonnull__(1))); +# 756 +extern void exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 762 +extern void quick_exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 768 +extern void _Exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 773 +extern char *getenv(const char * __name) noexcept(true) __attribute((__nonnull__(1))); +# 778 +extern char *secure_getenv(const char * __name) noexcept(true) +# 779 + __attribute((__nonnull__(1))); +# 786 +extern int putenv(char * __string) noexcept(true) __attribute((__nonnull__(1))); +# 792 +extern int setenv(const char * __name, const char * __value, int __replace) noexcept(true) +# 793 + __attribute((__nonnull__(2))); +# 796 +extern int unsetenv(const char * __name) noexcept(true) __attribute((__nonnull__(1))); +# 803 +extern int clearenv() noexcept(true); +# 814 "/usr/include/stdlib.h" 3 +extern char *mktemp(char * __template) noexcept(true) __attribute((__nonnull__(1))); +# 827 "/usr/include/stdlib.h" 3 +extern int mkstemp(char * __template) __attribute((__nonnull__(1))); +# 837 "/usr/include/stdlib.h" 3 +extern int mkstemp64(char * __template) __attribute((__nonnull__(1))); +# 849 "/usr/include/stdlib.h" 3 +extern int mkstemps(char * __template, int __suffixlen) __attribute((__nonnull__(1))); +# 859 "/usr/include/stdlib.h" 3 +extern int mkstemps64(char * __template, int __suffixlen) +# 860 + __attribute((__nonnull__(1))); +# 870 "/usr/include/stdlib.h" 3 +extern char *mkdtemp(char * __template) noexcept(true) __attribute((__nonnull__(1))); +# 881 "/usr/include/stdlib.h" 3 +extern int mkostemp(char * __template, int __flags) __attribute((__nonnull__(1))); +# 891 "/usr/include/stdlib.h" 3 +extern int mkostemp64(char * __template, int __flags) __attribute((__nonnull__(1))); +# 901 "/usr/include/stdlib.h" 3 +extern int mkostemps(char * __template, int __suffixlen, int __flags) +# 902 + __attribute((__nonnull__(1))); +# 913 "/usr/include/stdlib.h" 3 +extern int mkostemps64(char * __template, int __suffixlen, int __flags) +# 914 + __attribute((__nonnull__(1))); +# 923 "/usr/include/stdlib.h" 3 +extern int system(const char * __command); +# 929 +extern char *canonicalize_file_name(const char * __name) noexcept(true) +# 930 + __attribute((__nonnull__(1))) __attribute((__malloc__)) +# 931 + __attribute((__malloc__(__builtin_free, 1))); +# 940 "/usr/include/stdlib.h" 3 +extern char *realpath(const char *__restrict__ __name, char *__restrict__ __resolved) noexcept(true); +# 948 +typedef int (*__compar_fn_t)(const void *, const void *); +# 951 +typedef __compar_fn_t comparison_fn_t; +# 955 +typedef int (*__compar_d_fn_t)(const void *, const void *, void *); +# 960 +extern void *bsearch(const void * __key, const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar) +# 962 + __attribute((__nonnull__(1, 2, 5))); +# 970 +extern void qsort(void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar) +# 971 + __attribute((__nonnull__(1, 4))); +# 973 +extern void qsort_r(void * __base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void * __arg) +# 975 + __attribute((__nonnull__(1, 4))); +# 980 +extern int abs(int __x) noexcept(true) __attribute((const)); +# 981 +extern long labs(long __x) noexcept(true) __attribute((const)); +# 984 +__extension__ extern long long llabs(long long __x) noexcept(true) +# 985 + __attribute((const)); +# 992 +extern div_t div(int __numer, int __denom) noexcept(true) +# 993 + __attribute((const)); +# 994 +extern ldiv_t ldiv(long __numer, long __denom) noexcept(true) +# 995 + __attribute((const)); +# 998 +__extension__ extern lldiv_t lldiv(long long __numer, long long __denom) noexcept(true) +# 1000 + __attribute((const)); +# 1012 "/usr/include/stdlib.h" 3 +extern char *ecvt(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 1013 + __attribute((__nonnull__(3, 4))); +# 1018 +extern char *fcvt(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 1019 + __attribute((__nonnull__(3, 4))); +# 1024 +extern char *gcvt(double __value, int __ndigit, char * __buf) noexcept(true) +# 1025 + __attribute((__nonnull__(3))); +# 1030 +extern char *qecvt(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 1032 + __attribute((__nonnull__(3, 4))); +# 1033 +extern char *qfcvt(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 1035 + __attribute((__nonnull__(3, 4))); +# 1036 +extern char *qgcvt(long double __value, int __ndigit, char * __buf) noexcept(true) +# 1037 + __attribute((__nonnull__(3))); +# 1042 +extern int ecvt_r(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 1044 + __attribute((__nonnull__(3, 4, 5))); +# 1045 +extern int fcvt_r(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 1047 + __attribute((__nonnull__(3, 4, 5))); +# 1049 +extern int qecvt_r(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 1052 + __attribute((__nonnull__(3, 4, 5))); +# 1053 +extern int qfcvt_r(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 1056 + __attribute((__nonnull__(3, 4, 5))); +# 1062 +extern int mblen(const char * __s, size_t __n) noexcept(true); +# 1065 +extern int mbtowc(wchar_t *__restrict__ __pwc, const char *__restrict__ __s, size_t __n) noexcept(true); +# 1069 +extern int wctomb(char * __s, wchar_t __wchar) noexcept(true); +# 1073 +extern size_t mbstowcs(wchar_t *__restrict__ __pwcs, const char *__restrict__ __s, size_t __n) noexcept(true) +# 1075 + __attribute((__access__(__read_only__ , 2 ))); +# 1077 +extern size_t wcstombs(char *__restrict__ __s, const wchar_t *__restrict__ __pwcs, size_t __n) noexcept(true) +# 1080 + __attribute((__access__(__write_only__ , 1 , 3 ))) +# 1081 + __attribute((__access__(__read_only__ , 2 ))); +# 1088 +extern int rpmatch(const char * __response) noexcept(true) __attribute((__nonnull__(1))); +# 1099 "/usr/include/stdlib.h" 3 +extern int getsubopt(char **__restrict__ __optionp, char *const *__restrict__ __tokens, char **__restrict__ __valuep) noexcept(true) +# 1102 + __attribute((__nonnull__(1, 2, 3))); +# 1110 +extern int posix_openpt(int __oflag); +# 1118 +extern int grantpt(int __fd) noexcept(true); +# 1122 +extern int unlockpt(int __fd) noexcept(true); +# 1127 +extern char *ptsname(int __fd) noexcept(true); +# 1134 +extern int ptsname_r(int __fd, char * __buf, size_t __buflen) noexcept(true) +# 1135 + __attribute((__nonnull__(2))) __attribute((__access__(__write_only__ , 2 , 3 ))); +# 1138 +extern int getpt(); +# 1145 +extern int getloadavg(double __loadavg[], int __nelem) noexcept(true) +# 1146 + __attribute((__nonnull__(1))); +# 1167 "/usr/include/stdlib.h" 3 +} +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +extern "C++" { +# 48 +namespace std __attribute((__visibility__("default"))) { +# 52 +using ::abs; +# 56 +inline long abs(long __i) { return __builtin_labs(__i); } +# 61 +inline long long abs(long long __x) { return __builtin_llabs(__x); } +# 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +constexpr double abs(double __x) +# 72 +{ return __builtin_fabs(__x); } +# 75 +constexpr float abs(float __x) +# 76 +{ return __builtin_fabsf(__x); } +# 79 +constexpr long double abs(long double __x) +# 80 +{ return __builtin_fabsl(__x); } +# 85 +__extension__ constexpr __int128 abs(__int128 __x) { return (__x >= (0)) ? __x : (-__x); } +# 137 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +__extension__ constexpr __float128 abs(__float128 __x) +# 138 +{ +# 142 +return __builtin_fabsf128(__x); +# 147 +} +# 151 +} +# 152 +} +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +extern "C++" { +# 127 +namespace std __attribute((__visibility__("default"))) { +# 131 +using ::div_t; +# 132 +using ::ldiv_t; +# 134 +using ::abort; +# 136 +using ::aligned_alloc; +# 138 +using ::atexit; +# 141 +using ::at_quick_exit; +# 144 +using ::atof; +# 145 +using ::atoi; +# 146 +using ::atol; +# 147 +using ::bsearch; +# 148 +using ::calloc; +# 149 +using ::div; +# 150 +using ::exit; +# 151 +using ::free; +# 152 +using ::getenv; +# 153 +using ::labs; +# 154 +using ::ldiv; +# 155 +using ::malloc; +# 157 +using ::mblen; +# 158 +using ::mbstowcs; +# 159 +using ::mbtowc; +# 161 +using ::qsort; +# 164 +using ::quick_exit; +# 167 +using ::rand; +# 168 +using ::realloc; +# 169 +using ::srand; +# 170 +using ::strtod; +# 171 +using ::strtol; +# 172 +using ::strtoul; +# 173 +using ::system; +# 175 +using ::wcstombs; +# 176 +using ::wctomb; +# 181 +inline ldiv_t div(long __i, long __j) noexcept { return ldiv(__i, __j); } +# 186 +} +# 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 204 +using ::lldiv_t; +# 210 +using ::_Exit; +# 214 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" +using ::llabs; +# 219 +inline lldiv_t div(long long __n, long long __d) +# 220 +{ lldiv_t __q; (__q.quot) = (__n / __d); (__q.rem) = (__n % __d); return __q; } +# 222 +using ::lldiv; +#pragma GCC diagnostic pop +# 234 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +using ::atoll; +# 235 +using ::strtoll; +# 236 +using ::strtoull; +# 238 +using ::strtof; +# 239 +using ::strtold; +# 242 +} +# 244 +namespace std { +# 247 +using __gnu_cxx::lldiv_t; +# 249 +using __gnu_cxx::_Exit; +# 251 +using __gnu_cxx::llabs; +# 252 +using __gnu_cxx::div; +# 253 +using __gnu_cxx::lldiv; +# 255 +using __gnu_cxx::atoll; +# 256 +using __gnu_cxx::strtof; +# 257 +using __gnu_cxx::strtoll; +# 258 +using __gnu_cxx::strtoull; +# 259 +using __gnu_cxx::strtold; +# 260 +} +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +} +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 3 +using std::abort; +# 39 +using std::atexit; +# 40 +using std::exit; +# 43 +using std::at_quick_exit; +# 46 +using std::quick_exit; +# 49 +using std::_Exit; +# 57 +using std::abs; +# 58 +using std::atof; +# 59 +using std::atoi; +# 60 +using std::atol; +# 61 +using std::bsearch; +# 62 +using std::calloc; +# 63 +using std::div; +# 64 +using std::free; +# 65 +using std::getenv; +# 66 +using std::labs; +# 67 +using std::ldiv; +# 68 +using std::malloc; +# 70 +using std::mblen; +# 71 +using std::mbstowcs; +# 72 +using std::mbtowc; +# 74 +using std::qsort; +# 75 +using std::rand; +# 76 +using std::realloc; +# 77 +using std::srand; +# 78 +using std::strtod; +# 79 +using std::strtol; +# 80 +using std::strtoul; +# 81 +using std::system; +# 83 +using std::wcstombs; +# 84 +using std::wctomb; +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern "C" { +# 191 +__attribute__((unused)) extern cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(); +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetAttribute(int * value, cudaDeviceAttr attr, int device); +# 245 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetLimit(size_t * pValue, cudaLimit limit); +# 246 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetCacheConfig(cudaFuncCache * pCacheConfig); +# 247 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetSharedMemConfig(cudaSharedMemConfig * pConfig); +# 248 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetLastError(); +# 249 +__attribute__((unused)) extern cudaError_t __cudaCDP2PeekAtLastError(); +# 250 +__attribute__((unused)) extern const char *__cudaCDP2GetErrorString(cudaError_t error); +# 251 +__attribute__((unused)) extern const char *__cudaCDP2GetErrorName(cudaError_t error); +# 252 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetDeviceCount(int * count); +# 253 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetDevice(int * device); +# 254 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamCreateWithFlags(cudaStream_t * pStream, unsigned flags); +# 255 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamDestroy(cudaStream_t stream); +# 256 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned flags); +# 257 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned flags); +# 258 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventCreateWithFlags(cudaEvent_t * event, unsigned flags); +# 259 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecord(cudaEvent_t event, cudaStream_t stream); +# 260 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +# 261 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned flags); +# 262 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned flags); +# 263 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventDestroy(cudaEvent_t event); +# 264 +__attribute__((unused)) extern cudaError_t __cudaCDP2FuncGetAttributes(cudaFuncAttributes * attr, const void * func); +# 265 +__attribute__((unused)) extern cudaError_t __cudaCDP2Free(void * devPtr); +# 266 +__attribute__((unused)) extern cudaError_t __cudaCDP2Malloc(void ** devPtr, size_t size); +# 267 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemcpyAsync(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream); +# 268 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemcpyAsync_ptsz(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream); +# 269 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy2DAsync(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream); +# 270 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy2DAsync_ptsz(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream); +# 271 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy3DAsync(const cudaMemcpy3DParms * p, cudaStream_t stream); +# 272 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy3DAsync_ptsz(const cudaMemcpy3DParms * p, cudaStream_t stream); +# 273 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemsetAsync(void * devPtr, int value, size_t count, cudaStream_t stream); +# 274 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemsetAsync_ptsz(void * devPtr, int value, size_t count, cudaStream_t stream); +# 275 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset2DAsync(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +# 276 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset2DAsync_ptsz(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +# 277 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset3DAsync(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream); +# 278 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset3DAsync_ptsz(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream); +# 279 +__attribute__((unused)) extern cudaError_t __cudaCDP2RuntimeGetVersion(int * runtimeVersion); +# 280 +__attribute__((unused)) extern void *__cudaCDP2GetParameterBuffer(size_t alignment, size_t size); +# 281 +__attribute__((unused)) extern void *__cudaCDP2GetParameterBufferV2(void * func, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize); +# 282 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDevice_ptsz(void * func, void * parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream); +# 283 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDeviceV2_ptsz(void * parameterBuffer, cudaStream_t stream); +# 284 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDevice(void * func, void * parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream); +# 285 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDeviceV2(void * parameterBuffer, cudaStream_t stream); +# 286 +__attribute__((unused)) extern cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, const void * func, int blockSize, size_t dynamicSmemSize); +# 287 +__attribute__((unused)) extern cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, const void * func, int blockSize, size_t dynamicSmemSize, unsigned flags); +# 290 +extern cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 311 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaGraphExec_t cudaGetCurrentGraphExec() +# 312 +{int volatile ___ = 1; +# 316 +::exit(___);} +#if 0 +# 312 +{ +# 313 +unsigned long long current_graph_exec; +# 314 +__asm__("mov.u64 %0, %%current_graph_exec;" : "=l" (current_graph_exec) :); +# 315 +return (cudaGraphExec_t)current_graph_exec; +# 316 +} +#endif +# 346 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const void * value, size_t size); +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 430 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate * updates, size_t updateCount); +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void cudaTriggerProgrammaticLaunchCompletion() +# 449 +{int volatile ___ = 1; +# 451 +::exit(___);} +#if 0 +# 449 +{ +# 450 +__asm__ volatile("griddepcontrol.launch_dependents;" : :); +# 451 +} +#endif +# 464 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void cudaGridDependencySynchronize() +# 465 +{int volatile ___ = 1; +# 467 +::exit(___);} +#if 0 +# 465 +{ +# 466 +__asm__ volatile("griddepcontrol.wait;" : : : "memory"); +# 467 +} +#endif +# 479 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern void cudaGraphSetConditional(cudaGraphConditionalHandle handle, unsigned value); +# 482 +__attribute__((unused)) extern unsigned long long cudaCGGetIntrinsicHandle(cudaCGScope scope); +# 483 +__attribute__((unused)) extern cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned flags); +# 484 +__attribute__((unused)) extern cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned flags); +# 485 +__attribute__((unused)) extern cudaError_t cudaCGGetSize(unsigned * numThreads, unsigned * numGrids, unsigned long long handle); +# 486 +__attribute__((unused)) extern cudaError_t cudaCGGetRank(unsigned * threadRank, unsigned * gridRank, unsigned long long handle); +# 714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void *cudaGetParameterBuffer(size_t alignment, size_t size) +# 715 +{int volatile ___ = 1;(void)alignment;(void)size; +# 717 +::exit(___);} +#if 0 +# 715 +{ +# 716 +return __cudaCDP2GetParameterBuffer(alignment, size); +# 717 +} +#endif +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void *cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize) +# 725 +{int volatile ___ = 1;(void)func;(void)gridDimension;(void)blockDimension;(void)sharedMemSize; +# 727 +::exit(___);} +#if 0 +# 725 +{ +# 726 +return __cudaCDP2GetParameterBufferV2(func, gridDimension, blockDimension, sharedMemSize); +# 727 +} +#endif +# 734 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream) +# 735 +{int volatile ___ = 1;(void)func;(void)parameterBuffer;(void)gridDimension;(void)blockDimension;(void)sharedMemSize;(void)stream; +# 737 +::exit(___);} +#if 0 +# 735 +{ +# 736 +return __cudaCDP2LaunchDevice_ptsz(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +# 737 +} +#endif +# 739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream) +# 740 +{int volatile ___ = 1;(void)parameterBuffer;(void)stream; +# 742 +::exit(___);} +#if 0 +# 740 +{ +# 741 +return __cudaCDP2LaunchDeviceV2_ptsz(parameterBuffer, stream); +# 742 +} +#endif +# 800 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream) +# 801 +{int volatile ___ = 1;(void)func;(void)parameterBuffer;(void)gridDimension;(void)blockDimension;(void)sharedMemSize;(void)stream; +# 803 +::exit(___);} +#if 0 +# 801 +{ +# 802 +return __cudaCDP2LaunchDevice(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +# 803 +} +#endif +# 805 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream) +# 806 +{int volatile ___ = 1;(void)parameterBuffer;(void)stream; +# 808 +::exit(___);} +#if 0 +# 806 +{ +# 807 +return __cudaCDP2LaunchDeviceV2(parameterBuffer, stream); +# 808 +} +#endif +# 862 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +} +# 868 +template< class T> static inline cudaError_t cudaMalloc(T ** devPtr, size_t size); +# 869 +template< class T> static inline cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, T * entry); +# 870 +template< class T> static inline cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, T func, int blockSize, size_t dynamicSmemSize); +# 871 +template< class T> static inline cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned flags); +# 901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +template< class T> __attribute__((unused)) static inline cudaError_t +# 902 +cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const T &value) +# 903 +{int volatile ___ = 1;(void)node;(void)offset;(void)value; +# 905 +::exit(___);} +#if 0 +# 903 +{ +# 904 +return cudaGraphKernelNodeSetParam(node, offset, &value, sizeof(T)); +# 905 +} +#endif +# 287 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern "C" { +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceReset(); +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSynchronize(); +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetLimit(cudaLimit limit, size_t value); +# 478 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetLimit(size_t * pValue, cudaLimit limit); +# 501 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t * maxWidthInElements, const cudaChannelFormatDesc * fmtDesc, int device); +# 535 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetCacheConfig(cudaFuncCache * pCacheConfig); +# 572 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetStreamPriorityRange(int * leastPriority, int * greatestPriority); +# 616 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetCacheConfig(cudaFuncCache cacheConfig); +# 643 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetByPCIBusId(int * device, const char * pciBusId); +# 673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetPCIBusId(char * pciBusId, int len, int device); +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t * handle, cudaEvent_t event); +# 768 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcOpenEventHandle(cudaEvent_t * event, cudaIpcEventHandle_t handle); +# 813 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t * handle, void * devPtr); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcOpenMemHandle(void ** devPtr, cudaIpcMemHandle_t handle, unsigned flags); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcCloseMemHandle(void * devPtr); +# 951 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(cudaFlushGPUDirectRDMAWritesTarget target, cudaFlushGPUDirectRDMAWritesScope scope); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void * userData, cudaAsyncCallbackHandle_t * callback); +# 1012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaDeviceGetSharedMemConfig(cudaSharedMemConfig * pConfig); +# 1105 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaDeviceSetSharedMemConfig(cudaSharedMemConfig config); +# 1146 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadExit(); +# 1172 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSynchronize(); +# 1221 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSetLimit(cudaLimit limit, size_t value); +# 1254 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadGetLimit(size_t * pValue, cudaLimit limit); +# 1290 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadGetCacheConfig(cudaFuncCache * pCacheConfig); +# 1337 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSetCacheConfig(cudaFuncCache cacheConfig); +# 1402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetLastError(); +# 1453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaPeekAtLastError(); +# 1469 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern const char *cudaGetErrorName(cudaError_t error); +# 1485 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern const char *cudaGetErrorString(cudaError_t error); +# 1514 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceCount(int * count); +# 1818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceProperties_v2(cudaDeviceProp * prop, int device); +# 2024 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetAttribute(int * value, cudaDeviceAttr attr, int device); +# 2042 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t * memPool, int device); +# 2066 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetMemPool(cudaMemPool_t * memPool, int device); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetNvSciSyncAttributes(void * nvSciSyncAttrList, int device, int flags); +# 2188 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetP2PAttribute(int * value, cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2210 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaChooseDevice(int * device, const cudaDeviceProp * prop); +# 2239 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaInitDevice(int device, unsigned deviceFlags, unsigned flags); +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaSetDevice(int device); +# 2307 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDevice(int * device); +# 2338 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaSetValidDevices(int * device_arr, int len); +# 2408 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaSetDeviceFlags(unsigned flags); +# 2453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceFlags(unsigned * flags); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreate(cudaStream_t * pStream); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreateWithFlags(cudaStream_t * pStream, unsigned flags); +# 2585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreateWithPriority(cudaStream_t * pStream, unsigned flags, int priority); +# 2613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int * priority); +# 2639 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned * flags); +# 2676 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long * streamId); +# 2702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetDevice(cudaStream_t hStream, int * device); +# 2717 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaCtxResetPersistingL2Cache(); +# 2737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2758 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetAttribute(cudaStream_t hStream, cudaLaunchAttributeID attr, cudaLaunchAttributeValue * value_out); +# 2782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamSetAttribute(cudaStream_t hStream, cudaLaunchAttributeID attr, const cudaLaunchAttributeValue * value); +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2847 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned flags = 0); +# 2855 +typedef void (*cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void * userData); +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamAddCallback(cudaStream_t stream, cudaStreamCallback_t callback, void * userData, unsigned flags); +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamQuery(cudaStream_t stream); +# 3055 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void * devPtr, size_t length = 0, unsigned flags = 4); +# 3094 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamBeginCapture(cudaStream_t stream, cudaStreamCaptureMode mode); +# 3135 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamBeginCaptureToGraph(cudaStream_t stream, cudaGraph_t graph, const cudaGraphNode_t * dependencies, const cudaGraphEdgeData * dependencyData, size_t numDependencies, cudaStreamCaptureMode mode); +# 3186 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaThreadExchangeStreamCaptureMode(cudaStreamCaptureMode * mode); +# 3215 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t * pGraph); +# 3253 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamIsCapturing(cudaStream_t stream, cudaStreamCaptureStatus * pCaptureStatus); +# 3303 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, cudaStreamCaptureStatus * captureStatus_out, unsigned long long * id_out = 0, cudaGraph_t * graph_out = 0, const cudaGraphNode_t ** dependencies_out = 0, size_t * numDependencies_out = 0); +# 3362 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetCaptureInfo_v3(cudaStream_t stream, cudaStreamCaptureStatus * captureStatus_out, unsigned long long * id_out = 0, cudaGraph_t * graph_out = 0, const cudaGraphNode_t ** dependencies_out = 0, const cudaGraphEdgeData ** edgeData_out = 0, size_t * numDependencies_out = 0); +# 3402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t * dependencies, size_t numDependencies, unsigned flags = 0); +# 3437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamUpdateCaptureDependencies_v2(cudaStream_t stream, cudaGraphNode_t * dependencies, const cudaGraphEdgeData * dependencyData, size_t numDependencies, unsigned flags = 0); +# 3474 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventCreate(cudaEvent_t * event); +# 3511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventCreateWithFlags(cudaEvent_t * event, unsigned flags); +# 3552 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3600 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned flags = 0); +# 3633 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventQuery(cudaEvent_t event); +# 3664 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3694 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventElapsedTime(float * ms, cudaEvent_t start, cudaEvent_t end); +# 3787 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventElapsedTime_v2(float * ms, cudaEvent_t start, cudaEvent_t end); +# 3968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaImportExternalMemory(cudaExternalMemory_t * extMem_out, const cudaExternalMemoryHandleDesc * memHandleDesc); +# 4023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaExternalMemoryGetMappedBuffer(void ** devPtr, cudaExternalMemory_t extMem, const cudaExternalMemoryBufferDesc * bufferDesc); +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t * mipmap, cudaExternalMemory_t extMem, const cudaExternalMemoryMipmappedArrayDesc * mipmapDesc); +# 4107 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t * extSem_out, const cudaExternalSemaphoreHandleDesc * semHandleDesc); +# 4344 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t * extSemArray, const cudaExternalSemaphoreSignalParams * paramsArray, unsigned numExtSems, cudaStream_t stream = 0); +# 4420 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t * extSemArray, const cudaExternalSemaphoreWaitParams * paramsArray, unsigned numExtSems, cudaStream_t stream = 0); +# 4443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchKernel(const void * func, dim3 gridDim, dim3 blockDim, void ** args, size_t sharedMem, cudaStream_t stream); +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t * config, const void * func, void ** args); +# 4632 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchCooperativeKernel(const void * func, dim3 gridDim, dim3 blockDim, void ** args, size_t sharedMem, cudaStream_t stream); +# 4733 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaLaunchCooperativeKernelMultiDevice(cudaLaunchParams * launchParamsList, unsigned numDevices, unsigned flags = 0); +# 4783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncSetCacheConfig(const void * func, cudaFuncCache cacheConfig); +# 4818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, const void * func); +# 4877 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncSetAttribute(const void * func, cudaFuncAttribute attr, int value); +# 4903 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetName(const char ** name, const void * func); +# 4926 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetParamInfo(const void * func, size_t paramIndex, size_t * paramOffset, size_t * paramSize); +# 4950 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaSetDoubleForDevice(double * d); +# 4974 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaSetDoubleForHost(double * d); +# 5040 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void * userData); +# 5114 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaFuncSetSharedMemConfig(const void * func, cudaSharedMemConfig config); +# 5171 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, const void * func, int blockSize, size_t dynamicSMemSize); +# 5201 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t * dynamicSmemSize, const void * func, int numBlocks, int blockSize); +# 5247 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, const void * func, int blockSize, size_t dynamicSMemSize, unsigned flags); +# 5283 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxPotentialClusterSize(int * clusterSize, const void * func, const cudaLaunchConfig_t * launchConfig); +# 5323 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveClusters(int * numClusters, const void * func, const cudaLaunchConfig_t * launchConfig); +# 5443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocManaged(void ** devPtr, size_t size, unsigned flags = 1); +# 5476 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc(void ** devPtr, size_t size); +# 5513 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocHost(void ** ptr, size_t size); +# 5556 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocPitch(void ** devPtr, size_t * pitch, size_t width, size_t height); +# 5608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocArray(cudaArray_t * array, const cudaChannelFormatDesc * desc, size_t width, size_t height = 0, unsigned flags = 0); +# 5647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFree(void * devPtr); +# 5670 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFreeHost(void * ptr); +# 5693 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFreeArray(cudaArray_t array); +# 5716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostAlloc(void ** pHost, size_t size, unsigned flags); +# 5879 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostRegister(void * ptr, size_t size, unsigned flags); +# 5902 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostUnregister(void * ptr); +# 5947 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostGetDevicePointer(void ** pDevice, void * pHost, unsigned flags); +# 5969 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostGetFlags(unsigned * pFlags, void * pHost); +# 6008 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc3D(cudaPitchedPtr * pitchedDevPtr, cudaExtent extent); +# 6153 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc3DArray(cudaArray_t * array, const cudaChannelFormatDesc * desc, cudaExtent extent, unsigned flags = 0); +# 6298 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t * mipmappedArray, const cudaChannelFormatDesc * desc, cudaExtent extent, unsigned numLevels, unsigned flags = 0); +# 6331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t * levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned level); +# 6436 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3D(const cudaMemcpy3DParms * p); +# 6468 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DPeer(const cudaMemcpy3DPeerParms * p); +# 6586 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DAsync(const cudaMemcpy3DParms * p, cudaStream_t stream = 0); +# 6613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DPeerAsync(const cudaMemcpy3DPeerParms * p, cudaStream_t stream = 0); +# 6647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemGetInfo(size_t * free, size_t * total); +# 6673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetInfo(cudaChannelFormatDesc * desc, cudaExtent * extent, unsigned * flags, cudaArray_t array); +# 6702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetPlane(cudaArray_t * pPlaneArray, cudaArray_t hArray, unsigned planeIdx); +# 6725 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetMemoryRequirements(cudaArrayMemoryRequirements * memoryRequirements, cudaArray_t array, int device); +# 6749 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMipmappedArrayGetMemoryRequirements(cudaArrayMemoryRequirements * memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6777 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetSparseProperties(cudaArraySparseProperties * sparseProperties, cudaArray_t array); +# 6807 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMipmappedArrayGetSparseProperties(cudaArraySparseProperties * sparseProperties, cudaMipmappedArray_t mipmap); +# 6852 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy(void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 6887 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyPeer(void * dst, int dstDevice, const void * src, int srcDevice, size_t count); +# 6936 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2D(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind); +# 6986 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind); +# 7036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DFromArray(void * dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, cudaMemcpyKind kind); +# 7083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyToSymbol(const void * symbol, const void * src, size_t count, size_t offset = 0, cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 7170 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyFromSymbol(void * dst, const void * symbol, size_t count, size_t offset = 0, cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 7227 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyAsync(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7262 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyPeerAsync(void * dst, int dstDevice, const void * src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 7334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyBatchAsync(void ** dsts, void ** srcs, size_t * sizes, size_t count, cudaMemcpyAttributes * attrs, size_t * attrsIdxs, size_t numAttrs, size_t * failIdx, cudaStream_t stream); +# 7402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DBatchAsync(size_t numOps, cudaMemcpy3DBatchOp * opList, size_t * failIdx, unsigned long long flags, cudaStream_t stream); +# 7465 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DAsync(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7523 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7580 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DFromArrayAsync(void * dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyToSymbolAsync(const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7682 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyFromSymbolAsync(void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7711 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset(void * devPtr, int value, size_t count); +# 7745 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset2D(void * devPtr, size_t pitch, int value, size_t width, size_t height); +# 7791 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset3D(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent); +# 7827 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemsetAsync(void * devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7868 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset2DAsync(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7921 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset3DAsync(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream = 0); +# 7949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetSymbolAddress(void ** devPtr, const void * symbol); +# 7976 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetSymbolSize(size_t * size, const void * symbol); +# 8048 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPrefetchAsync(const void * devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 8129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPrefetchAsync_v2(const void * devPtr, size_t count, cudaMemLocation location, unsigned flags, cudaStream_t stream = 0); +# 8243 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemAdvise(const void * devPtr, size_t count, cudaMemoryAdvise advice, int device); +# 8366 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemAdvise_v2(const void * devPtr, size_t count, cudaMemoryAdvise advice, cudaMemLocation location); +# 8448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemRangeGetAttribute(void * data, size_t dataSize, cudaMemRangeAttribute attribute, const void * devPtr, size_t count); +# 8491 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemRangeGetAttributes(void ** data, size_t * dataSizes, cudaMemRangeAttribute * attributes, size_t numAttributes, const void * devPtr, size_t count); +# 8551 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t count, cudaMemcpyKind kind); +# 8593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyFromArray(void * dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind); +# 8636 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 8687 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyFromArrayAsync(void * dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8806 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocAsync(void ** devPtr, size_t size, cudaStream_t hStream); +# 8832 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFreeAsync(void * devPtr, cudaStream_t hStream); +# 8857 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, cudaMemPoolAttr attr, void * value); +# 8949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, cudaMemPoolAttr attr, void * value); +# 8964 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const cudaMemAccessDesc * descList, size_t count); +# 8977 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolGetAccess(cudaMemAccessFlags * flags, cudaMemPool_t memPool, cudaMemLocation * location); +# 9021 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolCreate(cudaMemPool_t * memPool, const cudaMemPoolProps * poolProps); +# 9043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 9079 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocFromPoolAsync(void ** ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 9104 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolExportToShareableHandle(void * shareableHandle, cudaMemPool_t memPool, cudaMemAllocationHandleType handleType, unsigned flags); +# 9131 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolImportFromShareableHandle(cudaMemPool_t * memPool, void * shareableHandle, cudaMemAllocationHandleType handleType, unsigned flags); +# 9154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolExportPointer(cudaMemPoolPtrExportData * exportData, void * ptr); +# 9183 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolImportPointer(void ** ptr, cudaMemPool_t memPool, cudaMemPoolPtrExportData * exportData); +# 9336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaPointerGetAttributes(cudaPointerAttributes * attributes, const void * ptr); +# 9377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceCanAccessPeer(int * canAccessPeer, int device, int peerDevice); +# 9419 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned flags); +# 9441 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9505 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9540 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned flags); +# 9579 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t * resources, cudaStream_t stream = 0); +# 9614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t * resources, cudaStream_t stream = 0); +# 9646 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceGetMappedPointer(void ** devPtr, size_t * size, cudaGraphicsResource_t resource); +# 9684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t * array, cudaGraphicsResource_t resource, unsigned arrayIndex, unsigned mipLevel); +# 9713 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t * mipmappedArray, cudaGraphicsResource_t resource); +# 9748 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetChannelDesc(cudaChannelFormatDesc * desc, cudaArray_const_t array); +# 9778 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, cudaChannelFormatKind f); +# 10003 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaCreateTextureObject(cudaTextureObject_t * pTexObject, const cudaResourceDesc * pResDesc, const cudaTextureDesc * pTexDesc, const cudaResourceViewDesc * pResViewDesc); +# 10023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 10043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectResourceDesc(cudaResourceDesc * pResDesc, cudaTextureObject_t texObject); +# 10063 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectTextureDesc(cudaTextureDesc * pTexDesc, cudaTextureObject_t texObject); +# 10084 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectResourceViewDesc(cudaResourceViewDesc * pResViewDesc, cudaTextureObject_t texObject); +# 10129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t * pSurfObject, const cudaResourceDesc * pResDesc); +# 10149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 10168 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetSurfaceObjectResourceDesc(cudaResourceDesc * pResDesc, cudaSurfaceObject_t surfObject); +# 10202 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDriverGetVersion(int * driverVersion); +# 10231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaRuntimeGetVersion(int * runtimeVersion); +# 10278 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphCreate(cudaGraph_t * pGraph, unsigned flags); +# 10377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaKernelNodeParams * pNodeParams); +# 10410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, cudaKernelNodeParams * pNodeParams); +# 10437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const cudaKernelNodeParams * pNodeParams); +# 10457 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeCopyAttributes(cudaGraphNode_t hSrc, cudaGraphNode_t hDst); +# 10480 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeGetAttribute(cudaGraphNode_t hNode, cudaLaunchAttributeID attr, cudaLaunchAttributeValue * value_out); +# 10504 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeSetAttribute(cudaGraphNode_t hNode, cudaLaunchAttributeID attr, const cudaLaunchAttributeValue * value); +# 10555 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaMemcpy3DParms * pCopyParams); +# 10614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemcpyNodeToSymbol(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 10683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemcpyNodeFromSymbol(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 10751 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemcpyNode1D(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 10783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, cudaMemcpy3DParms * pNodeParams); +# 10810 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const cudaMemcpy3DParms * pNodeParams); +# 10849 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol(cudaGraphNode_t node, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 10895 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol(cudaGraphNode_t node, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 10941 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParams1D(cudaGraphNode_t node, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 10989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaMemsetParams * pMemsetParams); +# 11012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, cudaMemsetParams * pNodeParams); +# 11036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const cudaMemsetParams * pNodeParams); +# 11078 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddHostNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaHostNodeParams * pNodeParams); +# 11101 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, cudaHostNodeParams * pNodeParams); +# 11125 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const cudaHostNodeParams * pNodeParams); +# 11166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 11193 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t * pGraph); +# 11231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies); +# 11275 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaEvent_t event); +# 11302 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t * event_out); +# 11330 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaEvent_t event); +# 11404 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t * event_out); +# 11432 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11482 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 11515 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, cudaExternalSemaphoreSignalNodeParams * params_out); +# 11543 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 11593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 11626 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, cudaExternalSemaphoreWaitNodeParams * params_out); +# 11654 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 11732 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaMemAllocNodeParams * nodeParams); +# 11759 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, cudaMemAllocNodeParams * params_out); +# 11820 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dptr); +# 11844 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void * dptr_out); +# 11872 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGraphMemTrim(int device); +# 11909 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetGraphMemAttribute(int device, cudaGraphMemAttributeType attr, void * value); +# 11943 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetGraphMemAttribute(int device, cudaGraphMemAttributeType attr, void * value); +# 11971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphClone(cudaGraph_t * pGraphClone, cudaGraph_t originalGraph); +# 11999 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t * pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 12030 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, cudaGraphNodeType * pType); +# 12061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t * nodes, size_t * numNodes); +# 12092 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t * pRootNodes, size_t * pNumRootNodes); +# 12126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t * from, cudaGraphNode_t * to, size_t * numEdges); +# 12166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetEdges_v2(cudaGraph_t graph, cudaGraphNode_t * from, cudaGraphNode_t * to, cudaGraphEdgeData * edgeData, size_t * numEdges); +# 12197 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t * pDependencies, size_t * pNumDependencies); +# 12234 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t * pDependencies, cudaGraphEdgeData * edgeData, size_t * pNumDependencies); +# 12266 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t * pDependentNodes, size_t * pNumDependentNodes); +# 12304 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t * pDependentNodes, cudaGraphEdgeData * edgeData, size_t * pNumDependentNodes); +# 12335 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, size_t numDependencies); +# 12367 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, const cudaGraphEdgeData * edgeData, size_t numDependencies); +# 12398 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, size_t numDependencies); +# 12433 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphRemoveDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, const cudaGraphEdgeData * edgeData, size_t numDependencies); +# 12463 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12534 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiate(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12607 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams * instantiateParams); +# 12739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long * flags); +# 12799 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaKernelNodeParams * pNodeParams); +# 12850 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaMemcpy3DParms * pNodeParams); +# 12905 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 12968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 13029 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParams1D(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 13088 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaMemsetParams * pNodeParams); +# 13128 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaHostNodeParams * pNodeParams); +# 13175 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 13220 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13265 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13313 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 13361 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 13401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned isEnabled); +# 13435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned * isEnabled); +# 13529 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo * resultInfo); +# 13554 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13629 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13648 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char * path, unsigned flags); +# 13684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectCreate(cudaUserObject_t * object_out, void * ptr, cudaHostFn_t destroy, unsigned initialRefcount, unsigned flags); +# 13708 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned count = 1); +# 13736 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned count = 1); +# 13764 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned count = 1, unsigned flags = 0); +# 13789 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned count = 1); +# 13831 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaGraphNodeParams * nodeParams); +# 13875 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddNode_v2(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, const cudaGraphEdgeData * dependencyData, size_t numDependencies, cudaGraphNodeParams * nodeParams); +# 13904 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, cudaGraphNodeParams * nodeParams); +# 13953 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, cudaGraphNodeParams * nodeParams); +# 13980 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphConditionalHandleCreate(cudaGraphConditionalHandle * pHandle_out, cudaGraph_t graph, unsigned defaultLaunchValue = 0, unsigned flags = 0); +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDriverEntryPoint(const char * symbol, void ** funcPtr, unsigned long long flags, cudaDriverEntryPointQueryResult * driverStatus = 0); +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDriverEntryPointByVersion(const char * symbol, void ** funcPtr, unsigned cudaVersion, unsigned long long flags, cudaDriverEntryPointQueryResult * driverStatus = 0); +# 14212 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryLoadData(cudaLibrary_t * library, const void * code, cudaJitOption * jitOptions, void ** jitOptionsValues, unsigned numJitOptions, cudaLibraryOption * libraryOptions, void ** libraryOptionValues, unsigned numLibraryOptions); +# 14272 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryLoadFromFile(cudaLibrary_t * library, const char * fileName, cudaJitOption * jitOptions, void ** jitOptionsValues, unsigned numJitOptions, cudaLibraryOption * libraryOptions, void ** libraryOptionValues, unsigned numLibraryOptions); +# 14293 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryUnload(cudaLibrary_t library); +# 14318 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetKernel(cudaKernel_t * pKernel, cudaLibrary_t library, const char * name); +# 14352 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetGlobal(void ** dptr, size_t * bytes, cudaLibrary_t library, const char * name); +# 14385 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetManaged(void ** dptr, size_t * bytes, cudaLibrary_t library, const char * name); +# 14412 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetUnifiedFunction(void ** fptr, cudaLibrary_t library, const char * symbol); +# 14434 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetKernelCount(unsigned * count, cudaLibrary_t lib); +# 14456 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryEnumerateKernels(cudaKernel_t * kernels, unsigned numKernels, cudaLibrary_t lib); +# 14525 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaKernelSetAttributeForDevice(cudaKernel_t kernel, cudaFuncAttribute attr, int value, int device); +# 14530 +extern cudaError_t cudaGetExportTable(const void ** ppExportTable, const cudaUUID_t * pExportTableId); +# 14716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetFuncBySymbol(cudaFunction_t * functionPtr, const void * symbolPtr); +# 14740 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetKernel(cudaKernel_t * kernelPtr, const void * entryFuncAddr); +# 14918 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +} +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template< class T> inline cudaChannelFormatDesc cudaCreateChannelDesc() +# 121 +{ +# 122 +return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +# 123 +} +# 125 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf() +# 126 +{ +# 127 +int e = (((int)sizeof(unsigned short)) * 8); +# 129 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 130 +} +# 132 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf1() +# 133 +{ +# 134 +int e = (((int)sizeof(unsigned short)) * 8); +# 136 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 137 +} +# 139 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf2() +# 140 +{ +# 141 +int e = (((int)sizeof(unsigned short)) * 8); +# 143 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +# 144 +} +# 146 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf4() +# 147 +{ +# 148 +int e = (((int)sizeof(unsigned short)) * 8); +# 150 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +# 151 +} +# 153 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char> () +# 154 +{ +# 155 +int e = (((int)sizeof(char)) * 8); +# 160 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 162 +} +# 164 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< signed char> () +# 165 +{ +# 166 +int e = (((int)sizeof(signed char)) * 8); +# 168 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 169 +} +# 171 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned char> () +# 172 +{ +# 173 +int e = (((int)sizeof(unsigned char)) * 8); +# 175 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 176 +} +# 178 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char1> () +# 179 +{ +# 180 +int e = (((int)sizeof(signed char)) * 8); +# 182 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 183 +} +# 185 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar1> () +# 186 +{ +# 187 +int e = (((int)sizeof(unsigned char)) * 8); +# 189 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 190 +} +# 192 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char2> () +# 193 +{ +# 194 +int e = (((int)sizeof(signed char)) * 8); +# 196 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 197 +} +# 199 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar2> () +# 200 +{ +# 201 +int e = (((int)sizeof(unsigned char)) * 8); +# 203 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 204 +} +# 206 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char4> () +# 207 +{ +# 208 +int e = (((int)sizeof(signed char)) * 8); +# 210 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 211 +} +# 213 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar4> () +# 214 +{ +# 215 +int e = (((int)sizeof(unsigned char)) * 8); +# 217 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 218 +} +# 220 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short> () +# 221 +{ +# 222 +int e = (((int)sizeof(short)) * 8); +# 224 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 225 +} +# 227 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned short> () +# 228 +{ +# 229 +int e = (((int)sizeof(unsigned short)) * 8); +# 231 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 232 +} +# 234 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short1> () +# 235 +{ +# 236 +int e = (((int)sizeof(short)) * 8); +# 238 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 239 +} +# 241 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort1> () +# 242 +{ +# 243 +int e = (((int)sizeof(unsigned short)) * 8); +# 245 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 246 +} +# 248 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short2> () +# 249 +{ +# 250 +int e = (((int)sizeof(short)) * 8); +# 252 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 253 +} +# 255 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort2> () +# 256 +{ +# 257 +int e = (((int)sizeof(unsigned short)) * 8); +# 259 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 260 +} +# 262 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short4> () +# 263 +{ +# 264 +int e = (((int)sizeof(short)) * 8); +# 266 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 267 +} +# 269 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort4> () +# 270 +{ +# 271 +int e = (((int)sizeof(unsigned short)) * 8); +# 273 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 274 +} +# 276 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int> () +# 277 +{ +# 278 +int e = (((int)sizeof(int)) * 8); +# 280 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 281 +} +# 283 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned> () +# 284 +{ +# 285 +int e = (((int)sizeof(unsigned)) * 8); +# 287 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 288 +} +# 290 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int1> () +# 291 +{ +# 292 +int e = (((int)sizeof(int)) * 8); +# 294 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 295 +} +# 297 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint1> () +# 298 +{ +# 299 +int e = (((int)sizeof(unsigned)) * 8); +# 301 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 302 +} +# 304 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int2> () +# 305 +{ +# 306 +int e = (((int)sizeof(int)) * 8); +# 308 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 309 +} +# 311 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint2> () +# 312 +{ +# 313 +int e = (((int)sizeof(unsigned)) * 8); +# 315 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 316 +} +# 318 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int4> () +# 319 +{ +# 320 +int e = (((int)sizeof(int)) * 8); +# 322 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 323 +} +# 325 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint4> () +# 326 +{ +# 327 +int e = (((int)sizeof(unsigned)) * 8); +# 329 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 330 +} +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float> () +# 393 +{ +# 394 +int e = (((int)sizeof(float)) * 8); +# 396 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 397 +} +# 399 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float1> () +# 400 +{ +# 401 +int e = (((int)sizeof(float)) * 8); +# 403 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 404 +} +# 406 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float2> () +# 407 +{ +# 408 +int e = (((int)sizeof(float)) * 8); +# 410 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +# 411 +} +# 413 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float4> () +# 414 +{ +# 415 +int e = (((int)sizeof(float)) * 8); +# 417 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +# 418 +} +# 420 +static inline cudaChannelFormatDesc cudaCreateChannelDescNV12() +# 421 +{ +# 422 +int e = (((int)sizeof(char)) * 8); +# 424 +return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +# 425 +} +# 427 +template< cudaChannelFormatKind > inline cudaChannelFormatDesc cudaCreateChannelDesc() +# 428 +{ +# 429 +return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +# 430 +} +# 433 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X1> () +# 434 +{ +# 435 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +# 436 +} +# 438 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X2> () +# 439 +{ +# 440 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +# 441 +} +# 443 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X4> () +# 444 +{ +# 445 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +# 446 +} +# 449 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X1> () +# 450 +{ +# 451 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +# 452 +} +# 454 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X2> () +# 455 +{ +# 456 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +# 457 +} +# 459 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X4> () +# 460 +{ +# 461 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +# 462 +} +# 465 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X1> () +# 466 +{ +# 467 +return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +# 468 +} +# 470 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X2> () +# 471 +{ +# 472 +return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +# 473 +} +# 475 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X4> () +# 476 +{ +# 477 +return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +# 478 +} +# 481 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X1> () +# 482 +{ +# 483 +return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +# 484 +} +# 486 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X2> () +# 487 +{ +# 488 +return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +# 489 +} +# 491 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X4> () +# 492 +{ +# 493 +return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +# 494 +} +# 497 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindNV12> () +# 498 +{ +# 499 +return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +# 500 +} +# 503 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized1010102> () +# 504 +{ +# 505 +return cudaCreateChannelDesc(10, 10, 10, 2, cudaChannelFormatKindUnsignedNormalized1010102); +# 506 +} +# 509 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed1> () +# 510 +{ +# 511 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +# 512 +} +# 515 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed1SRGB> () +# 516 +{ +# 517 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +# 518 +} +# 521 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed2> () +# 522 +{ +# 523 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +# 524 +} +# 527 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed2SRGB> () +# 528 +{ +# 529 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +# 530 +} +# 533 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed3> () +# 534 +{ +# 535 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +# 536 +} +# 539 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed3SRGB> () +# 540 +{ +# 541 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +# 542 +} +# 545 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed4> () +# 546 +{ +# 547 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +# 548 +} +# 551 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed4> () +# 552 +{ +# 553 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +# 554 +} +# 557 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed5> () +# 558 +{ +# 559 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +# 560 +} +# 563 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed5> () +# 564 +{ +# 565 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +# 566 +} +# 569 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed6H> () +# 570 +{ +# 571 +return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +# 572 +} +# 575 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed6H> () +# 576 +{ +# 577 +return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +# 578 +} +# 581 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed7> () +# 582 +{ +# 583 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +# 584 +} +# 587 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed7SRGB> () +# 588 +{ +# 589 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +# 590 +} +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static inline cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +# 80 +{ +# 81 +cudaPitchedPtr s; +# 83 +(s.ptr) = d; +# 84 +(s.pitch) = p; +# 85 +(s.xsize) = xsz; +# 86 +(s.ysize) = ysz; +# 88 +return s; +# 89 +} +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static inline cudaPos make_cudaPos(size_t x, size_t y, size_t z) +# 107 +{ +# 108 +cudaPos p; +# 110 +(p.x) = x; +# 111 +(p.y) = y; +# 112 +(p.z) = z; +# 114 +return p; +# 115 +} +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static inline cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +# 133 +{ +# 134 +cudaExtent e; +# 136 +(e.width) = w; +# 137 +(e.height) = h; +# 138 +(e.depth) = d; +# 140 +return e; +# 141 +} +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" +static inline char1 make_char1(signed char x); +# 79 +static inline uchar1 make_uchar1(unsigned char x); +# 81 +static inline char2 make_char2(signed char x, signed char y); +# 83 +static inline uchar2 make_uchar2(unsigned char x, unsigned char y); +# 85 +static inline char3 make_char3(signed char x, signed char y, signed char z); +# 87 +static inline uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); +# 89 +static inline char4 make_char4(signed char x, signed char y, signed char z, signed char w); +# 91 +static inline uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); +# 93 +static inline short1 make_short1(short x); +# 95 +static inline ushort1 make_ushort1(unsigned short x); +# 97 +static inline short2 make_short2(short x, short y); +# 99 +static inline ushort2 make_ushort2(unsigned short x, unsigned short y); +# 101 +static inline short3 make_short3(short x, short y, short z); +# 103 +static inline ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); +# 105 +static inline short4 make_short4(short x, short y, short z, short w); +# 107 +static inline ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); +# 109 +static inline int1 make_int1(int x); +# 111 +static inline uint1 make_uint1(unsigned x); +# 113 +static inline int2 make_int2(int x, int y); +# 115 +static inline uint2 make_uint2(unsigned x, unsigned y); +# 117 +static inline int3 make_int3(int x, int y, int z); +# 119 +static inline uint3 make_uint3(unsigned x, unsigned y, unsigned z); +# 121 +static inline int4 make_int4(int x, int y, int z, int w); +# 123 +static inline uint4 make_uint4(unsigned x, unsigned y, unsigned z, unsigned w); +# 125 +static inline long1 make_long1(long x); +# 127 +static inline ulong1 make_ulong1(unsigned long x); +# 129 +static inline long2 make_long2(long x, long y); +# 131 +static inline ulong2 make_ulong2(unsigned long x, unsigned long y); +# 133 +static inline long3 make_long3(long x, long y, long z); +# 135 +static inline ulong3 make_ulong3(unsigned long x, unsigned long y, unsigned long z); +# 137 +static inline long4 make_long4(long x, long y, long z, long w); +# 139 +static inline ulong4 make_ulong4(unsigned long x, unsigned long y, unsigned long z, unsigned long w); +# 141 +static inline float1 make_float1(float x); +# 143 +static inline float2 make_float2(float x, float y); +# 145 +static inline float3 make_float3(float x, float y, float z); +# 147 +static inline float4 make_float4(float x, float y, float z, float w); +# 149 +static inline longlong1 make_longlong1(long long x); +# 151 +static inline ulonglong1 make_ulonglong1(unsigned long long x); +# 153 +static inline longlong2 make_longlong2(long long x, long long y); +# 155 +static inline ulonglong2 make_ulonglong2(unsigned long long x, unsigned long long y); +# 157 +static inline longlong3 make_longlong3(long long x, long long y, long long z); +# 159 +static inline ulonglong3 make_ulonglong3(unsigned long long x, unsigned long long y, unsigned long long z); +# 161 +static inline longlong4 make_longlong4(long long x, long long y, long long z, long long w); +# 163 +static inline ulonglong4 make_ulonglong4(unsigned long long x, unsigned long long y, unsigned long long z, unsigned long long w); +# 165 +static inline double1 make_double1(double x); +# 167 +static inline double2 make_double2(double x, double y); +# 169 +static inline double3 make_double3(double x, double y, double z); +# 171 +static inline double4 make_double4(double x, double y, double z, double w); +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" +static inline char1 make_char1(signed char x) +# 74 +{ +# 75 +char1 t; (t.x) = x; return t; +# 76 +} +# 78 +static inline uchar1 make_uchar1(unsigned char x) +# 79 +{ +# 80 +uchar1 t; (t.x) = x; return t; +# 81 +} +# 83 +static inline char2 make_char2(signed char x, signed char y) +# 84 +{ +# 85 +char2 t; (t.x) = x; (t.y) = y; return t; +# 86 +} +# 88 +static inline uchar2 make_uchar2(unsigned char x, unsigned char y) +# 89 +{ +# 90 +uchar2 t; (t.x) = x; (t.y) = y; return t; +# 91 +} +# 93 +static inline char3 make_char3(signed char x, signed char y, signed char z) +# 94 +{ +# 95 +char3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 96 +} +# 98 +static inline uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +# 99 +{ +# 100 +uchar3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 101 +} +# 103 +static inline char4 make_char4(signed char x, signed char y, signed char z, signed char w) +# 104 +{ +# 105 +char4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 106 +} +# 108 +static inline uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +# 109 +{ +# 110 +uchar4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 111 +} +# 113 +static inline short1 make_short1(short x) +# 114 +{ +# 115 +short1 t; (t.x) = x; return t; +# 116 +} +# 118 +static inline ushort1 make_ushort1(unsigned short x) +# 119 +{ +# 120 +ushort1 t; (t.x) = x; return t; +# 121 +} +# 123 +static inline short2 make_short2(short x, short y) +# 124 +{ +# 125 +short2 t; (t.x) = x; (t.y) = y; return t; +# 126 +} +# 128 +static inline ushort2 make_ushort2(unsigned short x, unsigned short y) +# 129 +{ +# 130 +ushort2 t; (t.x) = x; (t.y) = y; return t; +# 131 +} +# 133 +static inline short3 make_short3(short x, short y, short z) +# 134 +{ +# 135 +short3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 136 +} +# 138 +static inline ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +# 139 +{ +# 140 +ushort3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 141 +} +# 143 +static inline short4 make_short4(short x, short y, short z, short w) +# 144 +{ +# 145 +short4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 146 +} +# 148 +static inline ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +# 149 +{ +# 150 +ushort4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 151 +} +# 153 +static inline int1 make_int1(int x) +# 154 +{ +# 155 +int1 t; (t.x) = x; return t; +# 156 +} +# 158 +static inline uint1 make_uint1(unsigned x) +# 159 +{ +# 160 +uint1 t; (t.x) = x; return t; +# 161 +} +# 163 +static inline int2 make_int2(int x, int y) +# 164 +{ +# 165 +int2 t; (t.x) = x; (t.y) = y; return t; +# 166 +} +# 168 +static inline uint2 make_uint2(unsigned x, unsigned y) +# 169 +{ +# 170 +uint2 t; (t.x) = x; (t.y) = y; return t; +# 171 +} +# 173 +static inline int3 make_int3(int x, int y, int z) +# 174 +{ +# 175 +int3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 176 +} +# 178 +static inline uint3 make_uint3(unsigned x, unsigned y, unsigned z) +# 179 +{ +# 180 +uint3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 181 +} +# 183 +static inline int4 make_int4(int x, int y, int z, int w) +# 184 +{ +# 185 +int4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 186 +} +# 188 +static inline uint4 make_uint4(unsigned x, unsigned y, unsigned z, unsigned w) +# 189 +{ +# 190 +uint4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 191 +} +# 193 +static inline long1 make_long1(long x) +# 194 +{ +# 195 +long1 t; (t.x) = x; return t; +# 196 +} +# 198 +static inline ulong1 make_ulong1(unsigned long x) +# 199 +{ +# 200 +ulong1 t; (t.x) = x; return t; +# 201 +} +# 203 +static inline long2 make_long2(long x, long y) +# 204 +{ +# 205 +long2 t; (t.x) = x; (t.y) = y; return t; +# 206 +} +# 208 +static inline ulong2 make_ulong2(unsigned long x, unsigned long y) +# 209 +{ +# 210 +ulong2 t; (t.x) = x; (t.y) = y; return t; +# 211 +} +# 213 +static inline long3 make_long3(long x, long y, long z) +# 214 +{ +# 215 +long3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 216 +} +# 218 +static inline ulong3 make_ulong3(unsigned long x, unsigned long y, unsigned long z) +# 219 +{ +# 220 +ulong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 221 +} +# 223 +static inline long4 make_long4(long x, long y, long z, long w) +# 224 +{ +# 225 +long4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 226 +} +# 228 +static inline ulong4 make_ulong4(unsigned long x, unsigned long y, unsigned long z, unsigned long w) +# 229 +{ +# 230 +ulong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 231 +} +# 233 +static inline float1 make_float1(float x) +# 234 +{ +# 235 +float1 t; (t.x) = x; return t; +# 236 +} +# 238 +static inline float2 make_float2(float x, float y) +# 239 +{ +# 240 +float2 t; (t.x) = x; (t.y) = y; return t; +# 241 +} +# 243 +static inline float3 make_float3(float x, float y, float z) +# 244 +{ +# 245 +float3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 246 +} +# 248 +static inline float4 make_float4(float x, float y, float z, float w) +# 249 +{ +# 250 +float4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 251 +} +# 253 +static inline longlong1 make_longlong1(long long x) +# 254 +{ +# 255 +longlong1 t; (t.x) = x; return t; +# 256 +} +# 258 +static inline ulonglong1 make_ulonglong1(unsigned long long x) +# 259 +{ +# 260 +ulonglong1 t; (t.x) = x; return t; +# 261 +} +# 263 +static inline longlong2 make_longlong2(long long x, long long y) +# 264 +{ +# 265 +longlong2 t; (t.x) = x; (t.y) = y; return t; +# 266 +} +# 268 +static inline ulonglong2 make_ulonglong2(unsigned long long x, unsigned long long y) +# 269 +{ +# 270 +ulonglong2 t; (t.x) = x; (t.y) = y; return t; +# 271 +} +# 273 +static inline longlong3 make_longlong3(long long x, long long y, long long z) +# 274 +{ +# 275 +longlong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 276 +} +# 278 +static inline ulonglong3 make_ulonglong3(unsigned long long x, unsigned long long y, unsigned long long z) +# 279 +{ +# 280 +ulonglong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 281 +} +# 283 +static inline longlong4 make_longlong4(long long x, long long y, long long z, long long w) +# 284 +{ +# 285 +longlong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 286 +} +# 288 +static inline ulonglong4 make_ulonglong4(unsigned long long x, unsigned long long y, unsigned long long z, unsigned long long w) +# 289 +{ +# 290 +ulonglong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 291 +} +# 293 +static inline double1 make_double1(double x) +# 294 +{ +# 295 +double1 t; (t.x) = x; return t; +# 296 +} +# 298 +static inline double2 make_double2(double x, double y) +# 299 +{ +# 300 +double2 t; (t.x) = x; (t.y) = y; return t; +# 301 +} +# 303 +static inline double3 make_double3(double x, double y, double z) +# 304 +{ +# 305 +double3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 306 +} +# 308 +static inline double4 make_double4(double x, double y, double z, double w) +# 309 +{ +# 310 +double4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 311 +} +# 28 "/usr/include/string.h" 3 +extern "C" { +# 43 "/usr/include/string.h" 3 +extern void *memcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) noexcept(true) +# 44 + __attribute((__nonnull__(1, 2))); +# 47 +extern void *memmove(void * __dest, const void * __src, size_t __n) noexcept(true) +# 48 + __attribute((__nonnull__(1, 2))); +# 54 +extern void *memccpy(void *__restrict__ __dest, const void *__restrict__ __src, int __c, size_t __n) noexcept(true) +# 56 + __attribute((__nonnull__(1, 2))) __attribute((__access__(__write_only__ , 1 , 4 ))); +# 61 +extern void *memset(void * __s, int __c, size_t __n) noexcept(true) __attribute((__nonnull__(1))); +# 64 +extern int memcmp(const void * __s1, const void * __s2, size_t __n) noexcept(true) +# 65 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 80 "/usr/include/string.h" 3 +extern int __memcmpeq(const void * __s1, const void * __s2, size_t __n) noexcept(true) +# 81 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 85 +extern "C++" { +# 87 +extern void *memchr(void * __s, int __c, size_t __n) noexcept(true) __asm__("memchr") +# 88 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 89 +extern const void *memchr(const void * __s, int __c, size_t __n) noexcept(true) __asm__("memchr") +# 90 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 105 "/usr/include/string.h" 3 +} +# 115 "/usr/include/string.h" 3 +extern "C++" void *rawmemchr(void * __s, int __c) noexcept(true) __asm__("rawmemchr") +# 116 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 117 +extern "C++" const void *rawmemchr(const void * __s, int __c) noexcept(true) __asm__("rawmemchr") +# 118 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 126 +extern "C++" void *memrchr(void * __s, int __c, size_t __n) noexcept(true) __asm__("memrchr") +# 127 + __attribute((__pure__)) __attribute((__nonnull__(1))) +# 128 + __attribute((__access__(__read_only__ , 1 , 3 ))); +# 129 +extern "C++" const void *memrchr(const void * __s, int __c, size_t __n) noexcept(true) __asm__("memrchr") +# 130 + __attribute((__pure__)) __attribute((__nonnull__(1))) +# 131 + __attribute((__access__(__read_only__ , 1 , 3 ))); +# 141 "/usr/include/string.h" 3 +extern char *strcpy(char *__restrict__ __dest, const char *__restrict__ __src) noexcept(true) +# 142 + __attribute((__nonnull__(1, 2))); +# 144 +extern char *strncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 146 + __attribute((__nonnull__(1, 2))); +# 149 +extern char *strcat(char *__restrict__ __dest, const char *__restrict__ __src) noexcept(true) +# 150 + __attribute((__nonnull__(1, 2))); +# 152 +extern char *strncat(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 153 + __attribute((__nonnull__(1, 2))); +# 156 +extern int strcmp(const char * __s1, const char * __s2) noexcept(true) +# 157 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 159 +extern int strncmp(const char * __s1, const char * __s2, size_t __n) noexcept(true) +# 160 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 163 +extern int strcoll(const char * __s1, const char * __s2) noexcept(true) +# 164 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 166 +extern size_t strxfrm(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 168 + __attribute((__nonnull__(2))) __attribute((__access__(__write_only__ , 1 , 3 ))); +# 175 +extern int strcoll_l(const char * __s1, const char * __s2, locale_t __l) noexcept(true) +# 176 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 3))); +# 179 +extern size_t strxfrm_l(char * __dest, const char * __src, size_t __n, locale_t __l) noexcept(true) +# 180 + __attribute((__nonnull__(2, 4))) +# 181 + __attribute((__access__(__write_only__ , 1 , 3 ))); +# 187 +extern char *strdup(const char * __s) noexcept(true) +# 188 + __attribute((__malloc__)) __attribute((__nonnull__(1))); +# 195 +extern char *strndup(const char * __string, size_t __n) noexcept(true) +# 196 + __attribute((__malloc__)) __attribute((__nonnull__(1))); +# 224 "/usr/include/string.h" 3 +extern "C++" { +# 226 +extern char *strchr(char * __s, int __c) noexcept(true) __asm__("strchr") +# 227 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 228 +extern const char *strchr(const char * __s, int __c) noexcept(true) __asm__("strchr") +# 229 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 244 "/usr/include/string.h" 3 +} +# 251 +extern "C++" { +# 253 +extern char *strrchr(char * __s, int __c) noexcept(true) __asm__("strrchr") +# 254 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 255 +extern const char *strrchr(const char * __s, int __c) noexcept(true) __asm__("strrchr") +# 256 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 271 "/usr/include/string.h" 3 +} +# 281 "/usr/include/string.h" 3 +extern "C++" char *strchrnul(char * __s, int __c) noexcept(true) __asm__("strchrnul") +# 282 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 283 +extern "C++" const char *strchrnul(const char * __s, int __c) noexcept(true) __asm__("strchrnul") +# 284 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 293 "/usr/include/string.h" 3 +extern size_t strcspn(const char * __s, const char * __reject) noexcept(true) +# 294 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 297 +extern size_t strspn(const char * __s, const char * __accept) noexcept(true) +# 298 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 301 +extern "C++" { +# 303 +extern char *strpbrk(char * __s, const char * __accept) noexcept(true) __asm__("strpbrk") +# 304 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 305 +extern const char *strpbrk(const char * __s, const char * __accept) noexcept(true) __asm__("strpbrk") +# 306 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 321 "/usr/include/string.h" 3 +} +# 328 +extern "C++" { +# 330 +extern char *strstr(char * __haystack, const char * __needle) noexcept(true) __asm__("strstr") +# 331 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 332 +extern const char *strstr(const char * __haystack, const char * __needle) noexcept(true) __asm__("strstr") +# 333 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 348 "/usr/include/string.h" 3 +} +# 356 +extern char *strtok(char *__restrict__ __s, const char *__restrict__ __delim) noexcept(true) +# 357 + __attribute((__nonnull__(2))); +# 361 +extern char *__strtok_r(char *__restrict__ __s, const char *__restrict__ __delim, char **__restrict__ __save_ptr) noexcept(true) +# 364 + __attribute((__nonnull__(2, 3))); +# 366 +extern char *strtok_r(char *__restrict__ __s, const char *__restrict__ __delim, char **__restrict__ __save_ptr) noexcept(true) +# 368 + __attribute((__nonnull__(2, 3))); +# 374 +extern "C++" char *strcasestr(char * __haystack, const char * __needle) noexcept(true) __asm__("strcasestr") +# 375 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 376 +extern "C++" const char *strcasestr(const char * __haystack, const char * __needle) noexcept(true) __asm__("strcasestr") +# 378 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 389 "/usr/include/string.h" 3 +extern void *memmem(const void * __haystack, size_t __haystacklen, const void * __needle, size_t __needlelen) noexcept(true) +# 391 + __attribute((__pure__)) __attribute((__nonnull__(1, 3))) +# 392 + __attribute((__access__(__read_only__ , 1 , 2 ))) +# 393 + __attribute((__access__(__read_only__ , 3 , 4 ))); +# 397 +extern void *__mempcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) noexcept(true) +# 399 + __attribute((__nonnull__(1, 2))); +# 400 +extern void *mempcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) noexcept(true) +# 402 + __attribute((__nonnull__(1, 2))); +# 407 +extern size_t strlen(const char * __s) noexcept(true) +# 408 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 413 +extern size_t strnlen(const char * __string, size_t __maxlen) noexcept(true) +# 414 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 419 +extern char *strerror(int __errnum) noexcept(true); +# 444 "/usr/include/string.h" 3 +extern char *strerror_r(int __errnum, char * __buf, size_t __buflen) noexcept(true) +# 445 + __attribute((__nonnull__(2))) __attribute((__access__(__write_only__ , 2 , 3 ))); +# 450 +extern const char *strerrordesc_np(int __err) noexcept(true); +# 452 +extern const char *strerrorname_np(int __err) noexcept(true); +# 458 +extern char *strerror_l(int __errnum, locale_t __l) noexcept(true); +# 30 "/usr/include/strings.h" 3 +extern "C" { +# 34 +extern int bcmp(const void * __s1, const void * __s2, size_t __n) noexcept(true) +# 35 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 38 +extern void bcopy(const void * __src, void * __dest, size_t __n) noexcept(true) +# 39 + __attribute((__nonnull__(1, 2))); +# 42 +extern void bzero(void * __s, size_t __n) noexcept(true) __attribute((__nonnull__(1))); +# 46 +extern "C++" { +# 48 +extern char *index(char * __s, int __c) noexcept(true) __asm__("index") +# 49 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 50 +extern const char *index(const char * __s, int __c) noexcept(true) __asm__("index") +# 51 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 66 "/usr/include/strings.h" 3 +} +# 74 +extern "C++" { +# 76 +extern char *rindex(char * __s, int __c) noexcept(true) __asm__("rindex") +# 77 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 78 +extern const char *rindex(const char * __s, int __c) noexcept(true) __asm__("rindex") +# 79 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 94 "/usr/include/strings.h" 3 +} +# 104 "/usr/include/strings.h" 3 +extern int ffs(int __i) noexcept(true) __attribute((const)); +# 110 +extern int ffsl(long __l) noexcept(true) __attribute((const)); +# 111 +__extension__ extern int ffsll(long long __ll) noexcept(true) +# 112 + __attribute((const)); +# 116 +extern int strcasecmp(const char * __s1, const char * __s2) noexcept(true) +# 117 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 120 +extern int strncasecmp(const char * __s1, const char * __s2, size_t __n) noexcept(true) +# 121 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 128 +extern int strcasecmp_l(const char * __s1, const char * __s2, locale_t __loc) noexcept(true) +# 129 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 3))); +# 133 +extern int strncasecmp_l(const char * __s1, const char * __s2, size_t __n, locale_t __loc) noexcept(true) +# 135 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 4))); +# 138 +} +# 466 "/usr/include/string.h" 3 +extern void explicit_bzero(void * __s, size_t __n) noexcept(true) __attribute((__nonnull__(1))) +# 467 + __attribute((__access__(__write_only__ , 1 , 2 ))); +# 471 +extern char *strsep(char **__restrict__ __stringp, const char *__restrict__ __delim) noexcept(true) +# 473 + __attribute((__nonnull__(1, 2))); +# 478 +extern char *strsignal(int __sig) noexcept(true); +# 482 +extern const char *sigabbrev_np(int __sig) noexcept(true); +# 485 +extern const char *sigdescr_np(int __sig) noexcept(true); +# 489 +extern char *__stpcpy(char *__restrict__ __dest, const char *__restrict__ __src) noexcept(true) +# 490 + __attribute((__nonnull__(1, 2))); +# 491 +extern char *stpcpy(char *__restrict__ __dest, const char *__restrict__ __src) noexcept(true) +# 492 + __attribute((__nonnull__(1, 2))); +# 496 +extern char *__stpncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 498 + __attribute((__nonnull__(1, 2))); +# 499 +extern char *stpncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 501 + __attribute((__nonnull__(1, 2))); +# 506 +extern size_t strlcpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 508 + __attribute((__nonnull__(1, 2))) __attribute((__access__(__write_only__ , 1 , 3 ))); +# 512 +extern size_t strlcat(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 514 + __attribute((__nonnull__(1, 2))) __attribute((__access__(__read_write__ , 1 , 3 ))); +# 519 +extern int strverscmp(const char * __s1, const char * __s2) noexcept(true) +# 520 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 523 +extern char *strfry(char * __string) noexcept(true) __attribute((__nonnull__(1))); +# 526 +extern void *memfrob(void * __s, size_t __n) noexcept(true) __attribute((__nonnull__(1))) +# 527 + __attribute((__access__(__read_write__ , 1 , 2 ))); +# 535 +extern "C++" char *basename(char * __filename) noexcept(true) __asm__("basename") +# 536 + __attribute((__nonnull__(1))); +# 537 +extern "C++" const char *basename(const char * __filename) noexcept(true) __asm__("basename") +# 538 + __attribute((__nonnull__(1))); +# 552 "/usr/include/string.h" 3 +} +# 26 "/usr/include/bits/timex.h" 3 +struct timex { +# 58 "/usr/include/bits/timex.h" 3 +unsigned modes; +# 59 +__syscall_slong_t offset; +# 60 +__syscall_slong_t freq; +# 61 +__syscall_slong_t maxerror; +# 62 +__syscall_slong_t esterror; +# 63 +int status; +# 64 +__syscall_slong_t constant; +# 65 +__syscall_slong_t precision; +# 66 +__syscall_slong_t tolerance; +# 67 +timeval time; +# 68 +__syscall_slong_t tick; +# 69 +__syscall_slong_t ppsfreq; +# 70 +__syscall_slong_t jitter; +# 71 +int shift; +# 72 +__syscall_slong_t stabil; +# 73 +__syscall_slong_t jitcnt; +# 74 +__syscall_slong_t calcnt; +# 75 +__syscall_slong_t errcnt; +# 76 +__syscall_slong_t stbcnt; +# 78 +int tai; +# 81 +int: 32; int: 32; int: 32; int: 32; +# 82 +int: 32; int: 32; int: 32; int: 32; +# 83 +int: 32; int: 32; int: 32; +# 85 +}; +# 75 "/usr/include/bits/time.h" 3 +extern "C" { +# 78 +extern int clock_adjtime(__clockid_t __clock_id, timex * __utx) noexcept(true) __attribute((__nonnull__(2))); +# 90 "/usr/include/bits/time.h" 3 +} +# 7 "/usr/include/bits/types/struct_tm.h" 3 +struct tm { +# 9 +int tm_sec; +# 10 +int tm_min; +# 11 +int tm_hour; +# 12 +int tm_mday; +# 13 +int tm_mon; +# 14 +int tm_year; +# 15 +int tm_wday; +# 16 +int tm_yday; +# 17 +int tm_isdst; +# 20 +long tm_gmtoff; +# 21 +const char *tm_zone; +# 26 +}; +# 8 "/usr/include/bits/types/struct_itimerspec.h" 3 +struct itimerspec { +# 10 +timespec it_interval; +# 11 +timespec it_value; +# 12 +}; +# 49 "/usr/include/time.h" 3 +struct sigevent; +# 68 "/usr/include/time.h" 3 +extern "C" { +# 72 +extern clock_t clock() noexcept(true); +# 76 +extern time_t time(time_t * __timer) noexcept(true); +# 79 +extern double difftime(time_t __time1, time_t __time0); +# 82 +extern time_t mktime(tm * __tp) noexcept(true); +# 99 "/usr/include/time.h" 3 +extern size_t strftime(char *__restrict__ __s, size_t __maxsize, const char *__restrict__ __format, const tm *__restrict__ __tp) noexcept(true) +# 102 + __attribute((__nonnull__(1, 3, 4))); +# 107 +extern char *strptime(const char *__restrict__ __s, const char *__restrict__ __fmt, tm * __tp) noexcept(true); +# 116 +extern size_t strftime_l(char *__restrict__ __s, size_t __maxsize, const char *__restrict__ __format, const tm *__restrict__ __tp, locale_t __loc) noexcept(true); +# 123 +extern char *strptime_l(const char *__restrict__ __s, const char *__restrict__ __fmt, tm * __tp, locale_t __loc) noexcept(true); +# 132 +extern tm *gmtime(const time_t * __timer) noexcept(true); +# 136 +extern tm *localtime(const time_t * __timer) noexcept(true); +# 154 "/usr/include/time.h" 3 +extern tm *gmtime_r(const time_t *__restrict__ __timer, tm *__restrict__ __tp) noexcept(true); +# 159 +extern tm *localtime_r(const time_t *__restrict__ __timer, tm *__restrict__ __tp) noexcept(true); +# 179 "/usr/include/time.h" 3 +extern char *asctime(const tm * __tp) noexcept(true); +# 183 +extern char *ctime(const time_t * __timer) noexcept(true); +# 197 "/usr/include/time.h" 3 +extern char *asctime_r(const tm *__restrict__ __tp, char *__restrict__ __buf) noexcept(true); +# 202 +extern char *ctime_r(const time_t *__restrict__ __timer, char *__restrict__ __buf) noexcept(true); +# 217 "/usr/include/time.h" 3 +extern char *__tzname[2]; +# 218 +extern int __daylight; +# 219 +extern long __timezone; +# 224 +extern char *tzname[2]; +# 228 +extern void tzset() noexcept(true); +# 232 +extern int daylight; +# 233 +extern long timezone; +# 246 "/usr/include/time.h" 3 +extern time_t timegm(tm * __tp) noexcept(true); +# 263 "/usr/include/time.h" 3 +extern time_t timelocal(tm * __tp) noexcept(true); +# 271 +extern int dysize(int __year) noexcept(true) __attribute((const)); +# 281 "/usr/include/time.h" 3 +extern int nanosleep(const timespec * __requested_time, timespec * __remaining); +# 285 +extern int clock_getres(clockid_t __clock_id, timespec * __res) noexcept(true); +# 288 +extern int clock_gettime(clockid_t __clock_id, timespec * __tp) noexcept(true) +# 289 + __attribute((__nonnull__(2))); +# 292 +extern int clock_settime(clockid_t __clock_id, const timespec * __tp) noexcept(true) +# 293 + __attribute((__nonnull__(2))); +# 323 "/usr/include/time.h" 3 +extern int clock_nanosleep(clockid_t __clock_id, int __flags, const timespec * __req, timespec * __rem); +# 338 "/usr/include/time.h" 3 +extern int clock_getcpuclockid(pid_t __pid, clockid_t * __clock_id) noexcept(true); +# 343 +extern int timer_create(clockid_t __clock_id, sigevent *__restrict__ __evp, timer_t *__restrict__ __timerid) noexcept(true); +# 348 +extern int timer_delete(timer_t __timerid) noexcept(true); +# 352 +extern int timer_settime(timer_t __timerid, int __flags, const itimerspec *__restrict__ __value, itimerspec *__restrict__ __ovalue) noexcept(true); +# 357 +extern int timer_gettime(timer_t __timerid, itimerspec * __value) noexcept(true); +# 376 "/usr/include/time.h" 3 +extern int timer_getoverrun(timer_t __timerid) noexcept(true); +# 383 +extern int timespec_get(timespec * __ts, int __base) noexcept(true) +# 384 + __attribute((__nonnull__(1))); +# 399 "/usr/include/time.h" 3 +extern int timespec_getres(timespec * __ts, int __base) noexcept(true); +# 425 "/usr/include/time.h" 3 +extern int getdate_err; +# 434 "/usr/include/time.h" 3 +extern tm *getdate(const char * __string); +# 448 "/usr/include/time.h" 3 +extern int getdate_r(const char *__restrict__ __string, tm *__restrict__ __resbufp); +# 452 +} +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" { +# 91 +extern clock_t clock() noexcept(true); +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern void *memset(void *, int, size_t) noexcept(true); +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern void *memcpy(void *, const void *, size_t) noexcept(true); +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +} +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C" { +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int abs(int a) noexcept(true); +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long labs(long a) noexcept(true); +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llabs(long long a) noexcept(true); +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fabs(double x) noexcept(true); +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fabsf(float x) noexcept(true); +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern inline int min(const int a, const int b); +# 324 +extern inline unsigned umin(const unsigned a, const unsigned b); +# 331 +extern inline long long llmin(const long long a, const long long b); +# 338 +extern inline unsigned long long ullmin(const unsigned long long a, const unsigned long long b); +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fminf(float x, float y) noexcept(true); +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fmin(double x, double y) noexcept(true); +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern inline int max(const int a, const int b); +# 400 +extern inline unsigned umax(const unsigned a, const unsigned b); +# 407 +extern inline long long llmax(const long long a, const long long b); +# 414 +extern inline unsigned long long ullmax(const unsigned long long a, const unsigned long long b); +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fmaxf(float x, float y) noexcept(true); +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fmax(double, double) noexcept(true); +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double sin(double x) noexcept(true); +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double cos(double x) noexcept(true); +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern void sincos(double x, double * sptr, double * cptr) noexcept(true); +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern void sincosf(float x, float * sptr, float * cptr) noexcept(true); +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double tan(double x) noexcept(true); +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double sqrt(double x) noexcept(true); +# 597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double rsqrt(double x); +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float rsqrtf(float x); +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double log2(double x) noexcept(true); +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double exp2(double x) noexcept(true); +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float exp2f(float x) noexcept(true); +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double exp10(double x) noexcept(true); +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float exp10f(float x) noexcept(true); +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double expm1(double x) noexcept(true); +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float expm1f(float x) noexcept(true); +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float log2f(float x) noexcept(true); +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double log10(double x) noexcept(true); +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double log(double x) noexcept(true); +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double log1p(double x) noexcept(true); +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float log1pf(float x) noexcept(true); +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double floor(double x) noexcept(true); +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double exp(double x) noexcept(true); +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double cosh(double x) noexcept(true); +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double sinh(double x) noexcept(true); +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double tanh(double x) noexcept(true); +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double acosh(double x) noexcept(true); +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float acoshf(float x) noexcept(true); +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double asinh(double x) noexcept(true); +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float asinhf(float x) noexcept(true); +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double atanh(double x) noexcept(true); +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float atanhf(float x) noexcept(true); +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double ldexp(double x, int exp) noexcept(true); +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float ldexpf(float x, int exp) noexcept(true); +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double logb(double x) noexcept(true); +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float logbf(float x) noexcept(true); +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int ilogb(double x) noexcept(true); +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int ilogbf(float x) noexcept(true); +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double scalbn(double x, int n) noexcept(true); +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float scalbnf(float x, int n) noexcept(true); +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double scalbln(double x, long n) noexcept(true); +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float scalblnf(float x, long n) noexcept(true); +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double frexp(double x, int * nptr) noexcept(true); +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float frexpf(float x, int * nptr) noexcept(true); +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double round(double x) noexcept(true); +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float roundf(float x) noexcept(true); +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long lround(double x) noexcept(true); +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long lroundf(float x) noexcept(true); +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llround(double x) noexcept(true); +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llroundf(float x) noexcept(true); +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float rintf(float x) noexcept(true); +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long lrint(double x) noexcept(true); +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long lrintf(float x) noexcept(true); +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llrint(double x) noexcept(true); +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llrintf(float x) noexcept(true); +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double nearbyint(double x) noexcept(true); +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float nearbyintf(float x) noexcept(true); +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double ceil(double x) noexcept(true); +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double trunc(double x) noexcept(true); +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float truncf(float x) noexcept(true); +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fdim(double x, double y) noexcept(true); +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fdimf(float x, float y) noexcept(true); +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double atan2(double y, double x) noexcept(true); +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double atan(double x) noexcept(true); +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double acos(double x) noexcept(true); +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double asin(double x) noexcept(true); +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double hypot(double x, double y) noexcept(true); +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float hypotf(float x, float y) noexcept(true); +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double cbrt(double x) noexcept(true); +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float cbrtf(float x) noexcept(true); +# 2512 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double rcbrt(double x); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float rcbrtf(float x); +# 2556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double sinpi(double x) noexcept(true); +# 2579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float sinpif(float x) noexcept(true); +# 2601 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double cospi(double x) noexcept(true); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float cospif(float x) noexcept(true); +# 2636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern void sincospi(double x, double * sptr, double * cptr); +# 2649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern void sincospif(float x, float * sptr, float * cptr); +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double pow(double x, double y) noexcept(true); +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double modf(double x, double * iptr) noexcept(true); +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fmod(double x, double y) noexcept(true); +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double remainder(double x, double y) noexcept(true); +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float remainderf(float x, float y) noexcept(true); +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double remquo(double x, double y, int * quo) noexcept(true); +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float remquof(float x, float y, int * quo) noexcept(true); +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double j0(double x) noexcept(true); +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float j0f(float x) noexcept(true); +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double j1(double x) noexcept(true); +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float j1f(float x) noexcept(true); +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double jn(int n, double x) noexcept(true); +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float jnf(int n, float x) noexcept(true); +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double y0(double x) noexcept(true); +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float y0f(float x) noexcept(true); +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double y1(double x) noexcept(true); +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float y1f(float x) noexcept(true); +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double yn(int n, double x) noexcept(true); +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float ynf(int n, float x) noexcept(true); +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erf(double x) noexcept(true); +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erff(float x) noexcept(true); +# 3383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erfinv(double x); +# 3406 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erfinvf(float x); +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erfc(double x) noexcept(true); +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erfcf(float x) noexcept(true); +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double lgamma(double x) noexcept(true); +# 3513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erfcinv(double x); +# 3534 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erfcinvf(float x); +# 3556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double normcdfinv(double x); +# 3578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float normcdfinvf(float x); +# 3597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double normcdf(double x); +# 3616 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float normcdff(float x); +# 3636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erfcx(double x); +# 3656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erfcxf(float x); +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float lgammaf(float x) noexcept(true); +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double tgamma(double x) noexcept(true); +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float tgammaf(float x) noexcept(true); +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double copysign(double x, double y) noexcept(true); +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float copysignf(float x, float y) noexcept(true); +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double nextafter(double x, double y) noexcept(true); +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float nextafterf(float x, float y) noexcept(true); +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double nan(const char * tagp) noexcept(true); +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float nanf(const char * tagp) noexcept(true); +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isinff(float) noexcept(true); +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isnanf(float) noexcept(true); +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __finite(double) noexcept(true); +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __finitef(float) noexcept(true); +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __signbit(double) noexcept(true); +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isnan(double) noexcept(true); +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isinf(double) noexcept(true); +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __signbitf(float) noexcept(true); +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fma(double x, double y, double z) noexcept(true); +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fmaf(float x, float y, float z) noexcept(true); +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __signbitl(long double) noexcept(true); +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __finitel(long double) noexcept(true); +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isinfl(long double) noexcept(true); +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isnanl(long double) noexcept(true); +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float acosf(float x) noexcept(true); +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float asinf(float x) noexcept(true); +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float atanf(float x) noexcept(true); +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float atan2f(float y, float x) noexcept(true); +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float cosf(float x) noexcept(true); +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float sinf(float x) noexcept(true); +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float tanf(float x) noexcept(true); +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float coshf(float x) noexcept(true); +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float sinhf(float x) noexcept(true); +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float tanhf(float x) noexcept(true); +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float logf(float x) noexcept(true); +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float expf(float x) noexcept(true); +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float log10f(float x) noexcept(true); +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float modff(float x, float * iptr) noexcept(true); +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float powf(float x, float y) noexcept(true); +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float sqrtf(float x) noexcept(true); +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float ceilf(float x) noexcept(true); +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float floorf(float x) noexcept(true); +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fmodf(float x, float y) noexcept(true); +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +extern "C++" { +# 70 +namespace std __attribute((__visibility__("default"))) { +# 74 +struct __true_type { }; +# 75 +struct __false_type { }; +# 77 +template< bool > +# 78 +struct __truth_type { +# 79 +typedef __false_type __type; }; +# 82 +template<> struct __truth_type< true> { +# 83 +typedef __true_type __type; }; +# 87 +template< class _Sp, class _Tp> +# 88 +struct __traitor { +# 90 +enum { __value = ((bool)_Sp::__value) || ((bool)_Tp::__value)}; +# 91 +typedef typename __truth_type< __value> ::__type __type; +# 92 +}; +# 95 +template< class , class > +# 96 +struct __are_same { +# 98 +enum { __value}; +# 99 +typedef __false_type __type; +# 100 +}; +# 102 +template< class _Tp> +# 103 +struct __are_same< _Tp, _Tp> { +# 105 +enum { __value = 1}; +# 106 +typedef __true_type __type; +# 107 +}; +# 110 +template< class _Tp> +# 111 +struct __is_void { +# 113 +enum { __value}; +# 114 +typedef __false_type __type; +# 115 +}; +# 118 +template<> struct __is_void< void> { +# 120 +enum { __value = 1}; +# 121 +typedef __true_type __type; +# 122 +}; +# 127 +template< class _Tp> +# 128 +struct __is_integer { +# 130 +enum { __value}; +# 131 +typedef __false_type __type; +# 132 +}; +# 139 +template<> struct __is_integer< bool> { +# 141 +enum { __value = 1}; +# 142 +typedef __true_type __type; +# 143 +}; +# 146 +template<> struct __is_integer< char> { +# 148 +enum { __value = 1}; +# 149 +typedef __true_type __type; +# 150 +}; +# 153 +template<> struct __is_integer< signed char> { +# 155 +enum { __value = 1}; +# 156 +typedef __true_type __type; +# 157 +}; +# 160 +template<> struct __is_integer< unsigned char> { +# 162 +enum { __value = 1}; +# 163 +typedef __true_type __type; +# 164 +}; +# 168 +template<> struct __is_integer< wchar_t> { +# 170 +enum { __value = 1}; +# 171 +typedef __true_type __type; +# 172 +}; +# 186 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template<> struct __is_integer< char16_t> { +# 188 +enum { __value = 1}; +# 189 +typedef __true_type __type; +# 190 +}; +# 193 +template<> struct __is_integer< char32_t> { +# 195 +enum { __value = 1}; +# 196 +typedef __true_type __type; +# 197 +}; +# 201 +template<> struct __is_integer< short> { +# 203 +enum { __value = 1}; +# 204 +typedef __true_type __type; +# 205 +}; +# 208 +template<> struct __is_integer< unsigned short> { +# 210 +enum { __value = 1}; +# 211 +typedef __true_type __type; +# 212 +}; +# 215 +template<> struct __is_integer< int> { +# 217 +enum { __value = 1}; +# 218 +typedef __true_type __type; +# 219 +}; +# 222 +template<> struct __is_integer< unsigned> { +# 224 +enum { __value = 1}; +# 225 +typedef __true_type __type; +# 226 +}; +# 229 +template<> struct __is_integer< long> { +# 231 +enum { __value = 1}; +# 232 +typedef __true_type __type; +# 233 +}; +# 236 +template<> struct __is_integer< unsigned long> { +# 238 +enum { __value = 1}; +# 239 +typedef __true_type __type; +# 240 +}; +# 243 +template<> struct __is_integer< long long> { +# 245 +enum { __value = 1}; +# 246 +typedef __true_type __type; +# 247 +}; +# 250 +template<> struct __is_integer< unsigned long long> { +# 252 +enum { __value = 1}; +# 253 +typedef __true_type __type; +# 254 +}; +# 273 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template<> struct __is_integer< __int128> { enum { __value = 1}; typedef __true_type __type; }; template<> struct __is_integer< unsigned __int128> { enum { __value = 1}; typedef __true_type __type; }; +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template< class _Tp> +# 291 +struct __is_floating { +# 293 +enum { __value}; +# 294 +typedef __false_type __type; +# 295 +}; +# 299 +template<> struct __is_floating< float> { +# 301 +enum { __value = 1}; +# 302 +typedef __true_type __type; +# 303 +}; +# 306 +template<> struct __is_floating< double> { +# 308 +enum { __value = 1}; +# 309 +typedef __true_type __type; +# 310 +}; +# 313 +template<> struct __is_floating< long double> { +# 315 +enum { __value = 1}; +# 316 +typedef __true_type __type; +# 317 +}; +# 367 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template< class _Tp> +# 368 +struct __is_pointer { +# 370 +enum { __value}; +# 371 +typedef __false_type __type; +# 372 +}; +# 374 +template< class _Tp> +# 375 +struct __is_pointer< _Tp *> { +# 377 +enum { __value = 1}; +# 378 +typedef __true_type __type; +# 379 +}; +# 384 +template< class _Tp> +# 385 +struct __is_arithmetic : public __traitor< __is_integer< _Tp> , __is_floating< _Tp> > { +# 387 +}; +# 392 +template< class _Tp> +# 393 +struct __is_scalar : public __traitor< __is_arithmetic< _Tp> , __is_pointer< _Tp> > { +# 395 +}; +# 400 +template< class _Tp> +# 401 +struct __is_char { +# 403 +enum { __value}; +# 404 +typedef __false_type __type; +# 405 +}; +# 408 +template<> struct __is_char< char> { +# 410 +enum { __value = 1}; +# 411 +typedef __true_type __type; +# 412 +}; +# 416 +template<> struct __is_char< wchar_t> { +# 418 +enum { __value = 1}; +# 419 +typedef __true_type __type; +# 420 +}; +# 423 +template< class _Tp> +# 424 +struct __is_byte { +# 426 +enum { __value}; +# 427 +typedef __false_type __type; +# 428 +}; +# 431 +template<> struct __is_byte< char> { +# 433 +enum { __value = 1}; +# 434 +typedef __true_type __type; +# 435 +}; +# 438 +template<> struct __is_byte< signed char> { +# 440 +enum { __value = 1}; +# 441 +typedef __true_type __type; +# 442 +}; +# 445 +template<> struct __is_byte< unsigned char> { +# 447 +enum { __value = 1}; +# 448 +typedef __true_type __type; +# 449 +}; +# 452 +enum class byte: unsigned char; +# 455 +template<> struct __is_byte< byte> { +# 457 +enum { __value = 1}; +# 458 +typedef __true_type __type; +# 459 +}; +# 471 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template< class > struct iterator_traits; +# 474 +template< class _Tp> +# 475 +struct __is_nonvolatile_trivially_copyable { +# 477 +enum { __value = __is_trivially_copyable(_Tp)}; +# 478 +}; +# 483 +template< class _Tp> +# 484 +struct __is_nonvolatile_trivially_copyable< volatile _Tp> { +# 486 +enum { __value}; +# 487 +}; +# 490 +template< class _OutputIter, class _InputIter> +# 491 +struct __memcpyable { +# 493 +enum { __value}; +# 494 +}; +# 496 +template< class _Tp> +# 497 +struct __memcpyable< _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 499 +}; +# 501 +template< class _Tp> +# 502 +struct __memcpyable< _Tp *, const _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 504 +}; +# 511 +template< class _Iter1, class _Iter2> +# 512 +struct __memcmpable { +# 514 +enum { __value}; +# 515 +}; +# 518 +template< class _Tp> +# 519 +struct __memcmpable< _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 521 +}; +# 523 +template< class _Tp> +# 524 +struct __memcmpable< const _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 526 +}; +# 528 +template< class _Tp> +# 529 +struct __memcmpable< _Tp *, const _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 531 +}; +# 539 +template< class _Tp, bool _TreatAsBytes = __is_byte< _Tp> ::__value> +# 546 +struct __is_memcmp_ordered { +# 548 +static const bool __value = (((_Tp)(-1)) > ((_Tp)1)); +# 549 +}; +# 551 +template< class _Tp> +# 552 +struct __is_memcmp_ordered< _Tp, false> { +# 554 +static const bool __value = false; +# 555 +}; +# 558 +template< class _Tp, class _Up, bool = sizeof(_Tp) == sizeof(_Up)> +# 559 +struct __is_memcmp_ordered_with { +# 561 +static const bool __value = (__is_memcmp_ordered< _Tp> ::__value && __is_memcmp_ordered< _Up> ::__value); +# 563 +}; +# 565 +template< class _Tp, class _Up> +# 566 +struct __is_memcmp_ordered_with< _Tp, _Up, false> { +# 568 +static const bool __value = false; +# 569 +}; +# 581 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template<> struct __is_memcmp_ordered_with< byte, byte, true> { +# 582 +static constexpr inline bool __value = true; }; +# 584 +template< class _Tp, bool _SameSize> +# 585 +struct __is_memcmp_ordered_with< _Tp, byte, _SameSize> { +# 586 +static constexpr inline bool __value = false; }; +# 588 +template< class _Up, bool _SameSize> +# 589 +struct __is_memcmp_ordered_with< byte, _Up, _SameSize> { +# 590 +static constexpr inline bool __value = false; }; +# 596 +template< class _Tp> +# 597 +struct __is_move_iterator { +# 599 +enum { __value}; +# 600 +typedef __false_type __type; +# 601 +}; +# 605 +template< class _Iterator> inline _Iterator +# 608 +__miter_base(_Iterator __it) +# 609 +{ return __it; } +# 612 +} +# 613 +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 +extern "C++" { +# 39 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 44 +template< bool , class > +# 45 +struct __enable_if { +# 46 +}; +# 48 +template< class _Tp> +# 49 +struct __enable_if< true, _Tp> { +# 50 +typedef _Tp __type; }; +# 54 +template< bool _Cond, class _Iftrue, class _Iffalse> +# 55 +struct __conditional_type { +# 56 +typedef _Iftrue __type; }; +# 58 +template< class _Iftrue, class _Iffalse> +# 59 +struct __conditional_type< false, _Iftrue, _Iffalse> { +# 60 +typedef _Iffalse __type; }; +# 64 +template< class _Tp> +# 65 +struct __add_unsigned { +# 68 +private: typedef __enable_if< std::__is_integer< _Tp> ::__value, _Tp> __if_type; +# 71 +public: typedef typename __enable_if< std::__is_integer< _Tp> ::__value, _Tp> ::__type __type; +# 72 +}; +# 75 +template<> struct __add_unsigned< char> { +# 76 +typedef unsigned char __type; }; +# 79 +template<> struct __add_unsigned< signed char> { +# 80 +typedef unsigned char __type; }; +# 83 +template<> struct __add_unsigned< short> { +# 84 +typedef unsigned short __type; }; +# 87 +template<> struct __add_unsigned< int> { +# 88 +typedef unsigned __type; }; +# 91 +template<> struct __add_unsigned< long> { +# 92 +typedef unsigned long __type; }; +# 95 +template<> struct __add_unsigned< long long> { +# 96 +typedef unsigned long long __type; }; +# 100 +template<> struct __add_unsigned< bool> ; +# 103 +template<> struct __add_unsigned< wchar_t> ; +# 107 +template< class _Tp> +# 108 +struct __remove_unsigned { +# 111 +private: typedef __enable_if< std::__is_integer< _Tp> ::__value, _Tp> __if_type; +# 114 +public: typedef typename __enable_if< std::__is_integer< _Tp> ::__value, _Tp> ::__type __type; +# 115 +}; +# 118 +template<> struct __remove_unsigned< char> { +# 119 +typedef signed char __type; }; +# 122 +template<> struct __remove_unsigned< unsigned char> { +# 123 +typedef signed char __type; }; +# 126 +template<> struct __remove_unsigned< unsigned short> { +# 127 +typedef short __type; }; +# 130 +template<> struct __remove_unsigned< unsigned> { +# 131 +typedef int __type; }; +# 134 +template<> struct __remove_unsigned< unsigned long> { +# 135 +typedef long __type; }; +# 138 +template<> struct __remove_unsigned< unsigned long long> { +# 139 +typedef long long __type; }; +# 143 +template<> struct __remove_unsigned< bool> ; +# 146 +template<> struct __remove_unsigned< wchar_t> ; +# 150 +template< class _Type> constexpr bool +# 153 +__is_null_pointer(_Type *__ptr) +# 154 +{ return __ptr == 0; } +# 156 +template< class _Type> constexpr bool +# 159 +__is_null_pointer(_Type) +# 160 +{ return false; } +# 164 +constexpr bool __is_null_pointer(std::nullptr_t) +# 165 +{ return true; } +# 170 +template< class _Tp, bool = std::template __is_integer< _Tp> ::__value> +# 171 +struct __promote { +# 172 +typedef double __type; }; +# 177 +template< class _Tp> +# 178 +struct __promote< _Tp, false> { +# 179 +}; +# 182 +template<> struct __promote< long double> { +# 183 +typedef long double __type; }; +# 186 +template<> struct __promote< double> { +# 187 +typedef double __type; }; +# 190 +template<> struct __promote< float> { +# 191 +typedef float __type; }; +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 +template< class ..._Tp> using __promoted_t = __decltype(((((typename __promote< _Tp> ::__type)0) + ... ))); +# 230 +template< class _Tp, class _Up> using __promote_2 = __promote< __promoted_t< _Tp, _Up> > ; +# 233 +template< class _Tp, class _Up, class _Vp> using __promote_3 = __promote< __promoted_t< _Tp, _Up, _Vp> > ; +# 236 +template< class _Tp, class _Up, class _Vp, class _Wp> using __promote_4 = __promote< __promoted_t< _Tp, _Up, _Vp, _Wp> > ; +# 270 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 +} +# 271 +} +# 34 "/usr/include/math.h" 3 +extern "C" { +# 167 "/usr/include/math.h" 3 +typedef float float_t; +# 168 +typedef double double_t; +# 256 "/usr/include/math.h" 3 +enum { +# 257 +FP_INT_UPWARD, +# 260 +FP_INT_DOWNWARD, +# 263 +FP_INT_TOWARDZERO, +# 266 +FP_INT_TONEARESTFROMZERO, +# 269 +FP_INT_TONEAREST +# 272 +}; +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassify(double __value) noexcept(true) +# 21 + __attribute((const)); +# 24 +extern int __signbit(double __value) noexcept(true) +# 25 + __attribute((const)); +# 29 +extern int __isinf(double __value) noexcept(true) +# 30 + __attribute((const)); +# 33 +extern int __finite(double __value) noexcept(true) +# 34 + __attribute((const)); +# 37 +extern int __isnan(double __value) noexcept(true) +# 38 + __attribute((const)); +# 41 +extern int __iseqsig(double __x, double __y) noexcept(true); +# 44 +extern int __issignaling(double __value) noexcept(true) +# 45 + __attribute((const)); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern double acos(double __x) noexcept(true); extern double __acos(double __x) noexcept(true); +# 55 +extern double asin(double __x) noexcept(true); extern double __asin(double __x) noexcept(true); +# 57 +extern double atan(double __x) noexcept(true); extern double __atan(double __x) noexcept(true); +# 59 +extern double atan2(double __y, double __x) noexcept(true); extern double __atan2(double __y, double __x) noexcept(true); +# 62 +extern double cos(double __x) noexcept(true); extern double __cos(double __x) noexcept(true); +# 64 +extern double sin(double __x) noexcept(true); extern double __sin(double __x) noexcept(true); +# 66 +extern double tan(double __x) noexcept(true); extern double __tan(double __x) noexcept(true); +# 70 +extern double acospi(double __x) noexcept(true); extern double __acospi(double __x) noexcept(true); +# 72 +extern double asinpi(double __x) noexcept(true); extern double __asinpi(double __x) noexcept(true); +# 74 +extern double atanpi(double __x) noexcept(true); extern double __atanpi(double __x) noexcept(true); +# 76 +extern double atan2pi(double __y, double __x) noexcept(true); extern double __atan2pi(double __y, double __x) noexcept(true); +# 79 +extern double cospi(double __x) noexcept(true); extern double __cospi(double __x) noexcept(true); +# 81 +extern double sinpi(double __x) noexcept(true); extern double __sinpi(double __x) noexcept(true); +# 83 +extern double tanpi(double __x) noexcept(true); extern double __tanpi(double __x) noexcept(true); +# 89 +extern double cosh(double __x) noexcept(true); extern double __cosh(double __x) noexcept(true); +# 91 +extern double sinh(double __x) noexcept(true); extern double __sinh(double __x) noexcept(true); +# 93 +extern double tanh(double __x) noexcept(true); extern double __tanh(double __x) noexcept(true); +# 97 +extern void sincos(double __x, double * __sinx, double * __cosx) noexcept(true); extern void __sincos(double __x, double * __sinx, double * __cosx) noexcept(true); +# 103 +extern double acosh(double __x) noexcept(true); extern double __acosh(double __x) noexcept(true); +# 105 +extern double asinh(double __x) noexcept(true); extern double __asinh(double __x) noexcept(true); +# 107 +extern double atanh(double __x) noexcept(true); extern double __atanh(double __x) noexcept(true); +# 113 +extern double exp(double __x) noexcept(true); extern double __exp(double __x) noexcept(true); +# 116 +extern double frexp(double __x, int * __exponent) noexcept(true); extern double __frexp(double __x, int * __exponent) noexcept(true); +# 119 +extern double ldexp(double __x, int __exponent) noexcept(true); extern double __ldexp(double __x, int __exponent) noexcept(true); +# 122 +extern double log(double __x) noexcept(true); extern double __log(double __x) noexcept(true); +# 125 +extern double log10(double __x) noexcept(true); extern double __log10(double __x) noexcept(true); +# 128 +extern double modf(double __x, double * __iptr) noexcept(true); extern double __modf(double __x, double * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern double exp10(double __x) noexcept(true); extern double __exp10(double __x) noexcept(true); +# 135 +extern double exp2m1(double __x) noexcept(true); extern double __exp2m1(double __x) noexcept(true); +# 138 +extern double exp10m1(double __x) noexcept(true); extern double __exp10m1(double __x) noexcept(true); +# 141 +extern double log2p1(double __x) noexcept(true); extern double __log2p1(double __x) noexcept(true); +# 144 +extern double log10p1(double __x) noexcept(true); extern double __log10p1(double __x) noexcept(true); +# 147 +extern double logp1(double __x) noexcept(true); extern double __logp1(double __x) noexcept(true); +# 152 +extern double expm1(double __x) noexcept(true); extern double __expm1(double __x) noexcept(true); +# 155 +extern double log1p(double __x) noexcept(true); extern double __log1p(double __x) noexcept(true); +# 158 +extern double logb(double __x) noexcept(true); extern double __logb(double __x) noexcept(true); +# 163 +extern double exp2(double __x) noexcept(true); extern double __exp2(double __x) noexcept(true); +# 166 +extern double log2(double __x) noexcept(true); extern double __log2(double __x) noexcept(true); +# 173 +extern double pow(double __x, double __y) noexcept(true); extern double __pow(double __x, double __y) noexcept(true); +# 176 +extern double sqrt(double __x) noexcept(true); extern double __sqrt(double __x) noexcept(true); +# 180 +extern double hypot(double __x, double __y) noexcept(true); extern double __hypot(double __x, double __y) noexcept(true); +# 185 +extern double cbrt(double __x) noexcept(true); extern double __cbrt(double __x) noexcept(true); +# 192 +extern double ceil(double __x) noexcept(true) __attribute((const)); +# 195 +extern double fabs(double __x) noexcept(true) __attribute((const)); +# 198 +extern double floor(double __x) noexcept(true) __attribute((const)); +# 201 +extern double fmod(double __x, double __y) noexcept(true); extern double __fmod(double __x, double __y) noexcept(true); +# 216 "/usr/include/bits/mathcalls.h" 3 +extern int finite(double __value) noexcept(true) +# 217 + __attribute((const)); +# 220 +extern double drem(double __x, double __y) noexcept(true); extern double __drem(double __x, double __y) noexcept(true); +# 224 +extern double significand(double __x) noexcept(true); extern double __significand(double __x) noexcept(true); +# 231 +extern double copysign(double __x, double __y) noexcept(true) __attribute((const)); +# 236 +extern double nan(const char * __tagb) noexcept(true); extern double __nan(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern double j0(double) noexcept(true); extern double __j0(double) noexcept(true); +# 254 +extern double j1(double) noexcept(true); extern double __j1(double) noexcept(true); +# 255 +extern double jn(int, double) noexcept(true); extern double __jn(int, double) noexcept(true); +# 256 +extern double y0(double) noexcept(true); extern double __y0(double) noexcept(true); +# 257 +extern double y1(double) noexcept(true); extern double __y1(double) noexcept(true); +# 258 +extern double yn(int, double) noexcept(true); extern double __yn(int, double) noexcept(true); +# 264 +extern double erf(double) noexcept(true); extern double __erf(double) noexcept(true); +# 265 +extern double erfc(double) noexcept(true); extern double __erfc(double) noexcept(true); +# 266 +extern double lgamma(double) noexcept(true); extern double __lgamma(double) noexcept(true); +# 271 +extern double tgamma(double) noexcept(true); extern double __tgamma(double) noexcept(true); +# 277 +extern double gamma(double) noexcept(true); extern double __gamma(double) noexcept(true); +# 285 +extern double lgamma_r(double, int * __signgamp) noexcept(true); extern double __lgamma_r(double, int * __signgamp) noexcept(true); +# 292 +extern double rint(double __x) noexcept(true); extern double __rint(double __x) noexcept(true); +# 295 +extern double nextafter(double __x, double __y) noexcept(true); extern double __nextafter(double __x, double __y) noexcept(true); +# 297 +extern double nexttoward(double __x, long double __y) noexcept(true); extern double __nexttoward(double __x, long double __y) noexcept(true); +# 302 +extern double nextdown(double __x) noexcept(true); extern double __nextdown(double __x) noexcept(true); +# 304 +extern double nextup(double __x) noexcept(true); extern double __nextup(double __x) noexcept(true); +# 308 +extern double remainder(double __x, double __y) noexcept(true); extern double __remainder(double __x, double __y) noexcept(true); +# 312 +extern double scalbn(double __x, int __n) noexcept(true); extern double __scalbn(double __x, int __n) noexcept(true); +# 316 +extern int ilogb(double __x) noexcept(true); extern int __ilogb(double __x) noexcept(true); +# 321 +extern long llogb(double __x) noexcept(true); extern long __llogb(double __x) noexcept(true); +# 326 +extern double scalbln(double __x, long __n) noexcept(true); extern double __scalbln(double __x, long __n) noexcept(true); +# 330 +extern double nearbyint(double __x) noexcept(true); extern double __nearbyint(double __x) noexcept(true); +# 334 +extern double round(double __x) noexcept(true) __attribute((const)); +# 338 +extern double trunc(double __x) noexcept(true) __attribute((const)); +# 343 +extern double remquo(double __x, double __y, int * __quo) noexcept(true); extern double __remquo(double __x, double __y, int * __quo) noexcept(true); +# 350 +extern long lrint(double __x) noexcept(true); extern long __lrint(double __x) noexcept(true); +# 352 +__extension__ extern long long llrint(double __x) noexcept(true); extern long long __llrint(double __x) noexcept(true); +# 356 +extern long lround(double __x) noexcept(true); extern long __lround(double __x) noexcept(true); +# 358 +__extension__ extern long long llround(double __x) noexcept(true); extern long long __llround(double __x) noexcept(true); +# 362 +extern double fdim(double __x, double __y) noexcept(true); extern double __fdim(double __x, double __y) noexcept(true); +# 366 +extern double fmax(double __x, double __y) noexcept(true) __attribute((const)); +# 369 +extern double fmin(double __x, double __y) noexcept(true) __attribute((const)); +# 373 +extern double fma(double __x, double __y, double __z) noexcept(true); extern double __fma(double __x, double __y, double __z) noexcept(true); +# 378 +extern double roundeven(double __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfp(double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfp(double __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfp(double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfp(double __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpx(double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpx(double __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpx(double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpx(double __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalize(double * __cx, const double * __x) noexcept(true); +# 410 +extern double fmaxmag(double __x, double __y) noexcept(true) __attribute((const)); +# 413 +extern double fminmag(double __x, double __y) noexcept(true) __attribute((const)); +# 418 +extern double fmaximum(double __x, double __y) noexcept(true) __attribute((const)); +# 421 +extern double fminimum(double __x, double __y) noexcept(true) __attribute((const)); +# 424 +extern double fmaximum_num(double __x, double __y) noexcept(true) __attribute((const)); +# 427 +extern double fminimum_num(double __x, double __y) noexcept(true) __attribute((const)); +# 430 +extern double fmaximum_mag(double __x, double __y) noexcept(true) __attribute((const)); +# 433 +extern double fminimum_mag(double __x, double __y) noexcept(true) __attribute((const)); +# 436 +extern double fmaximum_mag_num(double __x, double __y) noexcept(true) __attribute((const)); +# 439 +extern double fminimum_mag_num(double __x, double __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorder(const double * __x, const double * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermag(const double * __x, const double * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern double getpayload(const double * __x) noexcept(true); extern double __getpayload(const double * __x) noexcept(true); +# 457 +extern int setpayload(double * __x, double __payload) noexcept(true); +# 460 +extern int setpayloadsig(double * __x, double __payload) noexcept(true); +# 468 +extern double scalb(double __x, double __n) noexcept(true); extern double __scalb(double __x, double __n) noexcept(true); +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassifyf(float __value) noexcept(true) +# 21 + __attribute((const)); +# 24 +extern int __signbitf(float __value) noexcept(true) +# 25 + __attribute((const)); +# 29 +extern int __isinff(float __value) noexcept(true) +# 30 + __attribute((const)); +# 33 +extern int __finitef(float __value) noexcept(true) +# 34 + __attribute((const)); +# 37 +extern int __isnanf(float __value) noexcept(true) +# 38 + __attribute((const)); +# 41 +extern int __iseqsigf(float __x, float __y) noexcept(true); +# 44 +extern int __issignalingf(float __value) noexcept(true) +# 45 + __attribute((const)); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern float acosf(float __x) noexcept(true); extern float __acosf(float __x) noexcept(true); +# 55 +extern float asinf(float __x) noexcept(true); extern float __asinf(float __x) noexcept(true); +# 57 +extern float atanf(float __x) noexcept(true); extern float __atanf(float __x) noexcept(true); +# 59 +extern float atan2f(float __y, float __x) noexcept(true); extern float __atan2f(float __y, float __x) noexcept(true); +# 62 +extern float cosf(float __x) noexcept(true); +# 64 +extern float sinf(float __x) noexcept(true); +# 66 +extern float tanf(float __x) noexcept(true); +# 70 +extern float acospif(float __x) noexcept(true); extern float __acospif(float __x) noexcept(true); +# 72 +extern float asinpif(float __x) noexcept(true); extern float __asinpif(float __x) noexcept(true); +# 74 +extern float atanpif(float __x) noexcept(true); extern float __atanpif(float __x) noexcept(true); +# 76 +extern float atan2pif(float __y, float __x) noexcept(true); extern float __atan2pif(float __y, float __x) noexcept(true); +# 79 +extern float cospif(float __x) noexcept(true); extern float __cospif(float __x) noexcept(true); +# 81 +extern float sinpif(float __x) noexcept(true); extern float __sinpif(float __x) noexcept(true); +# 83 +extern float tanpif(float __x) noexcept(true); extern float __tanpif(float __x) noexcept(true); +# 89 +extern float coshf(float __x) noexcept(true); extern float __coshf(float __x) noexcept(true); +# 91 +extern float sinhf(float __x) noexcept(true); extern float __sinhf(float __x) noexcept(true); +# 93 +extern float tanhf(float __x) noexcept(true); +# 97 +extern void sincosf(float __x, float * __sinx, float * __cosx) noexcept(true); +# 103 +extern float acoshf(float __x) noexcept(true); extern float __acoshf(float __x) noexcept(true); +# 105 +extern float asinhf(float __x) noexcept(true); extern float __asinhf(float __x) noexcept(true); +# 107 +extern float atanhf(float __x) noexcept(true); extern float __atanhf(float __x) noexcept(true); +# 113 +extern float expf(float __x) noexcept(true); +# 116 +extern float frexpf(float __x, int * __exponent) noexcept(true); extern float __frexpf(float __x, int * __exponent) noexcept(true); +# 119 +extern float ldexpf(float __x, int __exponent) noexcept(true); extern float __ldexpf(float __x, int __exponent) noexcept(true); +# 122 +extern float logf(float __x) noexcept(true); +# 125 +extern float log10f(float __x) noexcept(true); +# 128 +extern float modff(float __x, float * __iptr) noexcept(true); extern float __modff(float __x, float * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern float exp10f(float __x) noexcept(true); +# 135 +extern float exp2m1f(float __x) noexcept(true); extern float __exp2m1f(float __x) noexcept(true); +# 138 +extern float exp10m1f(float __x) noexcept(true); extern float __exp10m1f(float __x) noexcept(true); +# 141 +extern float log2p1f(float __x) noexcept(true); extern float __log2p1f(float __x) noexcept(true); +# 144 +extern float log10p1f(float __x) noexcept(true); extern float __log10p1f(float __x) noexcept(true); +# 147 +extern float logp1f(float __x) noexcept(true); extern float __logp1f(float __x) noexcept(true); +# 152 +extern float expm1f(float __x) noexcept(true); extern float __expm1f(float __x) noexcept(true); +# 155 +extern float log1pf(float __x) noexcept(true); extern float __log1pf(float __x) noexcept(true); +# 158 +extern float logbf(float __x) noexcept(true); extern float __logbf(float __x) noexcept(true); +# 163 +extern float exp2f(float __x) noexcept(true); extern float __exp2f(float __x) noexcept(true); +# 166 +extern float log2f(float __x) noexcept(true); +# 173 +extern float powf(float __x, float __y) noexcept(true); +# 176 +extern float sqrtf(float __x) noexcept(true); extern float __sqrtf(float __x) noexcept(true); +# 180 +extern float hypotf(float __x, float __y) noexcept(true); extern float __hypotf(float __x, float __y) noexcept(true); +# 185 +extern float cbrtf(float __x) noexcept(true); extern float __cbrtf(float __x) noexcept(true); +# 192 +extern float ceilf(float __x) noexcept(true) __attribute((const)); +# 195 +extern float fabsf(float __x) noexcept(true) __attribute((const)); +# 198 +extern float floorf(float __x) noexcept(true) __attribute((const)); +# 201 +extern float fmodf(float __x, float __y) noexcept(true); extern float __fmodf(float __x, float __y) noexcept(true); +# 210 "/usr/include/bits/mathcalls.h" 3 +extern int isinff(float __value) noexcept(true) +# 211 + __attribute((const)); +# 216 +extern int finitef(float __value) noexcept(true) +# 217 + __attribute((const)); +# 220 +extern float dremf(float __x, float __y) noexcept(true); extern float __dremf(float __x, float __y) noexcept(true); +# 224 +extern float significandf(float __x) noexcept(true); extern float __significandf(float __x) noexcept(true); +# 231 +extern float copysignf(float __x, float __y) noexcept(true) __attribute((const)); +# 236 +extern float nanf(const char * __tagb) noexcept(true); extern float __nanf(const char * __tagb) noexcept(true); +# 246 "/usr/include/bits/mathcalls.h" 3 +extern int isnanf(float __value) noexcept(true) +# 247 + __attribute((const)); +# 253 +extern float j0f(float) noexcept(true); extern float __j0f(float) noexcept(true); +# 254 +extern float j1f(float) noexcept(true); extern float __j1f(float) noexcept(true); +# 255 +extern float jnf(int, float) noexcept(true); extern float __jnf(int, float) noexcept(true); +# 256 +extern float y0f(float) noexcept(true); extern float __y0f(float) noexcept(true); +# 257 +extern float y1f(float) noexcept(true); extern float __y1f(float) noexcept(true); +# 258 +extern float ynf(int, float) noexcept(true); extern float __ynf(int, float) noexcept(true); +# 264 +extern float erff(float) noexcept(true); extern float __erff(float) noexcept(true); +# 265 +extern float erfcf(float) noexcept(true); extern float __erfcf(float) noexcept(true); +# 266 +extern float lgammaf(float) noexcept(true); extern float __lgammaf(float) noexcept(true); +# 271 +extern float tgammaf(float) noexcept(true); extern float __tgammaf(float) noexcept(true); +# 277 +extern float gammaf(float) noexcept(true); extern float __gammaf(float) noexcept(true); +# 285 +extern float lgammaf_r(float, int * __signgamp) noexcept(true); extern float __lgammaf_r(float, int * __signgamp) noexcept(true); +# 292 +extern float rintf(float __x) noexcept(true); extern float __rintf(float __x) noexcept(true); +# 295 +extern float nextafterf(float __x, float __y) noexcept(true); extern float __nextafterf(float __x, float __y) noexcept(true); +# 297 +extern float nexttowardf(float __x, long double __y) noexcept(true); extern float __nexttowardf(float __x, long double __y) noexcept(true); +# 302 +extern float nextdownf(float __x) noexcept(true); extern float __nextdownf(float __x) noexcept(true); +# 304 +extern float nextupf(float __x) noexcept(true); extern float __nextupf(float __x) noexcept(true); +# 308 +extern float remainderf(float __x, float __y) noexcept(true); extern float __remainderf(float __x, float __y) noexcept(true); +# 312 +extern float scalbnf(float __x, int __n) noexcept(true); extern float __scalbnf(float __x, int __n) noexcept(true); +# 316 +extern int ilogbf(float __x) noexcept(true); extern int __ilogbf(float __x) noexcept(true); +# 321 +extern long llogbf(float __x) noexcept(true); extern long __llogbf(float __x) noexcept(true); +# 326 +extern float scalblnf(float __x, long __n) noexcept(true); extern float __scalblnf(float __x, long __n) noexcept(true); +# 330 +extern float nearbyintf(float __x) noexcept(true); extern float __nearbyintf(float __x) noexcept(true); +# 334 +extern float roundf(float __x) noexcept(true) __attribute((const)); +# 338 +extern float truncf(float __x) noexcept(true) __attribute((const)); +# 343 +extern float remquof(float __x, float __y, int * __quo) noexcept(true); extern float __remquof(float __x, float __y, int * __quo) noexcept(true); +# 350 +extern long lrintf(float __x) noexcept(true); extern long __lrintf(float __x) noexcept(true); +# 352 +__extension__ extern long long llrintf(float __x) noexcept(true); extern long long __llrintf(float __x) noexcept(true); +# 356 +extern long lroundf(float __x) noexcept(true); extern long __lroundf(float __x) noexcept(true); +# 358 +__extension__ extern long long llroundf(float __x) noexcept(true); extern long long __llroundf(float __x) noexcept(true); +# 362 +extern float fdimf(float __x, float __y) noexcept(true); extern float __fdimf(float __x, float __y) noexcept(true); +# 366 +extern float fmaxf(float __x, float __y) noexcept(true) __attribute((const)); +# 369 +extern float fminf(float __x, float __y) noexcept(true) __attribute((const)); +# 373 +extern float fmaf(float __x, float __y, float __z) noexcept(true); extern float __fmaf(float __x, float __y, float __z) noexcept(true); +# 378 +extern float roundevenf(float __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf(float __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf(float __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf(float __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf(float __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf(float __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf(float __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf(float __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf(float __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef(float * __cx, const float * __x) noexcept(true); +# 410 +extern float fmaxmagf(float __x, float __y) noexcept(true) __attribute((const)); +# 413 +extern float fminmagf(float __x, float __y) noexcept(true) __attribute((const)); +# 418 +extern float fmaximumf(float __x, float __y) noexcept(true) __attribute((const)); +# 421 +extern float fminimumf(float __x, float __y) noexcept(true) __attribute((const)); +# 424 +extern float fmaximum_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 427 +extern float fminimum_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 430 +extern float fmaximum_magf(float __x, float __y) noexcept(true) __attribute((const)); +# 433 +extern float fminimum_magf(float __x, float __y) noexcept(true) __attribute((const)); +# 436 +extern float fmaximum_mag_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 439 +extern float fminimum_mag_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf(const float * __x, const float * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf(const float * __x, const float * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern float getpayloadf(const float * __x) noexcept(true); extern float __getpayloadf(const float * __x) noexcept(true); +# 457 +extern int setpayloadf(float * __x, float __payload) noexcept(true); +# 460 +extern int setpayloadsigf(float * __x, float __payload) noexcept(true); +# 468 +extern float scalbf(float __x, float __n) noexcept(true); extern float __scalbf(float __x, float __n) noexcept(true); +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassifyl(long double __value) noexcept(true) +# 21 + __attribute((const)); +# 24 +extern int __signbitl(long double __value) noexcept(true) +# 25 + __attribute((const)); +# 29 +extern int __isinfl(long double __value) noexcept(true) +# 30 + __attribute((const)); +# 33 +extern int __finitel(long double __value) noexcept(true) +# 34 + __attribute((const)); +# 37 +extern int __isnanl(long double __value) noexcept(true) +# 38 + __attribute((const)); +# 41 +extern int __iseqsigl(long double __x, long double __y) noexcept(true); +# 44 +extern int __issignalingl(long double __value) noexcept(true) +# 45 + __attribute((const)); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern long double acosl(long double __x) noexcept(true); extern long double __acosl(long double __x) noexcept(true); +# 55 +extern long double asinl(long double __x) noexcept(true); extern long double __asinl(long double __x) noexcept(true); +# 57 +extern long double atanl(long double __x) noexcept(true); extern long double __atanl(long double __x) noexcept(true); +# 59 +extern long double atan2l(long double __y, long double __x) noexcept(true); extern long double __atan2l(long double __y, long double __x) noexcept(true); +# 62 +extern long double cosl(long double __x) noexcept(true); extern long double __cosl(long double __x) noexcept(true); +# 64 +extern long double sinl(long double __x) noexcept(true); extern long double __sinl(long double __x) noexcept(true); +# 66 +extern long double tanl(long double __x) noexcept(true); extern long double __tanl(long double __x) noexcept(true); +# 70 +extern long double acospil(long double __x) noexcept(true); extern long double __acospil(long double __x) noexcept(true); +# 72 +extern long double asinpil(long double __x) noexcept(true); extern long double __asinpil(long double __x) noexcept(true); +# 74 +extern long double atanpil(long double __x) noexcept(true); extern long double __atanpil(long double __x) noexcept(true); +# 76 +extern long double atan2pil(long double __y, long double __x) noexcept(true); extern long double __atan2pil(long double __y, long double __x) noexcept(true); +# 79 +extern long double cospil(long double __x) noexcept(true); extern long double __cospil(long double __x) noexcept(true); +# 81 +extern long double sinpil(long double __x) noexcept(true); extern long double __sinpil(long double __x) noexcept(true); +# 83 +extern long double tanpil(long double __x) noexcept(true); extern long double __tanpil(long double __x) noexcept(true); +# 89 +extern long double coshl(long double __x) noexcept(true); extern long double __coshl(long double __x) noexcept(true); +# 91 +extern long double sinhl(long double __x) noexcept(true); extern long double __sinhl(long double __x) noexcept(true); +# 93 +extern long double tanhl(long double __x) noexcept(true); extern long double __tanhl(long double __x) noexcept(true); +# 97 +extern void sincosl(long double __x, long double * __sinx, long double * __cosx) noexcept(true); extern void __sincosl(long double __x, long double * __sinx, long double * __cosx) noexcept(true); +# 103 +extern long double acoshl(long double __x) noexcept(true); extern long double __acoshl(long double __x) noexcept(true); +# 105 +extern long double asinhl(long double __x) noexcept(true); extern long double __asinhl(long double __x) noexcept(true); +# 107 +extern long double atanhl(long double __x) noexcept(true); extern long double __atanhl(long double __x) noexcept(true); +# 113 +extern long double expl(long double __x) noexcept(true); extern long double __expl(long double __x) noexcept(true); +# 116 +extern long double frexpl(long double __x, int * __exponent) noexcept(true); extern long double __frexpl(long double __x, int * __exponent) noexcept(true); +# 119 +extern long double ldexpl(long double __x, int __exponent) noexcept(true); extern long double __ldexpl(long double __x, int __exponent) noexcept(true); +# 122 +extern long double logl(long double __x) noexcept(true); extern long double __logl(long double __x) noexcept(true); +# 125 +extern long double log10l(long double __x) noexcept(true); extern long double __log10l(long double __x) noexcept(true); +# 128 +extern long double modfl(long double __x, long double * __iptr) noexcept(true); extern long double __modfl(long double __x, long double * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern long double exp10l(long double __x) noexcept(true); extern long double __exp10l(long double __x) noexcept(true); +# 135 +extern long double exp2m1l(long double __x) noexcept(true); extern long double __exp2m1l(long double __x) noexcept(true); +# 138 +extern long double exp10m1l(long double __x) noexcept(true); extern long double __exp10m1l(long double __x) noexcept(true); +# 141 +extern long double log2p1l(long double __x) noexcept(true); extern long double __log2p1l(long double __x) noexcept(true); +# 144 +extern long double log10p1l(long double __x) noexcept(true); extern long double __log10p1l(long double __x) noexcept(true); +# 147 +extern long double logp1l(long double __x) noexcept(true); extern long double __logp1l(long double __x) noexcept(true); +# 152 +extern long double expm1l(long double __x) noexcept(true); extern long double __expm1l(long double __x) noexcept(true); +# 155 +extern long double log1pl(long double __x) noexcept(true); extern long double __log1pl(long double __x) noexcept(true); +# 158 +extern long double logbl(long double __x) noexcept(true); extern long double __logbl(long double __x) noexcept(true); +# 163 +extern long double exp2l(long double __x) noexcept(true); extern long double __exp2l(long double __x) noexcept(true); +# 166 +extern long double log2l(long double __x) noexcept(true); extern long double __log2l(long double __x) noexcept(true); +# 173 +extern long double powl(long double __x, long double __y) noexcept(true); extern long double __powl(long double __x, long double __y) noexcept(true); +# 176 +extern long double sqrtl(long double __x) noexcept(true); extern long double __sqrtl(long double __x) noexcept(true); +# 180 +extern long double hypotl(long double __x, long double __y) noexcept(true); extern long double __hypotl(long double __x, long double __y) noexcept(true); +# 185 +extern long double cbrtl(long double __x) noexcept(true); extern long double __cbrtl(long double __x) noexcept(true); +# 192 +extern long double ceill(long double __x) noexcept(true) __attribute((const)); +# 195 +extern long double fabsl(long double __x) noexcept(true) __attribute((const)); +# 198 +extern long double floorl(long double __x) noexcept(true) __attribute((const)); +# 201 +extern long double fmodl(long double __x, long double __y) noexcept(true); extern long double __fmodl(long double __x, long double __y) noexcept(true); +# 210 "/usr/include/bits/mathcalls.h" 3 +extern int isinfl(long double __value) noexcept(true) +# 211 + __attribute((const)); +# 216 +extern int finitel(long double __value) noexcept(true) +# 217 + __attribute((const)); +# 220 +extern long double dreml(long double __x, long double __y) noexcept(true); extern long double __dreml(long double __x, long double __y) noexcept(true); +# 224 +extern long double significandl(long double __x) noexcept(true); extern long double __significandl(long double __x) noexcept(true); +# 231 +extern long double copysignl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 236 +extern long double nanl(const char * __tagb) noexcept(true); extern long double __nanl(const char * __tagb) noexcept(true); +# 246 "/usr/include/bits/mathcalls.h" 3 +extern int isnanl(long double __value) noexcept(true) +# 247 + __attribute((const)); +# 253 +extern long double j0l(long double) noexcept(true); extern long double __j0l(long double) noexcept(true); +# 254 +extern long double j1l(long double) noexcept(true); extern long double __j1l(long double) noexcept(true); +# 255 +extern long double jnl(int, long double) noexcept(true); extern long double __jnl(int, long double) noexcept(true); +# 256 +extern long double y0l(long double) noexcept(true); extern long double __y0l(long double) noexcept(true); +# 257 +extern long double y1l(long double) noexcept(true); extern long double __y1l(long double) noexcept(true); +# 258 +extern long double ynl(int, long double) noexcept(true); extern long double __ynl(int, long double) noexcept(true); +# 264 +extern long double erfl(long double) noexcept(true); extern long double __erfl(long double) noexcept(true); +# 265 +extern long double erfcl(long double) noexcept(true); extern long double __erfcl(long double) noexcept(true); +# 266 +extern long double lgammal(long double) noexcept(true); extern long double __lgammal(long double) noexcept(true); +# 271 +extern long double tgammal(long double) noexcept(true); extern long double __tgammal(long double) noexcept(true); +# 277 +extern long double gammal(long double) noexcept(true); extern long double __gammal(long double) noexcept(true); +# 285 +extern long double lgammal_r(long double, int * __signgamp) noexcept(true); extern long double __lgammal_r(long double, int * __signgamp) noexcept(true); +# 292 +extern long double rintl(long double __x) noexcept(true); extern long double __rintl(long double __x) noexcept(true); +# 295 +extern long double nextafterl(long double __x, long double __y) noexcept(true); extern long double __nextafterl(long double __x, long double __y) noexcept(true); +# 297 +extern long double nexttowardl(long double __x, long double __y) noexcept(true); extern long double __nexttowardl(long double __x, long double __y) noexcept(true); +# 302 +extern long double nextdownl(long double __x) noexcept(true); extern long double __nextdownl(long double __x) noexcept(true); +# 304 +extern long double nextupl(long double __x) noexcept(true); extern long double __nextupl(long double __x) noexcept(true); +# 308 +extern long double remainderl(long double __x, long double __y) noexcept(true); extern long double __remainderl(long double __x, long double __y) noexcept(true); +# 312 +extern long double scalbnl(long double __x, int __n) noexcept(true); extern long double __scalbnl(long double __x, int __n) noexcept(true); +# 316 +extern int ilogbl(long double __x) noexcept(true); extern int __ilogbl(long double __x) noexcept(true); +# 321 +extern long llogbl(long double __x) noexcept(true); extern long __llogbl(long double __x) noexcept(true); +# 326 +extern long double scalblnl(long double __x, long __n) noexcept(true); extern long double __scalblnl(long double __x, long __n) noexcept(true); +# 330 +extern long double nearbyintl(long double __x) noexcept(true); extern long double __nearbyintl(long double __x) noexcept(true); +# 334 +extern long double roundl(long double __x) noexcept(true) __attribute((const)); +# 338 +extern long double truncl(long double __x) noexcept(true) __attribute((const)); +# 343 +extern long double remquol(long double __x, long double __y, int * __quo) noexcept(true); extern long double __remquol(long double __x, long double __y, int * __quo) noexcept(true); +# 350 +extern long lrintl(long double __x) noexcept(true); extern long __lrintl(long double __x) noexcept(true); +# 352 +__extension__ extern long long llrintl(long double __x) noexcept(true); extern long long __llrintl(long double __x) noexcept(true); +# 356 +extern long lroundl(long double __x) noexcept(true); extern long __lroundl(long double __x) noexcept(true); +# 358 +__extension__ extern long long llroundl(long double __x) noexcept(true); extern long long __llroundl(long double __x) noexcept(true); +# 362 +extern long double fdiml(long double __x, long double __y) noexcept(true); extern long double __fdiml(long double __x, long double __y) noexcept(true); +# 366 +extern long double fmaxl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 369 +extern long double fminl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 373 +extern long double fmal(long double __x, long double __y, long double __z) noexcept(true); extern long double __fmal(long double __x, long double __y, long double __z) noexcept(true); +# 378 +extern long double roundevenl(long double __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpl(long double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpl(long double __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpl(long double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpl(long double __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxl(long double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxl(long double __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxl(long double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxl(long double __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizel(long double * __cx, const long double * __x) noexcept(true); +# 410 +extern long double fmaxmagl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 413 +extern long double fminmagl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 418 +extern long double fmaximuml(long double __x, long double __y) noexcept(true) __attribute((const)); +# 421 +extern long double fminimuml(long double __x, long double __y) noexcept(true) __attribute((const)); +# 424 +extern long double fmaximum_numl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 427 +extern long double fminimum_numl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 430 +extern long double fmaximum_magl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 433 +extern long double fminimum_magl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 436 +extern long double fmaximum_mag_numl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 439 +extern long double fminimum_mag_numl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderl(const long double * __x, const long double * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagl(const long double * __x, const long double * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern long double getpayloadl(const long double * __x) noexcept(true); extern long double __getpayloadl(const long double * __x) noexcept(true); +# 457 +extern int setpayloadl(long double * __x, long double __payload) noexcept(true); +# 460 +extern int setpayloadsigl(long double * __x, long double __payload) noexcept(true); +# 468 +extern long double scalbl(long double __x, long double __n) noexcept(true); extern long double __scalbl(long double __x, long double __n) noexcept(true); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float32 acosf32(_Float32 __x) noexcept(true); extern _Float32 __acosf32(_Float32 __x) noexcept(true); +# 55 +extern _Float32 asinf32(_Float32 __x) noexcept(true); extern _Float32 __asinf32(_Float32 __x) noexcept(true); +# 57 +extern _Float32 atanf32(_Float32 __x) noexcept(true); extern _Float32 __atanf32(_Float32 __x) noexcept(true); +# 59 +extern _Float32 atan2f32(_Float32 __y, _Float32 __x) noexcept(true); extern _Float32 __atan2f32(_Float32 __y, _Float32 __x) noexcept(true); +# 62 +extern _Float32 cosf32(_Float32 __x) noexcept(true); extern _Float32 __cosf32(_Float32 __x) noexcept(true); +# 64 +extern _Float32 sinf32(_Float32 __x) noexcept(true); extern _Float32 __sinf32(_Float32 __x) noexcept(true); +# 66 +extern _Float32 tanf32(_Float32 __x) noexcept(true); extern _Float32 __tanf32(_Float32 __x) noexcept(true); +# 70 +extern _Float32 acospif32(_Float32 __x) noexcept(true); extern _Float32 __acospif32(_Float32 __x) noexcept(true); +# 72 +extern _Float32 asinpif32(_Float32 __x) noexcept(true); extern _Float32 __asinpif32(_Float32 __x) noexcept(true); +# 74 +extern _Float32 atanpif32(_Float32 __x) noexcept(true); extern _Float32 __atanpif32(_Float32 __x) noexcept(true); +# 76 +extern _Float32 atan2pif32(_Float32 __y, _Float32 __x) noexcept(true); extern _Float32 __atan2pif32(_Float32 __y, _Float32 __x) noexcept(true); +# 79 +extern _Float32 cospif32(_Float32 __x) noexcept(true); extern _Float32 __cospif32(_Float32 __x) noexcept(true); +# 81 +extern _Float32 sinpif32(_Float32 __x) noexcept(true); extern _Float32 __sinpif32(_Float32 __x) noexcept(true); +# 83 +extern _Float32 tanpif32(_Float32 __x) noexcept(true); extern _Float32 __tanpif32(_Float32 __x) noexcept(true); +# 89 +extern _Float32 coshf32(_Float32 __x) noexcept(true); extern _Float32 __coshf32(_Float32 __x) noexcept(true); +# 91 +extern _Float32 sinhf32(_Float32 __x) noexcept(true); extern _Float32 __sinhf32(_Float32 __x) noexcept(true); +# 93 +extern _Float32 tanhf32(_Float32 __x) noexcept(true); extern _Float32 __tanhf32(_Float32 __x) noexcept(true); +# 97 +extern void sincosf32(_Float32 __x, _Float32 * __sinx, _Float32 * __cosx) noexcept(true); extern void __sincosf32(_Float32 __x, _Float32 * __sinx, _Float32 * __cosx) noexcept(true); +# 103 +extern _Float32 acoshf32(_Float32 __x) noexcept(true); extern _Float32 __acoshf32(_Float32 __x) noexcept(true); +# 105 +extern _Float32 asinhf32(_Float32 __x) noexcept(true); extern _Float32 __asinhf32(_Float32 __x) noexcept(true); +# 107 +extern _Float32 atanhf32(_Float32 __x) noexcept(true); extern _Float32 __atanhf32(_Float32 __x) noexcept(true); +# 113 +extern _Float32 expf32(_Float32 __x) noexcept(true); extern _Float32 __expf32(_Float32 __x) noexcept(true); +# 116 +extern _Float32 frexpf32(_Float32 __x, int * __exponent) noexcept(true); extern _Float32 __frexpf32(_Float32 __x, int * __exponent) noexcept(true); +# 119 +extern _Float32 ldexpf32(_Float32 __x, int __exponent) noexcept(true); extern _Float32 __ldexpf32(_Float32 __x, int __exponent) noexcept(true); +# 122 +extern _Float32 logf32(_Float32 __x) noexcept(true); extern _Float32 __logf32(_Float32 __x) noexcept(true); +# 125 +extern _Float32 log10f32(_Float32 __x) noexcept(true); extern _Float32 __log10f32(_Float32 __x) noexcept(true); +# 128 +extern _Float32 modff32(_Float32 __x, _Float32 * __iptr) noexcept(true); extern _Float32 __modff32(_Float32 __x, _Float32 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float32 exp10f32(_Float32 __x) noexcept(true); extern _Float32 __exp10f32(_Float32 __x) noexcept(true); +# 135 +extern _Float32 exp2m1f32(_Float32 __x) noexcept(true); extern _Float32 __exp2m1f32(_Float32 __x) noexcept(true); +# 138 +extern _Float32 exp10m1f32(_Float32 __x) noexcept(true); extern _Float32 __exp10m1f32(_Float32 __x) noexcept(true); +# 141 +extern _Float32 log2p1f32(_Float32 __x) noexcept(true); extern _Float32 __log2p1f32(_Float32 __x) noexcept(true); +# 144 +extern _Float32 log10p1f32(_Float32 __x) noexcept(true); extern _Float32 __log10p1f32(_Float32 __x) noexcept(true); +# 147 +extern _Float32 logp1f32(_Float32 __x) noexcept(true); extern _Float32 __logp1f32(_Float32 __x) noexcept(true); +# 152 +extern _Float32 expm1f32(_Float32 __x) noexcept(true); extern _Float32 __expm1f32(_Float32 __x) noexcept(true); +# 155 +extern _Float32 log1pf32(_Float32 __x) noexcept(true); extern _Float32 __log1pf32(_Float32 __x) noexcept(true); +# 158 +extern _Float32 logbf32(_Float32 __x) noexcept(true); extern _Float32 __logbf32(_Float32 __x) noexcept(true); +# 163 +extern _Float32 exp2f32(_Float32 __x) noexcept(true); extern _Float32 __exp2f32(_Float32 __x) noexcept(true); +# 166 +extern _Float32 log2f32(_Float32 __x) noexcept(true); extern _Float32 __log2f32(_Float32 __x) noexcept(true); +# 173 +extern _Float32 powf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __powf32(_Float32 __x, _Float32 __y) noexcept(true); +# 176 +extern _Float32 sqrtf32(_Float32 __x) noexcept(true); extern _Float32 __sqrtf32(_Float32 __x) noexcept(true); +# 180 +extern _Float32 hypotf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __hypotf32(_Float32 __x, _Float32 __y) noexcept(true); +# 185 +extern _Float32 cbrtf32(_Float32 __x) noexcept(true); extern _Float32 __cbrtf32(_Float32 __x) noexcept(true); +# 192 +extern _Float32 ceilf32(_Float32 __x) noexcept(true) __attribute((const)); +# 195 +extern _Float32 fabsf32(_Float32 __x) noexcept(true) __attribute((const)); +# 198 +extern _Float32 floorf32(_Float32 __x) noexcept(true) __attribute((const)); +# 201 +extern _Float32 fmodf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __fmodf32(_Float32 __x, _Float32 __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float32 copysignf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 236 +extern _Float32 nanf32(const char * __tagb) noexcept(true); extern _Float32 __nanf32(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float32 j0f32(_Float32) noexcept(true); extern _Float32 __j0f32(_Float32) noexcept(true); +# 254 +extern _Float32 j1f32(_Float32) noexcept(true); extern _Float32 __j1f32(_Float32) noexcept(true); +# 255 +extern _Float32 jnf32(int, _Float32) noexcept(true); extern _Float32 __jnf32(int, _Float32) noexcept(true); +# 256 +extern _Float32 y0f32(_Float32) noexcept(true); extern _Float32 __y0f32(_Float32) noexcept(true); +# 257 +extern _Float32 y1f32(_Float32) noexcept(true); extern _Float32 __y1f32(_Float32) noexcept(true); +# 258 +extern _Float32 ynf32(int, _Float32) noexcept(true); extern _Float32 __ynf32(int, _Float32) noexcept(true); +# 264 +extern _Float32 erff32(_Float32) noexcept(true); extern _Float32 __erff32(_Float32) noexcept(true); +# 265 +extern _Float32 erfcf32(_Float32) noexcept(true); extern _Float32 __erfcf32(_Float32) noexcept(true); +# 266 +extern _Float32 lgammaf32(_Float32) noexcept(true); extern _Float32 __lgammaf32(_Float32) noexcept(true); +# 271 +extern _Float32 tgammaf32(_Float32) noexcept(true); extern _Float32 __tgammaf32(_Float32) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float32 lgammaf32_r(_Float32, int * __signgamp) noexcept(true); extern _Float32 __lgammaf32_r(_Float32, int * __signgamp) noexcept(true); +# 292 +extern _Float32 rintf32(_Float32 __x) noexcept(true); extern _Float32 __rintf32(_Float32 __x) noexcept(true); +# 295 +extern _Float32 nextafterf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __nextafterf32(_Float32 __x, _Float32 __y) noexcept(true); +# 302 +extern _Float32 nextdownf32(_Float32 __x) noexcept(true); extern _Float32 __nextdownf32(_Float32 __x) noexcept(true); +# 304 +extern _Float32 nextupf32(_Float32 __x) noexcept(true); extern _Float32 __nextupf32(_Float32 __x) noexcept(true); +# 308 +extern _Float32 remainderf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __remainderf32(_Float32 __x, _Float32 __y) noexcept(true); +# 312 +extern _Float32 scalbnf32(_Float32 __x, int __n) noexcept(true); extern _Float32 __scalbnf32(_Float32 __x, int __n) noexcept(true); +# 316 +extern int ilogbf32(_Float32 __x) noexcept(true); extern int __ilogbf32(_Float32 __x) noexcept(true); +# 321 +extern long llogbf32(_Float32 __x) noexcept(true); extern long __llogbf32(_Float32 __x) noexcept(true); +# 326 +extern _Float32 scalblnf32(_Float32 __x, long __n) noexcept(true); extern _Float32 __scalblnf32(_Float32 __x, long __n) noexcept(true); +# 330 +extern _Float32 nearbyintf32(_Float32 __x) noexcept(true); extern _Float32 __nearbyintf32(_Float32 __x) noexcept(true); +# 334 +extern _Float32 roundf32(_Float32 __x) noexcept(true) __attribute((const)); +# 338 +extern _Float32 truncf32(_Float32 __x) noexcept(true) __attribute((const)); +# 343 +extern _Float32 remquof32(_Float32 __x, _Float32 __y, int * __quo) noexcept(true); extern _Float32 __remquof32(_Float32 __x, _Float32 __y, int * __quo) noexcept(true); +# 350 +extern long lrintf32(_Float32 __x) noexcept(true); extern long __lrintf32(_Float32 __x) noexcept(true); +# 352 +__extension__ extern long long llrintf32(_Float32 __x) noexcept(true); extern long long __llrintf32(_Float32 __x) noexcept(true); +# 356 +extern long lroundf32(_Float32 __x) noexcept(true); extern long __lroundf32(_Float32 __x) noexcept(true); +# 358 +__extension__ extern long long llroundf32(_Float32 __x) noexcept(true); extern long long __llroundf32(_Float32 __x) noexcept(true); +# 362 +extern _Float32 fdimf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __fdimf32(_Float32 __x, _Float32 __y) noexcept(true); +# 366 +extern _Float32 fmaxf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 369 +extern _Float32 fminf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 373 +extern _Float32 fmaf32(_Float32 __x, _Float32 __y, _Float32 __z) noexcept(true); extern _Float32 __fmaf32(_Float32 __x, _Float32 __y, _Float32 __z) noexcept(true); +# 378 +extern _Float32 roundevenf32(_Float32 __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef32(_Float32 * __cx, const _Float32 * __x) noexcept(true); +# 410 +extern _Float32 fmaxmagf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 413 +extern _Float32 fminmagf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 418 +extern _Float32 fmaximumf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 421 +extern _Float32 fminimumf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 424 +extern _Float32 fmaximum_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 427 +extern _Float32 fminimum_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 430 +extern _Float32 fmaximum_magf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 433 +extern _Float32 fminimum_magf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 436 +extern _Float32 fmaximum_mag_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 439 +extern _Float32 fminimum_mag_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf32(const _Float32 * __x, const _Float32 * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf32(const _Float32 * __x, const _Float32 * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float32 getpayloadf32(const _Float32 * __x) noexcept(true); extern _Float32 __getpayloadf32(const _Float32 * __x) noexcept(true); +# 457 +extern int setpayloadf32(_Float32 * __x, _Float32 __payload) noexcept(true); +# 460 +extern int setpayloadsigf32(_Float32 * __x, _Float32 __payload) noexcept(true); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float64 acosf64(_Float64 __x) noexcept(true); extern _Float64 __acosf64(_Float64 __x) noexcept(true); +# 55 +extern _Float64 asinf64(_Float64 __x) noexcept(true); extern _Float64 __asinf64(_Float64 __x) noexcept(true); +# 57 +extern _Float64 atanf64(_Float64 __x) noexcept(true); extern _Float64 __atanf64(_Float64 __x) noexcept(true); +# 59 +extern _Float64 atan2f64(_Float64 __y, _Float64 __x) noexcept(true); extern _Float64 __atan2f64(_Float64 __y, _Float64 __x) noexcept(true); +# 62 +extern _Float64 cosf64(_Float64 __x) noexcept(true); extern _Float64 __cosf64(_Float64 __x) noexcept(true); +# 64 +extern _Float64 sinf64(_Float64 __x) noexcept(true); extern _Float64 __sinf64(_Float64 __x) noexcept(true); +# 66 +extern _Float64 tanf64(_Float64 __x) noexcept(true); extern _Float64 __tanf64(_Float64 __x) noexcept(true); +# 70 +extern _Float64 acospif64(_Float64 __x) noexcept(true); extern _Float64 __acospif64(_Float64 __x) noexcept(true); +# 72 +extern _Float64 asinpif64(_Float64 __x) noexcept(true); extern _Float64 __asinpif64(_Float64 __x) noexcept(true); +# 74 +extern _Float64 atanpif64(_Float64 __x) noexcept(true); extern _Float64 __atanpif64(_Float64 __x) noexcept(true); +# 76 +extern _Float64 atan2pif64(_Float64 __y, _Float64 __x) noexcept(true); extern _Float64 __atan2pif64(_Float64 __y, _Float64 __x) noexcept(true); +# 79 +extern _Float64 cospif64(_Float64 __x) noexcept(true); extern _Float64 __cospif64(_Float64 __x) noexcept(true); +# 81 +extern _Float64 sinpif64(_Float64 __x) noexcept(true); extern _Float64 __sinpif64(_Float64 __x) noexcept(true); +# 83 +extern _Float64 tanpif64(_Float64 __x) noexcept(true); extern _Float64 __tanpif64(_Float64 __x) noexcept(true); +# 89 +extern _Float64 coshf64(_Float64 __x) noexcept(true); extern _Float64 __coshf64(_Float64 __x) noexcept(true); +# 91 +extern _Float64 sinhf64(_Float64 __x) noexcept(true); extern _Float64 __sinhf64(_Float64 __x) noexcept(true); +# 93 +extern _Float64 tanhf64(_Float64 __x) noexcept(true); extern _Float64 __tanhf64(_Float64 __x) noexcept(true); +# 97 +extern void sincosf64(_Float64 __x, _Float64 * __sinx, _Float64 * __cosx) noexcept(true); extern void __sincosf64(_Float64 __x, _Float64 * __sinx, _Float64 * __cosx) noexcept(true); +# 103 +extern _Float64 acoshf64(_Float64 __x) noexcept(true); extern _Float64 __acoshf64(_Float64 __x) noexcept(true); +# 105 +extern _Float64 asinhf64(_Float64 __x) noexcept(true); extern _Float64 __asinhf64(_Float64 __x) noexcept(true); +# 107 +extern _Float64 atanhf64(_Float64 __x) noexcept(true); extern _Float64 __atanhf64(_Float64 __x) noexcept(true); +# 113 +extern _Float64 expf64(_Float64 __x) noexcept(true); extern _Float64 __expf64(_Float64 __x) noexcept(true); +# 116 +extern _Float64 frexpf64(_Float64 __x, int * __exponent) noexcept(true); extern _Float64 __frexpf64(_Float64 __x, int * __exponent) noexcept(true); +# 119 +extern _Float64 ldexpf64(_Float64 __x, int __exponent) noexcept(true); extern _Float64 __ldexpf64(_Float64 __x, int __exponent) noexcept(true); +# 122 +extern _Float64 logf64(_Float64 __x) noexcept(true); extern _Float64 __logf64(_Float64 __x) noexcept(true); +# 125 +extern _Float64 log10f64(_Float64 __x) noexcept(true); extern _Float64 __log10f64(_Float64 __x) noexcept(true); +# 128 +extern _Float64 modff64(_Float64 __x, _Float64 * __iptr) noexcept(true); extern _Float64 __modff64(_Float64 __x, _Float64 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float64 exp10f64(_Float64 __x) noexcept(true); extern _Float64 __exp10f64(_Float64 __x) noexcept(true); +# 135 +extern _Float64 exp2m1f64(_Float64 __x) noexcept(true); extern _Float64 __exp2m1f64(_Float64 __x) noexcept(true); +# 138 +extern _Float64 exp10m1f64(_Float64 __x) noexcept(true); extern _Float64 __exp10m1f64(_Float64 __x) noexcept(true); +# 141 +extern _Float64 log2p1f64(_Float64 __x) noexcept(true); extern _Float64 __log2p1f64(_Float64 __x) noexcept(true); +# 144 +extern _Float64 log10p1f64(_Float64 __x) noexcept(true); extern _Float64 __log10p1f64(_Float64 __x) noexcept(true); +# 147 +extern _Float64 logp1f64(_Float64 __x) noexcept(true); extern _Float64 __logp1f64(_Float64 __x) noexcept(true); +# 152 +extern _Float64 expm1f64(_Float64 __x) noexcept(true); extern _Float64 __expm1f64(_Float64 __x) noexcept(true); +# 155 +extern _Float64 log1pf64(_Float64 __x) noexcept(true); extern _Float64 __log1pf64(_Float64 __x) noexcept(true); +# 158 +extern _Float64 logbf64(_Float64 __x) noexcept(true); extern _Float64 __logbf64(_Float64 __x) noexcept(true); +# 163 +extern _Float64 exp2f64(_Float64 __x) noexcept(true); extern _Float64 __exp2f64(_Float64 __x) noexcept(true); +# 166 +extern _Float64 log2f64(_Float64 __x) noexcept(true); extern _Float64 __log2f64(_Float64 __x) noexcept(true); +# 173 +extern _Float64 powf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __powf64(_Float64 __x, _Float64 __y) noexcept(true); +# 176 +extern _Float64 sqrtf64(_Float64 __x) noexcept(true); extern _Float64 __sqrtf64(_Float64 __x) noexcept(true); +# 180 +extern _Float64 hypotf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __hypotf64(_Float64 __x, _Float64 __y) noexcept(true); +# 185 +extern _Float64 cbrtf64(_Float64 __x) noexcept(true); extern _Float64 __cbrtf64(_Float64 __x) noexcept(true); +# 192 +extern _Float64 ceilf64(_Float64 __x) noexcept(true) __attribute((const)); +# 195 +extern _Float64 fabsf64(_Float64 __x) noexcept(true) __attribute((const)); +# 198 +extern _Float64 floorf64(_Float64 __x) noexcept(true) __attribute((const)); +# 201 +extern _Float64 fmodf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __fmodf64(_Float64 __x, _Float64 __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float64 copysignf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 236 +extern _Float64 nanf64(const char * __tagb) noexcept(true); extern _Float64 __nanf64(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float64 j0f64(_Float64) noexcept(true); extern _Float64 __j0f64(_Float64) noexcept(true); +# 254 +extern _Float64 j1f64(_Float64) noexcept(true); extern _Float64 __j1f64(_Float64) noexcept(true); +# 255 +extern _Float64 jnf64(int, _Float64) noexcept(true); extern _Float64 __jnf64(int, _Float64) noexcept(true); +# 256 +extern _Float64 y0f64(_Float64) noexcept(true); extern _Float64 __y0f64(_Float64) noexcept(true); +# 257 +extern _Float64 y1f64(_Float64) noexcept(true); extern _Float64 __y1f64(_Float64) noexcept(true); +# 258 +extern _Float64 ynf64(int, _Float64) noexcept(true); extern _Float64 __ynf64(int, _Float64) noexcept(true); +# 264 +extern _Float64 erff64(_Float64) noexcept(true); extern _Float64 __erff64(_Float64) noexcept(true); +# 265 +extern _Float64 erfcf64(_Float64) noexcept(true); extern _Float64 __erfcf64(_Float64) noexcept(true); +# 266 +extern _Float64 lgammaf64(_Float64) noexcept(true); extern _Float64 __lgammaf64(_Float64) noexcept(true); +# 271 +extern _Float64 tgammaf64(_Float64) noexcept(true); extern _Float64 __tgammaf64(_Float64) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float64 lgammaf64_r(_Float64, int * __signgamp) noexcept(true); extern _Float64 __lgammaf64_r(_Float64, int * __signgamp) noexcept(true); +# 292 +extern _Float64 rintf64(_Float64 __x) noexcept(true); extern _Float64 __rintf64(_Float64 __x) noexcept(true); +# 295 +extern _Float64 nextafterf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __nextafterf64(_Float64 __x, _Float64 __y) noexcept(true); +# 302 +extern _Float64 nextdownf64(_Float64 __x) noexcept(true); extern _Float64 __nextdownf64(_Float64 __x) noexcept(true); +# 304 +extern _Float64 nextupf64(_Float64 __x) noexcept(true); extern _Float64 __nextupf64(_Float64 __x) noexcept(true); +# 308 +extern _Float64 remainderf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __remainderf64(_Float64 __x, _Float64 __y) noexcept(true); +# 312 +extern _Float64 scalbnf64(_Float64 __x, int __n) noexcept(true); extern _Float64 __scalbnf64(_Float64 __x, int __n) noexcept(true); +# 316 +extern int ilogbf64(_Float64 __x) noexcept(true); extern int __ilogbf64(_Float64 __x) noexcept(true); +# 321 +extern long llogbf64(_Float64 __x) noexcept(true); extern long __llogbf64(_Float64 __x) noexcept(true); +# 326 +extern _Float64 scalblnf64(_Float64 __x, long __n) noexcept(true); extern _Float64 __scalblnf64(_Float64 __x, long __n) noexcept(true); +# 330 +extern _Float64 nearbyintf64(_Float64 __x) noexcept(true); extern _Float64 __nearbyintf64(_Float64 __x) noexcept(true); +# 334 +extern _Float64 roundf64(_Float64 __x) noexcept(true) __attribute((const)); +# 338 +extern _Float64 truncf64(_Float64 __x) noexcept(true) __attribute((const)); +# 343 +extern _Float64 remquof64(_Float64 __x, _Float64 __y, int * __quo) noexcept(true); extern _Float64 __remquof64(_Float64 __x, _Float64 __y, int * __quo) noexcept(true); +# 350 +extern long lrintf64(_Float64 __x) noexcept(true); extern long __lrintf64(_Float64 __x) noexcept(true); +# 352 +__extension__ extern long long llrintf64(_Float64 __x) noexcept(true); extern long long __llrintf64(_Float64 __x) noexcept(true); +# 356 +extern long lroundf64(_Float64 __x) noexcept(true); extern long __lroundf64(_Float64 __x) noexcept(true); +# 358 +__extension__ extern long long llroundf64(_Float64 __x) noexcept(true); extern long long __llroundf64(_Float64 __x) noexcept(true); +# 362 +extern _Float64 fdimf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __fdimf64(_Float64 __x, _Float64 __y) noexcept(true); +# 366 +extern _Float64 fmaxf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 369 +extern _Float64 fminf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 373 +extern _Float64 fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); extern _Float64 __fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); +# 378 +extern _Float64 roundevenf64(_Float64 __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef64(_Float64 * __cx, const _Float64 * __x) noexcept(true); +# 410 +extern _Float64 fmaxmagf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 413 +extern _Float64 fminmagf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 418 +extern _Float64 fmaximumf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 421 +extern _Float64 fminimumf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 424 +extern _Float64 fmaximum_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 427 +extern _Float64 fminimum_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 430 +extern _Float64 fmaximum_magf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 433 +extern _Float64 fminimum_magf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 436 +extern _Float64 fmaximum_mag_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 439 +extern _Float64 fminimum_mag_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf64(const _Float64 * __x, const _Float64 * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf64(const _Float64 * __x, const _Float64 * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float64 getpayloadf64(const _Float64 * __x) noexcept(true); extern _Float64 __getpayloadf64(const _Float64 * __x) noexcept(true); +# 457 +extern int setpayloadf64(_Float64 * __x, _Float64 __payload) noexcept(true); +# 460 +extern int setpayloadsigf64(_Float64 * __x, _Float64 __payload) noexcept(true); +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassifyf128(_Float128 __value) noexcept(true) +# 21 + __attribute((const)); +# 24 +extern int __signbitf128(_Float128 __value) noexcept(true) +# 25 + __attribute((const)); +# 29 +extern int __isinff128(_Float128 __value) noexcept(true) +# 30 + __attribute((const)); +# 33 +extern int __finitef128(_Float128 __value) noexcept(true) +# 34 + __attribute((const)); +# 37 +extern int __isnanf128(_Float128 __value) noexcept(true) +# 38 + __attribute((const)); +# 41 +extern int __iseqsigf128(_Float128 __x, _Float128 __y) noexcept(true); +# 44 +extern int __issignalingf128(_Float128 __value) noexcept(true) +# 45 + __attribute((const)); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float128 acosf128(_Float128 __x) noexcept(true); extern _Float128 __acosf128(_Float128 __x) noexcept(true); +# 55 +extern _Float128 asinf128(_Float128 __x) noexcept(true); extern _Float128 __asinf128(_Float128 __x) noexcept(true); +# 57 +extern _Float128 atanf128(_Float128 __x) noexcept(true); extern _Float128 __atanf128(_Float128 __x) noexcept(true); +# 59 +extern _Float128 atan2f128(_Float128 __y, _Float128 __x) noexcept(true); extern _Float128 __atan2f128(_Float128 __y, _Float128 __x) noexcept(true); +# 62 +extern _Float128 cosf128(_Float128 __x) noexcept(true); extern _Float128 __cosf128(_Float128 __x) noexcept(true); +# 64 +extern _Float128 sinf128(_Float128 __x) noexcept(true); extern _Float128 __sinf128(_Float128 __x) noexcept(true); +# 66 +extern _Float128 tanf128(_Float128 __x) noexcept(true); extern _Float128 __tanf128(_Float128 __x) noexcept(true); +# 70 +extern _Float128 acospif128(_Float128 __x) noexcept(true); extern _Float128 __acospif128(_Float128 __x) noexcept(true); +# 72 +extern _Float128 asinpif128(_Float128 __x) noexcept(true); extern _Float128 __asinpif128(_Float128 __x) noexcept(true); +# 74 +extern _Float128 atanpif128(_Float128 __x) noexcept(true); extern _Float128 __atanpif128(_Float128 __x) noexcept(true); +# 76 +extern _Float128 atan2pif128(_Float128 __y, _Float128 __x) noexcept(true); extern _Float128 __atan2pif128(_Float128 __y, _Float128 __x) noexcept(true); +# 79 +extern _Float128 cospif128(_Float128 __x) noexcept(true); extern _Float128 __cospif128(_Float128 __x) noexcept(true); +# 81 +extern _Float128 sinpif128(_Float128 __x) noexcept(true); extern _Float128 __sinpif128(_Float128 __x) noexcept(true); +# 83 +extern _Float128 tanpif128(_Float128 __x) noexcept(true); extern _Float128 __tanpif128(_Float128 __x) noexcept(true); +# 89 +extern _Float128 coshf128(_Float128 __x) noexcept(true); extern _Float128 __coshf128(_Float128 __x) noexcept(true); +# 91 +extern _Float128 sinhf128(_Float128 __x) noexcept(true); extern _Float128 __sinhf128(_Float128 __x) noexcept(true); +# 93 +extern _Float128 tanhf128(_Float128 __x) noexcept(true); extern _Float128 __tanhf128(_Float128 __x) noexcept(true); +# 97 +extern void sincosf128(_Float128 __x, _Float128 * __sinx, _Float128 * __cosx) noexcept(true); extern void __sincosf128(_Float128 __x, _Float128 * __sinx, _Float128 * __cosx) noexcept(true); +# 103 +extern _Float128 acoshf128(_Float128 __x) noexcept(true); extern _Float128 __acoshf128(_Float128 __x) noexcept(true); +# 105 +extern _Float128 asinhf128(_Float128 __x) noexcept(true); extern _Float128 __asinhf128(_Float128 __x) noexcept(true); +# 107 +extern _Float128 atanhf128(_Float128 __x) noexcept(true); extern _Float128 __atanhf128(_Float128 __x) noexcept(true); +# 113 +extern _Float128 expf128(_Float128 __x) noexcept(true); extern _Float128 __expf128(_Float128 __x) noexcept(true); +# 116 +extern _Float128 frexpf128(_Float128 __x, int * __exponent) noexcept(true); extern _Float128 __frexpf128(_Float128 __x, int * __exponent) noexcept(true); +# 119 +extern _Float128 ldexpf128(_Float128 __x, int __exponent) noexcept(true); extern _Float128 __ldexpf128(_Float128 __x, int __exponent) noexcept(true); +# 122 +extern _Float128 logf128(_Float128 __x) noexcept(true); extern _Float128 __logf128(_Float128 __x) noexcept(true); +# 125 +extern _Float128 log10f128(_Float128 __x) noexcept(true); extern _Float128 __log10f128(_Float128 __x) noexcept(true); +# 128 +extern _Float128 modff128(_Float128 __x, _Float128 * __iptr) noexcept(true); extern _Float128 __modff128(_Float128 __x, _Float128 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float128 exp10f128(_Float128 __x) noexcept(true); extern _Float128 __exp10f128(_Float128 __x) noexcept(true); +# 135 +extern _Float128 exp2m1f128(_Float128 __x) noexcept(true); extern _Float128 __exp2m1f128(_Float128 __x) noexcept(true); +# 138 +extern _Float128 exp10m1f128(_Float128 __x) noexcept(true); extern _Float128 __exp10m1f128(_Float128 __x) noexcept(true); +# 141 +extern _Float128 log2p1f128(_Float128 __x) noexcept(true); extern _Float128 __log2p1f128(_Float128 __x) noexcept(true); +# 144 +extern _Float128 log10p1f128(_Float128 __x) noexcept(true); extern _Float128 __log10p1f128(_Float128 __x) noexcept(true); +# 147 +extern _Float128 logp1f128(_Float128 __x) noexcept(true); extern _Float128 __logp1f128(_Float128 __x) noexcept(true); +# 152 +extern _Float128 expm1f128(_Float128 __x) noexcept(true); extern _Float128 __expm1f128(_Float128 __x) noexcept(true); +# 155 +extern _Float128 log1pf128(_Float128 __x) noexcept(true); extern _Float128 __log1pf128(_Float128 __x) noexcept(true); +# 158 +extern _Float128 logbf128(_Float128 __x) noexcept(true); extern _Float128 __logbf128(_Float128 __x) noexcept(true); +# 163 +extern _Float128 exp2f128(_Float128 __x) noexcept(true); extern _Float128 __exp2f128(_Float128 __x) noexcept(true); +# 166 +extern _Float128 log2f128(_Float128 __x) noexcept(true); extern _Float128 __log2f128(_Float128 __x) noexcept(true); +# 173 +extern _Float128 powf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __powf128(_Float128 __x, _Float128 __y) noexcept(true); +# 176 +extern _Float128 sqrtf128(_Float128 __x) noexcept(true); extern _Float128 __sqrtf128(_Float128 __x) noexcept(true); +# 180 +extern _Float128 hypotf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __hypotf128(_Float128 __x, _Float128 __y) noexcept(true); +# 185 +extern _Float128 cbrtf128(_Float128 __x) noexcept(true); extern _Float128 __cbrtf128(_Float128 __x) noexcept(true); +# 192 +extern _Float128 ceilf128(_Float128 __x) noexcept(true) __attribute((const)); +# 195 +extern _Float128 fabsf128(_Float128 __x) noexcept(true) __attribute((const)); +# 198 +extern _Float128 floorf128(_Float128 __x) noexcept(true) __attribute((const)); +# 201 +extern _Float128 fmodf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __fmodf128(_Float128 __x, _Float128 __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float128 copysignf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 236 +extern _Float128 nanf128(const char * __tagb) noexcept(true); extern _Float128 __nanf128(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float128 j0f128(_Float128) noexcept(true); extern _Float128 __j0f128(_Float128) noexcept(true); +# 254 +extern _Float128 j1f128(_Float128) noexcept(true); extern _Float128 __j1f128(_Float128) noexcept(true); +# 255 +extern _Float128 jnf128(int, _Float128) noexcept(true); extern _Float128 __jnf128(int, _Float128) noexcept(true); +# 256 +extern _Float128 y0f128(_Float128) noexcept(true); extern _Float128 __y0f128(_Float128) noexcept(true); +# 257 +extern _Float128 y1f128(_Float128) noexcept(true); extern _Float128 __y1f128(_Float128) noexcept(true); +# 258 +extern _Float128 ynf128(int, _Float128) noexcept(true); extern _Float128 __ynf128(int, _Float128) noexcept(true); +# 264 +extern _Float128 erff128(_Float128) noexcept(true); extern _Float128 __erff128(_Float128) noexcept(true); +# 265 +extern _Float128 erfcf128(_Float128) noexcept(true); extern _Float128 __erfcf128(_Float128) noexcept(true); +# 266 +extern _Float128 lgammaf128(_Float128) noexcept(true); extern _Float128 __lgammaf128(_Float128) noexcept(true); +# 271 +extern _Float128 tgammaf128(_Float128) noexcept(true); extern _Float128 __tgammaf128(_Float128) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float128 lgammaf128_r(_Float128, int * __signgamp) noexcept(true); extern _Float128 __lgammaf128_r(_Float128, int * __signgamp) noexcept(true); +# 292 +extern _Float128 rintf128(_Float128 __x) noexcept(true); extern _Float128 __rintf128(_Float128 __x) noexcept(true); +# 295 +extern _Float128 nextafterf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __nextafterf128(_Float128 __x, _Float128 __y) noexcept(true); +# 302 +extern _Float128 nextdownf128(_Float128 __x) noexcept(true); extern _Float128 __nextdownf128(_Float128 __x) noexcept(true); +# 304 +extern _Float128 nextupf128(_Float128 __x) noexcept(true); extern _Float128 __nextupf128(_Float128 __x) noexcept(true); +# 308 +extern _Float128 remainderf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __remainderf128(_Float128 __x, _Float128 __y) noexcept(true); +# 312 +extern _Float128 scalbnf128(_Float128 __x, int __n) noexcept(true); extern _Float128 __scalbnf128(_Float128 __x, int __n) noexcept(true); +# 316 +extern int ilogbf128(_Float128 __x) noexcept(true); extern int __ilogbf128(_Float128 __x) noexcept(true); +# 321 +extern long llogbf128(_Float128 __x) noexcept(true); extern long __llogbf128(_Float128 __x) noexcept(true); +# 326 +extern _Float128 scalblnf128(_Float128 __x, long __n) noexcept(true); extern _Float128 __scalblnf128(_Float128 __x, long __n) noexcept(true); +# 330 +extern _Float128 nearbyintf128(_Float128 __x) noexcept(true); extern _Float128 __nearbyintf128(_Float128 __x) noexcept(true); +# 334 +extern _Float128 roundf128(_Float128 __x) noexcept(true) __attribute((const)); +# 338 +extern _Float128 truncf128(_Float128 __x) noexcept(true) __attribute((const)); +# 343 +extern _Float128 remquof128(_Float128 __x, _Float128 __y, int * __quo) noexcept(true); extern _Float128 __remquof128(_Float128 __x, _Float128 __y, int * __quo) noexcept(true); +# 350 +extern long lrintf128(_Float128 __x) noexcept(true); extern long __lrintf128(_Float128 __x) noexcept(true); +# 352 +__extension__ extern long long llrintf128(_Float128 __x) noexcept(true); extern long long __llrintf128(_Float128 __x) noexcept(true); +# 356 +extern long lroundf128(_Float128 __x) noexcept(true); extern long __lroundf128(_Float128 __x) noexcept(true); +# 358 +__extension__ extern long long llroundf128(_Float128 __x) noexcept(true); extern long long __llroundf128(_Float128 __x) noexcept(true); +# 362 +extern _Float128 fdimf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __fdimf128(_Float128 __x, _Float128 __y) noexcept(true); +# 366 +extern _Float128 fmaxf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 369 +extern _Float128 fminf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 373 +extern _Float128 fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); extern _Float128 __fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 378 +extern _Float128 roundevenf128(_Float128 __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef128(_Float128 * __cx, const _Float128 * __x) noexcept(true); +# 410 +extern _Float128 fmaxmagf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 413 +extern _Float128 fminmagf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 418 +extern _Float128 fmaximumf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 421 +extern _Float128 fminimumf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 424 +extern _Float128 fmaximum_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 427 +extern _Float128 fminimum_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 430 +extern _Float128 fmaximum_magf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 433 +extern _Float128 fminimum_magf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 436 +extern _Float128 fmaximum_mag_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 439 +extern _Float128 fminimum_mag_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf128(const _Float128 * __x, const _Float128 * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf128(const _Float128 * __x, const _Float128 * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float128 getpayloadf128(const _Float128 * __x) noexcept(true); extern _Float128 __getpayloadf128(const _Float128 * __x) noexcept(true); +# 457 +extern int setpayloadf128(_Float128 * __x, _Float128 __payload) noexcept(true); +# 460 +extern int setpayloadsigf128(_Float128 * __x, _Float128 __payload) noexcept(true); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float32x acosf32x(_Float32x __x) noexcept(true); extern _Float32x __acosf32x(_Float32x __x) noexcept(true); +# 55 +extern _Float32x asinf32x(_Float32x __x) noexcept(true); extern _Float32x __asinf32x(_Float32x __x) noexcept(true); +# 57 +extern _Float32x atanf32x(_Float32x __x) noexcept(true); extern _Float32x __atanf32x(_Float32x __x) noexcept(true); +# 59 +extern _Float32x atan2f32x(_Float32x __y, _Float32x __x) noexcept(true); extern _Float32x __atan2f32x(_Float32x __y, _Float32x __x) noexcept(true); +# 62 +extern _Float32x cosf32x(_Float32x __x) noexcept(true); extern _Float32x __cosf32x(_Float32x __x) noexcept(true); +# 64 +extern _Float32x sinf32x(_Float32x __x) noexcept(true); extern _Float32x __sinf32x(_Float32x __x) noexcept(true); +# 66 +extern _Float32x tanf32x(_Float32x __x) noexcept(true); extern _Float32x __tanf32x(_Float32x __x) noexcept(true); +# 70 +extern _Float32x acospif32x(_Float32x __x) noexcept(true); extern _Float32x __acospif32x(_Float32x __x) noexcept(true); +# 72 +extern _Float32x asinpif32x(_Float32x __x) noexcept(true); extern _Float32x __asinpif32x(_Float32x __x) noexcept(true); +# 74 +extern _Float32x atanpif32x(_Float32x __x) noexcept(true); extern _Float32x __atanpif32x(_Float32x __x) noexcept(true); +# 76 +extern _Float32x atan2pif32x(_Float32x __y, _Float32x __x) noexcept(true); extern _Float32x __atan2pif32x(_Float32x __y, _Float32x __x) noexcept(true); +# 79 +extern _Float32x cospif32x(_Float32x __x) noexcept(true); extern _Float32x __cospif32x(_Float32x __x) noexcept(true); +# 81 +extern _Float32x sinpif32x(_Float32x __x) noexcept(true); extern _Float32x __sinpif32x(_Float32x __x) noexcept(true); +# 83 +extern _Float32x tanpif32x(_Float32x __x) noexcept(true); extern _Float32x __tanpif32x(_Float32x __x) noexcept(true); +# 89 +extern _Float32x coshf32x(_Float32x __x) noexcept(true); extern _Float32x __coshf32x(_Float32x __x) noexcept(true); +# 91 +extern _Float32x sinhf32x(_Float32x __x) noexcept(true); extern _Float32x __sinhf32x(_Float32x __x) noexcept(true); +# 93 +extern _Float32x tanhf32x(_Float32x __x) noexcept(true); extern _Float32x __tanhf32x(_Float32x __x) noexcept(true); +# 97 +extern void sincosf32x(_Float32x __x, _Float32x * __sinx, _Float32x * __cosx) noexcept(true); extern void __sincosf32x(_Float32x __x, _Float32x * __sinx, _Float32x * __cosx) noexcept(true); +# 103 +extern _Float32x acoshf32x(_Float32x __x) noexcept(true); extern _Float32x __acoshf32x(_Float32x __x) noexcept(true); +# 105 +extern _Float32x asinhf32x(_Float32x __x) noexcept(true); extern _Float32x __asinhf32x(_Float32x __x) noexcept(true); +# 107 +extern _Float32x atanhf32x(_Float32x __x) noexcept(true); extern _Float32x __atanhf32x(_Float32x __x) noexcept(true); +# 113 +extern _Float32x expf32x(_Float32x __x) noexcept(true); extern _Float32x __expf32x(_Float32x __x) noexcept(true); +# 116 +extern _Float32x frexpf32x(_Float32x __x, int * __exponent) noexcept(true); extern _Float32x __frexpf32x(_Float32x __x, int * __exponent) noexcept(true); +# 119 +extern _Float32x ldexpf32x(_Float32x __x, int __exponent) noexcept(true); extern _Float32x __ldexpf32x(_Float32x __x, int __exponent) noexcept(true); +# 122 +extern _Float32x logf32x(_Float32x __x) noexcept(true); extern _Float32x __logf32x(_Float32x __x) noexcept(true); +# 125 +extern _Float32x log10f32x(_Float32x __x) noexcept(true); extern _Float32x __log10f32x(_Float32x __x) noexcept(true); +# 128 +extern _Float32x modff32x(_Float32x __x, _Float32x * __iptr) noexcept(true); extern _Float32x __modff32x(_Float32x __x, _Float32x * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float32x exp10f32x(_Float32x __x) noexcept(true); extern _Float32x __exp10f32x(_Float32x __x) noexcept(true); +# 135 +extern _Float32x exp2m1f32x(_Float32x __x) noexcept(true); extern _Float32x __exp2m1f32x(_Float32x __x) noexcept(true); +# 138 +extern _Float32x exp10m1f32x(_Float32x __x) noexcept(true); extern _Float32x __exp10m1f32x(_Float32x __x) noexcept(true); +# 141 +extern _Float32x log2p1f32x(_Float32x __x) noexcept(true); extern _Float32x __log2p1f32x(_Float32x __x) noexcept(true); +# 144 +extern _Float32x log10p1f32x(_Float32x __x) noexcept(true); extern _Float32x __log10p1f32x(_Float32x __x) noexcept(true); +# 147 +extern _Float32x logp1f32x(_Float32x __x) noexcept(true); extern _Float32x __logp1f32x(_Float32x __x) noexcept(true); +# 152 +extern _Float32x expm1f32x(_Float32x __x) noexcept(true); extern _Float32x __expm1f32x(_Float32x __x) noexcept(true); +# 155 +extern _Float32x log1pf32x(_Float32x __x) noexcept(true); extern _Float32x __log1pf32x(_Float32x __x) noexcept(true); +# 158 +extern _Float32x logbf32x(_Float32x __x) noexcept(true); extern _Float32x __logbf32x(_Float32x __x) noexcept(true); +# 163 +extern _Float32x exp2f32x(_Float32x __x) noexcept(true); extern _Float32x __exp2f32x(_Float32x __x) noexcept(true); +# 166 +extern _Float32x log2f32x(_Float32x __x) noexcept(true); extern _Float32x __log2f32x(_Float32x __x) noexcept(true); +# 173 +extern _Float32x powf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __powf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 176 +extern _Float32x sqrtf32x(_Float32x __x) noexcept(true); extern _Float32x __sqrtf32x(_Float32x __x) noexcept(true); +# 180 +extern _Float32x hypotf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __hypotf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 185 +extern _Float32x cbrtf32x(_Float32x __x) noexcept(true); extern _Float32x __cbrtf32x(_Float32x __x) noexcept(true); +# 192 +extern _Float32x ceilf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 195 +extern _Float32x fabsf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 198 +extern _Float32x floorf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 201 +extern _Float32x fmodf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __fmodf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float32x copysignf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 236 +extern _Float32x nanf32x(const char * __tagb) noexcept(true); extern _Float32x __nanf32x(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float32x j0f32x(_Float32x) noexcept(true); extern _Float32x __j0f32x(_Float32x) noexcept(true); +# 254 +extern _Float32x j1f32x(_Float32x) noexcept(true); extern _Float32x __j1f32x(_Float32x) noexcept(true); +# 255 +extern _Float32x jnf32x(int, _Float32x) noexcept(true); extern _Float32x __jnf32x(int, _Float32x) noexcept(true); +# 256 +extern _Float32x y0f32x(_Float32x) noexcept(true); extern _Float32x __y0f32x(_Float32x) noexcept(true); +# 257 +extern _Float32x y1f32x(_Float32x) noexcept(true); extern _Float32x __y1f32x(_Float32x) noexcept(true); +# 258 +extern _Float32x ynf32x(int, _Float32x) noexcept(true); extern _Float32x __ynf32x(int, _Float32x) noexcept(true); +# 264 +extern _Float32x erff32x(_Float32x) noexcept(true); extern _Float32x __erff32x(_Float32x) noexcept(true); +# 265 +extern _Float32x erfcf32x(_Float32x) noexcept(true); extern _Float32x __erfcf32x(_Float32x) noexcept(true); +# 266 +extern _Float32x lgammaf32x(_Float32x) noexcept(true); extern _Float32x __lgammaf32x(_Float32x) noexcept(true); +# 271 +extern _Float32x tgammaf32x(_Float32x) noexcept(true); extern _Float32x __tgammaf32x(_Float32x) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float32x lgammaf32x_r(_Float32x, int * __signgamp) noexcept(true); extern _Float32x __lgammaf32x_r(_Float32x, int * __signgamp) noexcept(true); +# 292 +extern _Float32x rintf32x(_Float32x __x) noexcept(true); extern _Float32x __rintf32x(_Float32x __x) noexcept(true); +# 295 +extern _Float32x nextafterf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __nextafterf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 302 +extern _Float32x nextdownf32x(_Float32x __x) noexcept(true); extern _Float32x __nextdownf32x(_Float32x __x) noexcept(true); +# 304 +extern _Float32x nextupf32x(_Float32x __x) noexcept(true); extern _Float32x __nextupf32x(_Float32x __x) noexcept(true); +# 308 +extern _Float32x remainderf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __remainderf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 312 +extern _Float32x scalbnf32x(_Float32x __x, int __n) noexcept(true); extern _Float32x __scalbnf32x(_Float32x __x, int __n) noexcept(true); +# 316 +extern int ilogbf32x(_Float32x __x) noexcept(true); extern int __ilogbf32x(_Float32x __x) noexcept(true); +# 321 +extern long llogbf32x(_Float32x __x) noexcept(true); extern long __llogbf32x(_Float32x __x) noexcept(true); +# 326 +extern _Float32x scalblnf32x(_Float32x __x, long __n) noexcept(true); extern _Float32x __scalblnf32x(_Float32x __x, long __n) noexcept(true); +# 330 +extern _Float32x nearbyintf32x(_Float32x __x) noexcept(true); extern _Float32x __nearbyintf32x(_Float32x __x) noexcept(true); +# 334 +extern _Float32x roundf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 338 +extern _Float32x truncf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 343 +extern _Float32x remquof32x(_Float32x __x, _Float32x __y, int * __quo) noexcept(true); extern _Float32x __remquof32x(_Float32x __x, _Float32x __y, int * __quo) noexcept(true); +# 350 +extern long lrintf32x(_Float32x __x) noexcept(true); extern long __lrintf32x(_Float32x __x) noexcept(true); +# 352 +__extension__ extern long long llrintf32x(_Float32x __x) noexcept(true); extern long long __llrintf32x(_Float32x __x) noexcept(true); +# 356 +extern long lroundf32x(_Float32x __x) noexcept(true); extern long __lroundf32x(_Float32x __x) noexcept(true); +# 358 +__extension__ extern long long llroundf32x(_Float32x __x) noexcept(true); extern long long __llroundf32x(_Float32x __x) noexcept(true); +# 362 +extern _Float32x fdimf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __fdimf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 366 +extern _Float32x fmaxf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 369 +extern _Float32x fminf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 373 +extern _Float32x fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) noexcept(true); extern _Float32x __fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) noexcept(true); +# 378 +extern _Float32x roundevenf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef32x(_Float32x * __cx, const _Float32x * __x) noexcept(true); +# 410 +extern _Float32x fmaxmagf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 413 +extern _Float32x fminmagf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 418 +extern _Float32x fmaximumf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 421 +extern _Float32x fminimumf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 424 +extern _Float32x fmaximum_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 427 +extern _Float32x fminimum_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 430 +extern _Float32x fmaximum_magf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 433 +extern _Float32x fminimum_magf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 436 +extern _Float32x fmaximum_mag_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 439 +extern _Float32x fminimum_mag_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf32x(const _Float32x * __x, const _Float32x * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf32x(const _Float32x * __x, const _Float32x * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float32x getpayloadf32x(const _Float32x * __x) noexcept(true); extern _Float32x __getpayloadf32x(const _Float32x * __x) noexcept(true); +# 457 +extern int setpayloadf32x(_Float32x * __x, _Float32x __payload) noexcept(true); +# 460 +extern int setpayloadsigf32x(_Float32x * __x, _Float32x __payload) noexcept(true); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float64x acosf64x(_Float64x __x) noexcept(true); extern _Float64x __acosf64x(_Float64x __x) noexcept(true); +# 55 +extern _Float64x asinf64x(_Float64x __x) noexcept(true); extern _Float64x __asinf64x(_Float64x __x) noexcept(true); +# 57 +extern _Float64x atanf64x(_Float64x __x) noexcept(true); extern _Float64x __atanf64x(_Float64x __x) noexcept(true); +# 59 +extern _Float64x atan2f64x(_Float64x __y, _Float64x __x) noexcept(true); extern _Float64x __atan2f64x(_Float64x __y, _Float64x __x) noexcept(true); +# 62 +extern _Float64x cosf64x(_Float64x __x) noexcept(true); extern _Float64x __cosf64x(_Float64x __x) noexcept(true); +# 64 +extern _Float64x sinf64x(_Float64x __x) noexcept(true); extern _Float64x __sinf64x(_Float64x __x) noexcept(true); +# 66 +extern _Float64x tanf64x(_Float64x __x) noexcept(true); extern _Float64x __tanf64x(_Float64x __x) noexcept(true); +# 70 +extern _Float64x acospif64x(_Float64x __x) noexcept(true); extern _Float64x __acospif64x(_Float64x __x) noexcept(true); +# 72 +extern _Float64x asinpif64x(_Float64x __x) noexcept(true); extern _Float64x __asinpif64x(_Float64x __x) noexcept(true); +# 74 +extern _Float64x atanpif64x(_Float64x __x) noexcept(true); extern _Float64x __atanpif64x(_Float64x __x) noexcept(true); +# 76 +extern _Float64x atan2pif64x(_Float64x __y, _Float64x __x) noexcept(true); extern _Float64x __atan2pif64x(_Float64x __y, _Float64x __x) noexcept(true); +# 79 +extern _Float64x cospif64x(_Float64x __x) noexcept(true); extern _Float64x __cospif64x(_Float64x __x) noexcept(true); +# 81 +extern _Float64x sinpif64x(_Float64x __x) noexcept(true); extern _Float64x __sinpif64x(_Float64x __x) noexcept(true); +# 83 +extern _Float64x tanpif64x(_Float64x __x) noexcept(true); extern _Float64x __tanpif64x(_Float64x __x) noexcept(true); +# 89 +extern _Float64x coshf64x(_Float64x __x) noexcept(true); extern _Float64x __coshf64x(_Float64x __x) noexcept(true); +# 91 +extern _Float64x sinhf64x(_Float64x __x) noexcept(true); extern _Float64x __sinhf64x(_Float64x __x) noexcept(true); +# 93 +extern _Float64x tanhf64x(_Float64x __x) noexcept(true); extern _Float64x __tanhf64x(_Float64x __x) noexcept(true); +# 97 +extern void sincosf64x(_Float64x __x, _Float64x * __sinx, _Float64x * __cosx) noexcept(true); extern void __sincosf64x(_Float64x __x, _Float64x * __sinx, _Float64x * __cosx) noexcept(true); +# 103 +extern _Float64x acoshf64x(_Float64x __x) noexcept(true); extern _Float64x __acoshf64x(_Float64x __x) noexcept(true); +# 105 +extern _Float64x asinhf64x(_Float64x __x) noexcept(true); extern _Float64x __asinhf64x(_Float64x __x) noexcept(true); +# 107 +extern _Float64x atanhf64x(_Float64x __x) noexcept(true); extern _Float64x __atanhf64x(_Float64x __x) noexcept(true); +# 113 +extern _Float64x expf64x(_Float64x __x) noexcept(true); extern _Float64x __expf64x(_Float64x __x) noexcept(true); +# 116 +extern _Float64x frexpf64x(_Float64x __x, int * __exponent) noexcept(true); extern _Float64x __frexpf64x(_Float64x __x, int * __exponent) noexcept(true); +# 119 +extern _Float64x ldexpf64x(_Float64x __x, int __exponent) noexcept(true); extern _Float64x __ldexpf64x(_Float64x __x, int __exponent) noexcept(true); +# 122 +extern _Float64x logf64x(_Float64x __x) noexcept(true); extern _Float64x __logf64x(_Float64x __x) noexcept(true); +# 125 +extern _Float64x log10f64x(_Float64x __x) noexcept(true); extern _Float64x __log10f64x(_Float64x __x) noexcept(true); +# 128 +extern _Float64x modff64x(_Float64x __x, _Float64x * __iptr) noexcept(true); extern _Float64x __modff64x(_Float64x __x, _Float64x * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float64x exp10f64x(_Float64x __x) noexcept(true); extern _Float64x __exp10f64x(_Float64x __x) noexcept(true); +# 135 +extern _Float64x exp2m1f64x(_Float64x __x) noexcept(true); extern _Float64x __exp2m1f64x(_Float64x __x) noexcept(true); +# 138 +extern _Float64x exp10m1f64x(_Float64x __x) noexcept(true); extern _Float64x __exp10m1f64x(_Float64x __x) noexcept(true); +# 141 +extern _Float64x log2p1f64x(_Float64x __x) noexcept(true); extern _Float64x __log2p1f64x(_Float64x __x) noexcept(true); +# 144 +extern _Float64x log10p1f64x(_Float64x __x) noexcept(true); extern _Float64x __log10p1f64x(_Float64x __x) noexcept(true); +# 147 +extern _Float64x logp1f64x(_Float64x __x) noexcept(true); extern _Float64x __logp1f64x(_Float64x __x) noexcept(true); +# 152 +extern _Float64x expm1f64x(_Float64x __x) noexcept(true); extern _Float64x __expm1f64x(_Float64x __x) noexcept(true); +# 155 +extern _Float64x log1pf64x(_Float64x __x) noexcept(true); extern _Float64x __log1pf64x(_Float64x __x) noexcept(true); +# 158 +extern _Float64x logbf64x(_Float64x __x) noexcept(true); extern _Float64x __logbf64x(_Float64x __x) noexcept(true); +# 163 +extern _Float64x exp2f64x(_Float64x __x) noexcept(true); extern _Float64x __exp2f64x(_Float64x __x) noexcept(true); +# 166 +extern _Float64x log2f64x(_Float64x __x) noexcept(true); extern _Float64x __log2f64x(_Float64x __x) noexcept(true); +# 173 +extern _Float64x powf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __powf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 176 +extern _Float64x sqrtf64x(_Float64x __x) noexcept(true); extern _Float64x __sqrtf64x(_Float64x __x) noexcept(true); +# 180 +extern _Float64x hypotf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __hypotf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 185 +extern _Float64x cbrtf64x(_Float64x __x) noexcept(true); extern _Float64x __cbrtf64x(_Float64x __x) noexcept(true); +# 192 +extern _Float64x ceilf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 195 +extern _Float64x fabsf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 198 +extern _Float64x floorf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 201 +extern _Float64x fmodf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __fmodf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float64x copysignf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 236 +extern _Float64x nanf64x(const char * __tagb) noexcept(true); extern _Float64x __nanf64x(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float64x j0f64x(_Float64x) noexcept(true); extern _Float64x __j0f64x(_Float64x) noexcept(true); +# 254 +extern _Float64x j1f64x(_Float64x) noexcept(true); extern _Float64x __j1f64x(_Float64x) noexcept(true); +# 255 +extern _Float64x jnf64x(int, _Float64x) noexcept(true); extern _Float64x __jnf64x(int, _Float64x) noexcept(true); +# 256 +extern _Float64x y0f64x(_Float64x) noexcept(true); extern _Float64x __y0f64x(_Float64x) noexcept(true); +# 257 +extern _Float64x y1f64x(_Float64x) noexcept(true); extern _Float64x __y1f64x(_Float64x) noexcept(true); +# 258 +extern _Float64x ynf64x(int, _Float64x) noexcept(true); extern _Float64x __ynf64x(int, _Float64x) noexcept(true); +# 264 +extern _Float64x erff64x(_Float64x) noexcept(true); extern _Float64x __erff64x(_Float64x) noexcept(true); +# 265 +extern _Float64x erfcf64x(_Float64x) noexcept(true); extern _Float64x __erfcf64x(_Float64x) noexcept(true); +# 266 +extern _Float64x lgammaf64x(_Float64x) noexcept(true); extern _Float64x __lgammaf64x(_Float64x) noexcept(true); +# 271 +extern _Float64x tgammaf64x(_Float64x) noexcept(true); extern _Float64x __tgammaf64x(_Float64x) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float64x lgammaf64x_r(_Float64x, int * __signgamp) noexcept(true); extern _Float64x __lgammaf64x_r(_Float64x, int * __signgamp) noexcept(true); +# 292 +extern _Float64x rintf64x(_Float64x __x) noexcept(true); extern _Float64x __rintf64x(_Float64x __x) noexcept(true); +# 295 +extern _Float64x nextafterf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __nextafterf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 302 +extern _Float64x nextdownf64x(_Float64x __x) noexcept(true); extern _Float64x __nextdownf64x(_Float64x __x) noexcept(true); +# 304 +extern _Float64x nextupf64x(_Float64x __x) noexcept(true); extern _Float64x __nextupf64x(_Float64x __x) noexcept(true); +# 308 +extern _Float64x remainderf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __remainderf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 312 +extern _Float64x scalbnf64x(_Float64x __x, int __n) noexcept(true); extern _Float64x __scalbnf64x(_Float64x __x, int __n) noexcept(true); +# 316 +extern int ilogbf64x(_Float64x __x) noexcept(true); extern int __ilogbf64x(_Float64x __x) noexcept(true); +# 321 +extern long llogbf64x(_Float64x __x) noexcept(true); extern long __llogbf64x(_Float64x __x) noexcept(true); +# 326 +extern _Float64x scalblnf64x(_Float64x __x, long __n) noexcept(true); extern _Float64x __scalblnf64x(_Float64x __x, long __n) noexcept(true); +# 330 +extern _Float64x nearbyintf64x(_Float64x __x) noexcept(true); extern _Float64x __nearbyintf64x(_Float64x __x) noexcept(true); +# 334 +extern _Float64x roundf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 338 +extern _Float64x truncf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 343 +extern _Float64x remquof64x(_Float64x __x, _Float64x __y, int * __quo) noexcept(true); extern _Float64x __remquof64x(_Float64x __x, _Float64x __y, int * __quo) noexcept(true); +# 350 +extern long lrintf64x(_Float64x __x) noexcept(true); extern long __lrintf64x(_Float64x __x) noexcept(true); +# 352 +__extension__ extern long long llrintf64x(_Float64x __x) noexcept(true); extern long long __llrintf64x(_Float64x __x) noexcept(true); +# 356 +extern long lroundf64x(_Float64x __x) noexcept(true); extern long __lroundf64x(_Float64x __x) noexcept(true); +# 358 +__extension__ extern long long llroundf64x(_Float64x __x) noexcept(true); extern long long __llroundf64x(_Float64x __x) noexcept(true); +# 362 +extern _Float64x fdimf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __fdimf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 366 +extern _Float64x fmaxf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 369 +extern _Float64x fminf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 373 +extern _Float64x fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); extern _Float64x __fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 378 +extern _Float64x roundevenf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef64x(_Float64x * __cx, const _Float64x * __x) noexcept(true); +# 410 +extern _Float64x fmaxmagf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 413 +extern _Float64x fminmagf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 418 +extern _Float64x fmaximumf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 421 +extern _Float64x fminimumf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 424 +extern _Float64x fmaximum_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 427 +extern _Float64x fminimum_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 430 +extern _Float64x fmaximum_magf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 433 +extern _Float64x fminimum_magf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 436 +extern _Float64x fmaximum_mag_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 439 +extern _Float64x fminimum_mag_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf64x(const _Float64x * __x, const _Float64x * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf64x(const _Float64x * __x, const _Float64x * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float64x getpayloadf64x(const _Float64x * __x) noexcept(true); extern _Float64x __getpayloadf64x(const _Float64x * __x) noexcept(true); +# 457 +extern int setpayloadf64x(_Float64x * __x, _Float64x __payload) noexcept(true); +# 460 +extern int setpayloadsigf64x(_Float64x * __x, _Float64x __payload) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern float fadd(double __x, double __y) noexcept(true); +# 27 +extern float fdiv(double __x, double __y) noexcept(true); +# 30 +extern float ffma(double __x, double __y, double __z) noexcept(true); +# 33 +extern float fmul(double __x, double __y) noexcept(true); +# 36 +extern float fsqrt(double __x) noexcept(true); +# 39 +extern float fsub(double __x, double __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern float faddl(long double __x, long double __y) noexcept(true); +# 27 +extern float fdivl(long double __x, long double __y) noexcept(true); +# 30 +extern float ffmal(long double __x, long double __y, long double __z) noexcept(true); +# 33 +extern float fmull(long double __x, long double __y) noexcept(true); +# 36 +extern float fsqrtl(long double __x) noexcept(true); +# 39 +extern float fsubl(long double __x, long double __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern double daddl(long double __x, long double __y) noexcept(true); +# 27 +extern double ddivl(long double __x, long double __y) noexcept(true); +# 30 +extern double dfmal(long double __x, long double __y, long double __z) noexcept(true); +# 33 +extern double dmull(long double __x, long double __y) noexcept(true); +# 36 +extern double dsqrtl(long double __x) noexcept(true); +# 39 +extern double dsubl(long double __x, long double __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 27 +extern _Float32 f32divf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 30 +extern _Float32 f32fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) noexcept(true); +# 33 +extern _Float32 f32mulf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 36 +extern _Float32 f32sqrtf32x(_Float32x __x) noexcept(true); +# 39 +extern _Float32 f32subf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf64(_Float64 __x, _Float64 __y) noexcept(true); +# 27 +extern _Float32 f32divf64(_Float64 __x, _Float64 __y) noexcept(true); +# 30 +extern _Float32 f32fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); +# 33 +extern _Float32 f32mulf64(_Float64 __x, _Float64 __y) noexcept(true); +# 36 +extern _Float32 f32sqrtf64(_Float64 __x) noexcept(true); +# 39 +extern _Float32 f32subf64(_Float64 __x, _Float64 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 27 +extern _Float32 f32divf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 30 +extern _Float32 f32fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 33 +extern _Float32 f32mulf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 36 +extern _Float32 f32sqrtf64x(_Float64x __x) noexcept(true); +# 39 +extern _Float32 f32subf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf128(_Float128 __x, _Float128 __y) noexcept(true); +# 27 +extern _Float32 f32divf128(_Float128 __x, _Float128 __y) noexcept(true); +# 30 +extern _Float32 f32fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 33 +extern _Float32 f32mulf128(_Float128 __x, _Float128 __y) noexcept(true); +# 36 +extern _Float32 f32sqrtf128(_Float128 __x) noexcept(true); +# 39 +extern _Float32 f32subf128(_Float128 __x, _Float128 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32x f32xaddf64(_Float64 __x, _Float64 __y) noexcept(true); +# 27 +extern _Float32x f32xdivf64(_Float64 __x, _Float64 __y) noexcept(true); +# 30 +extern _Float32x f32xfmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); +# 33 +extern _Float32x f32xmulf64(_Float64 __x, _Float64 __y) noexcept(true); +# 36 +extern _Float32x f32xsqrtf64(_Float64 __x) noexcept(true); +# 39 +extern _Float32x f32xsubf64(_Float64 __x, _Float64 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32x f32xaddf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 27 +extern _Float32x f32xdivf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 30 +extern _Float32x f32xfmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 33 +extern _Float32x f32xmulf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 36 +extern _Float32x f32xsqrtf64x(_Float64x __x) noexcept(true); +# 39 +extern _Float32x f32xsubf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32x f32xaddf128(_Float128 __x, _Float128 __y) noexcept(true); +# 27 +extern _Float32x f32xdivf128(_Float128 __x, _Float128 __y) noexcept(true); +# 30 +extern _Float32x f32xfmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 33 +extern _Float32x f32xmulf128(_Float128 __x, _Float128 __y) noexcept(true); +# 36 +extern _Float32x f32xsqrtf128(_Float128 __x) noexcept(true); +# 39 +extern _Float32x f32xsubf128(_Float128 __x, _Float128 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float64 f64addf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 27 +extern _Float64 f64divf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 30 +extern _Float64 f64fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 33 +extern _Float64 f64mulf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 36 +extern _Float64 f64sqrtf64x(_Float64x __x) noexcept(true); +# 39 +extern _Float64 f64subf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float64 f64addf128(_Float128 __x, _Float128 __y) noexcept(true); +# 27 +extern _Float64 f64divf128(_Float128 __x, _Float128 __y) noexcept(true); +# 30 +extern _Float64 f64fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 33 +extern _Float64 f64mulf128(_Float128 __x, _Float128 __y) noexcept(true); +# 36 +extern _Float64 f64sqrtf128(_Float128 __x) noexcept(true); +# 39 +extern _Float64 f64subf128(_Float128 __x, _Float128 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float64x f64xaddf128(_Float128 __x, _Float128 __y) noexcept(true); +# 27 +extern _Float64x f64xdivf128(_Float128 __x, _Float128 __y) noexcept(true); +# 30 +extern _Float64x f64xfmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 33 +extern _Float64x f64xmulf128(_Float128 __x, _Float128 __y) noexcept(true); +# 36 +extern _Float64x f64xsqrtf128(_Float128 __x) noexcept(true); +# 39 +extern _Float64x f64xsubf128(_Float128 __x, _Float128 __y) noexcept(true); +# 823 "/usr/include/math.h" 3 +extern int signgam; +# 904 "/usr/include/math.h" 3 +enum { +# 905 +FP_NAN, +# 908 +FP_INFINITE, +# 911 +FP_ZERO, +# 914 +FP_SUBNORMAL, +# 917 +FP_NORMAL +# 920 +}; +# 23 "/usr/include/bits/iscanonical.h" 3 +extern int __iscanonicall(long double __x) noexcept(true) +# 24 + __attribute((const)); +# 46 "/usr/include/bits/iscanonical.h" 3 +extern "C++" { +# 47 +inline int iscanonical(float __val) { return (((void)((__typeof__(__val))__val)), 1); } +# 48 +inline int iscanonical(double __val) { return (((void)((__typeof__(__val))__val)), 1); } +# 49 +inline int iscanonical(long double __val) { return __iscanonicall(__val); } +# 51 +inline int iscanonical(_Float128 __val) { return (((void)((__typeof__(__val))__val)), 1); } +# 53 +} +# 1036 "/usr/include/math.h" 3 +extern "C++" { +# 1037 +inline int issignaling(float __val) { return __issignalingf(__val); } +# 1038 +inline int issignaling(double __val) { return __issignaling(__val); } +# 1040 +inline int issignaling(long double __val) +# 1041 +{ +# 1045 +return __issignalingl(__val); +# 1047 +} +# 1051 +inline int issignaling(_Float128 __val) { return __issignalingf128(__val); } +# 1053 +} +# 1067 "/usr/include/math.h" 3 +extern "C++" { +# 1098 "/usr/include/math.h" 3 +template< class __T> inline bool +# 1099 +iszero(__T __val) +# 1100 +{ +# 1101 +return __val == 0; +# 1102 +} +# 1104 +} +# 1333 "/usr/include/math.h" 3 +extern "C++" { +# 1334 +template< class > struct __iseqsig_type; +# 1336 +template<> struct __iseqsig_type< float> { +# 1338 +static int __call(float __x, float __y) throw() +# 1339 +{ +# 1340 +return __iseqsigf(__x, __y); +# 1341 +} +# 1342 +}; +# 1344 +template<> struct __iseqsig_type< double> { +# 1346 +static int __call(double __x, double __y) throw() +# 1347 +{ +# 1348 +return __iseqsig(__x, __y); +# 1349 +} +# 1350 +}; +# 1352 +template<> struct __iseqsig_type< long double> { +# 1354 +static int __call(long double __x, long double __y) throw() +# 1355 +{ +# 1357 +return __iseqsigl(__x, __y); +# 1361 +} +# 1362 +}; +# 1365 +template<> struct __iseqsig_type< _Float32> { +# 1367 +static int __call(_Float32 __x, _Float32 __y) throw() +# 1368 +{ +# 1369 +return __iseqsigf(__x, __y); +# 1370 +} +# 1371 +}; +# 1375 +template<> struct __iseqsig_type< _Float64> { +# 1377 +static int __call(_Float64 __x, _Float64 __y) throw() +# 1378 +{ +# 1379 +return __iseqsig(__x, __y); +# 1380 +} +# 1381 +}; +# 1387 +template<> struct __iseqsig_type< _Float128> { +# 1389 +static int __call(_Float128 __x, _Float128 __y) throw() +# 1390 +{ +# 1392 +return __iseqsigf128(__x, __y); +# 1396 +} +# 1397 +}; +# 1401 +template<> struct __iseqsig_type< _Float32x> { +# 1403 +static int __call(_Float32x __x, _Float32x __y) throw() +# 1404 +{ +# 1405 +return __iseqsig(__x, __y); +# 1406 +} +# 1407 +}; +# 1411 +template<> struct __iseqsig_type< _Float64x> { +# 1413 +static int __call(_Float64x __x, _Float64x __y) throw() +# 1414 +{ +# 1416 +return __iseqsigl(__x, __y); +# 1420 +} +# 1421 +}; +# 1424 +template< class _T1, class _T2> inline int +# 1426 +iseqsig(_T1 __x, _T2 __y) throw() +# 1427 +{ +# 1429 +typedef __decltype(((__x + __y) + (0.0F))) _T3; +# 1433 +return __iseqsig_type< __decltype(((__x + __y) + (0.0F)))> ::__call(__x, __y); +# 1434 +} +# 1436 +} +# 1441 +} +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +extern "C++" { +# 85 +namespace std __attribute((__visibility__("default"))) { +# 89 +using ::acos; +# 93 +constexpr float acos(float __x) +# 94 +{ return __builtin_acosf(__x); } +# 97 +constexpr long double acos(long double __x) +# 98 +{ return __builtin_acosl(__x); } +# 101 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 105 +acos(_Tp __x) +# 106 +{ return __builtin_acos(__x); } +# 108 +using ::asin; +# 112 +constexpr float asin(float __x) +# 113 +{ return __builtin_asinf(__x); } +# 116 +constexpr long double asin(long double __x) +# 117 +{ return __builtin_asinl(__x); } +# 120 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 124 +asin(_Tp __x) +# 125 +{ return __builtin_asin(__x); } +# 127 +using ::atan; +# 131 +constexpr float atan(float __x) +# 132 +{ return __builtin_atanf(__x); } +# 135 +constexpr long double atan(long double __x) +# 136 +{ return __builtin_atanl(__x); } +# 139 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 143 +atan(_Tp __x) +# 144 +{ return __builtin_atan(__x); } +# 146 +using ::atan2; +# 150 +constexpr float atan2(float __y, float __x) +# 151 +{ return __builtin_atan2f(__y, __x); } +# 154 +constexpr long double atan2(long double __y, long double __x) +# 155 +{ return __builtin_atan2l(__y, __x); } +# 158 +using ::ceil; +# 162 +constexpr float ceil(float __x) +# 163 +{ return __builtin_ceilf(__x); } +# 166 +constexpr long double ceil(long double __x) +# 167 +{ return __builtin_ceill(__x); } +# 170 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 174 +ceil(_Tp __x) +# 175 +{ return __builtin_ceil(__x); } +# 177 +using ::cos; +# 181 +constexpr float cos(float __x) +# 182 +{ return __builtin_cosf(__x); } +# 185 +constexpr long double cos(long double __x) +# 186 +{ return __builtin_cosl(__x); } +# 189 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 193 +cos(_Tp __x) +# 194 +{ return __builtin_cos(__x); } +# 196 +using ::cosh; +# 200 +constexpr float cosh(float __x) +# 201 +{ return __builtin_coshf(__x); } +# 204 +constexpr long double cosh(long double __x) +# 205 +{ return __builtin_coshl(__x); } +# 208 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 212 +cosh(_Tp __x) +# 213 +{ return __builtin_cosh(__x); } +# 215 +using ::exp; +# 219 +constexpr float exp(float __x) +# 220 +{ return __builtin_expf(__x); } +# 223 +constexpr long double exp(long double __x) +# 224 +{ return __builtin_expl(__x); } +# 227 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 231 +exp(_Tp __x) +# 232 +{ return __builtin_exp(__x); } +# 234 +using ::fabs; +# 238 +constexpr float fabs(float __x) +# 239 +{ return __builtin_fabsf(__x); } +# 242 +constexpr long double fabs(long double __x) +# 243 +{ return __builtin_fabsl(__x); } +# 246 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 250 +fabs(_Tp __x) +# 251 +{ return __builtin_fabs(__x); } +# 253 +using ::floor; +# 257 +constexpr float floor(float __x) +# 258 +{ return __builtin_floorf(__x); } +# 261 +constexpr long double floor(long double __x) +# 262 +{ return __builtin_floorl(__x); } +# 265 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 269 +floor(_Tp __x) +# 270 +{ return __builtin_floor(__x); } +# 272 +using ::fmod; +# 276 +constexpr float fmod(float __x, float __y) +# 277 +{ return __builtin_fmodf(__x, __y); } +# 280 +constexpr long double fmod(long double __x, long double __y) +# 281 +{ return __builtin_fmodl(__x, __y); } +# 284 +using ::frexp; +# 288 +inline float frexp(float __x, int *__exp) +# 289 +{ return __builtin_frexpf(__x, __exp); } +# 292 +inline long double frexp(long double __x, int *__exp) +# 293 +{ return __builtin_frexpl(__x, __exp); } +# 296 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 300 +frexp(_Tp __x, int *__exp) +# 301 +{ return __builtin_frexp(__x, __exp); } +# 303 +using ::ldexp; +# 307 +constexpr float ldexp(float __x, int __exp) +# 308 +{ return __builtin_ldexpf(__x, __exp); } +# 311 +constexpr long double ldexp(long double __x, int __exp) +# 312 +{ return __builtin_ldexpl(__x, __exp); } +# 315 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 319 +ldexp(_Tp __x, int __exp) +# 320 +{ return __builtin_ldexp(__x, __exp); } +# 322 +using ::log; +# 326 +constexpr float log(float __x) +# 327 +{ return __builtin_logf(__x); } +# 330 +constexpr long double log(long double __x) +# 331 +{ return __builtin_logl(__x); } +# 334 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 338 +log(_Tp __x) +# 339 +{ return __builtin_log(__x); } +# 341 +using ::log10; +# 345 +constexpr float log10(float __x) +# 346 +{ return __builtin_log10f(__x); } +# 349 +constexpr long double log10(long double __x) +# 350 +{ return __builtin_log10l(__x); } +# 353 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 357 +log10(_Tp __x) +# 358 +{ return __builtin_log10(__x); } +# 360 +using ::modf; +# 364 +inline float modf(float __x, float *__iptr) +# 365 +{ return __builtin_modff(__x, __iptr); } +# 368 +inline long double modf(long double __x, long double *__iptr) +# 369 +{ return __builtin_modfl(__x, __iptr); } +# 372 +using ::pow; +# 376 +constexpr float pow(float __x, float __y) +# 377 +{ return __builtin_powf(__x, __y); } +# 380 +constexpr long double pow(long double __x, long double __y) +# 381 +{ return __builtin_powl(__x, __y); } +# 400 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +using ::sin; +# 404 +constexpr float sin(float __x) +# 405 +{ return __builtin_sinf(__x); } +# 408 +constexpr long double sin(long double __x) +# 409 +{ return __builtin_sinl(__x); } +# 412 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 416 +sin(_Tp __x) +# 417 +{ return __builtin_sin(__x); } +# 419 +using ::sinh; +# 423 +constexpr float sinh(float __x) +# 424 +{ return __builtin_sinhf(__x); } +# 427 +constexpr long double sinh(long double __x) +# 428 +{ return __builtin_sinhl(__x); } +# 431 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 435 +sinh(_Tp __x) +# 436 +{ return __builtin_sinh(__x); } +# 438 +using ::sqrt; +# 442 +constexpr float sqrt(float __x) +# 443 +{ return __builtin_sqrtf(__x); } +# 446 +constexpr long double sqrt(long double __x) +# 447 +{ return __builtin_sqrtl(__x); } +# 450 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 454 +sqrt(_Tp __x) +# 455 +{ return __builtin_sqrt(__x); } +# 457 +using ::tan; +# 461 +constexpr float tan(float __x) +# 462 +{ return __builtin_tanf(__x); } +# 465 +constexpr long double tan(long double __x) +# 466 +{ return __builtin_tanl(__x); } +# 469 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 473 +tan(_Tp __x) +# 474 +{ return __builtin_tan(__x); } +# 476 +using ::tanh; +# 480 +constexpr float tanh(float __x) +# 481 +{ return __builtin_tanhf(__x); } +# 484 +constexpr long double tanh(long double __x) +# 485 +{ return __builtin_tanhl(__x); } +# 488 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 492 +tanh(_Tp __x) +# 493 +{ return __builtin_tanh(__x); } +# 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1056 +atan2(_Tp __y, _Up __x) +# 1057 +{ +# 1058 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1059 +return atan2((__type)__y, (__type)__x); +# 1060 +} +# 1062 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1065 +fmod(_Tp __x, _Up __y) +# 1066 +{ +# 1067 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1068 +return fmod((__type)__x, (__type)__y); +# 1069 +} +# 1071 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1074 +pow(_Tp __x, _Up __y) +# 1075 +{ +# 1076 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1077 +return pow((__type)__x, (__type)__y); +# 1078 +} +# 1101 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +constexpr int fpclassify(float __x) +# 1102 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 1103 +} +# 1106 +constexpr int fpclassify(double __x) +# 1107 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 1108 +} +# 1111 +constexpr int fpclassify(long double __x) +# 1112 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 1113 +} +# 1117 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, int> ::__type +# 1120 +fpclassify(_Tp __x) +# 1121 +{ return (__x != 0) ? 4 : 2; } +# 1126 +constexpr bool isfinite(float __x) +# 1127 +{ return __builtin_isfinite(__x); } +# 1130 +constexpr bool isfinite(double __x) +# 1131 +{ return __builtin_isfinite(__x); } +# 1134 +constexpr bool isfinite(long double __x) +# 1135 +{ return __builtin_isfinite(__x); } +# 1139 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1142 +isfinite(_Tp) +# 1143 +{ return true; } +# 1148 +constexpr bool isinf(float __x) +# 1149 +{ return __builtin_isinf(__x); } +# 1156 +constexpr bool isinf(double __x) +# 1157 +{ return __builtin_isinf(__x); } +# 1161 +constexpr bool isinf(long double __x) +# 1162 +{ return __builtin_isinf(__x); } +# 1166 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1169 +isinf(_Tp) +# 1170 +{ return false; } +# 1175 +constexpr bool isnan(float __x) +# 1176 +{ return __builtin_isnan(__x); } +# 1183 +constexpr bool isnan(double __x) +# 1184 +{ return __builtin_isnan(__x); } +# 1188 +constexpr bool isnan(long double __x) +# 1189 +{ return __builtin_isnan(__x); } +# 1193 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1196 +isnan(_Tp) +# 1197 +{ return false; } +# 1202 +constexpr bool isnormal(float __x) +# 1203 +{ return __builtin_isnormal(__x); } +# 1206 +constexpr bool isnormal(double __x) +# 1207 +{ return __builtin_isnormal(__x); } +# 1210 +constexpr bool isnormal(long double __x) +# 1211 +{ return __builtin_isnormal(__x); } +# 1215 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1218 +isnormal(_Tp __x) +# 1219 +{ return (__x != 0) ? true : false; } +# 1225 +constexpr bool signbit(float __x) +# 1226 +{ return __builtin_signbit(__x); } +# 1229 +constexpr bool signbit(double __x) +# 1230 +{ return __builtin_signbit(__x); } +# 1233 +constexpr bool signbit(long double __x) +# 1234 +{ return __builtin_signbit(__x); } +# 1238 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1241 +signbit(_Tp __x) +# 1242 +{ return (__x < 0) ? true : false; } +# 1247 +constexpr bool isgreater(float __x, float __y) +# 1248 +{ return __builtin_isgreater(__x, __y); } +# 1251 +constexpr bool isgreater(double __x, double __y) +# 1252 +{ return __builtin_isgreater(__x, __y); } +# 1255 +constexpr bool isgreater(long double __x, long double __y) +# 1256 +{ return __builtin_isgreater(__x, __y); } +# 1260 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1264 +isgreater(_Tp __x, _Up __y) +# 1265 +{ +# 1266 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1267 +return __builtin_isgreater((__type)__x, (__type)__y); +# 1268 +} +# 1273 +constexpr bool isgreaterequal(float __x, float __y) +# 1274 +{ return __builtin_isgreaterequal(__x, __y); } +# 1277 +constexpr bool isgreaterequal(double __x, double __y) +# 1278 +{ return __builtin_isgreaterequal(__x, __y); } +# 1281 +constexpr bool isgreaterequal(long double __x, long double __y) +# 1282 +{ return __builtin_isgreaterequal(__x, __y); } +# 1286 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1290 +isgreaterequal(_Tp __x, _Up __y) +# 1291 +{ +# 1292 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1293 +return __builtin_isgreaterequal((__type)__x, (__type)__y); +# 1294 +} +# 1299 +constexpr bool isless(float __x, float __y) +# 1300 +{ return __builtin_isless(__x, __y); } +# 1303 +constexpr bool isless(double __x, double __y) +# 1304 +{ return __builtin_isless(__x, __y); } +# 1307 +constexpr bool isless(long double __x, long double __y) +# 1308 +{ return __builtin_isless(__x, __y); } +# 1312 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1316 +isless(_Tp __x, _Up __y) +# 1317 +{ +# 1318 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1319 +return __builtin_isless((__type)__x, (__type)__y); +# 1320 +} +# 1325 +constexpr bool islessequal(float __x, float __y) +# 1326 +{ return __builtin_islessequal(__x, __y); } +# 1329 +constexpr bool islessequal(double __x, double __y) +# 1330 +{ return __builtin_islessequal(__x, __y); } +# 1333 +constexpr bool islessequal(long double __x, long double __y) +# 1334 +{ return __builtin_islessequal(__x, __y); } +# 1338 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1342 +islessequal(_Tp __x, _Up __y) +# 1343 +{ +# 1344 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1345 +return __builtin_islessequal((__type)__x, (__type)__y); +# 1346 +} +# 1351 +constexpr bool islessgreater(float __x, float __y) +# 1352 +{ return __builtin_islessgreater(__x, __y); } +# 1355 +constexpr bool islessgreater(double __x, double __y) +# 1356 +{ return __builtin_islessgreater(__x, __y); } +# 1359 +constexpr bool islessgreater(long double __x, long double __y) +# 1360 +{ return __builtin_islessgreater(__x, __y); } +# 1364 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1368 +islessgreater(_Tp __x, _Up __y) +# 1369 +{ +# 1370 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1371 +return __builtin_islessgreater((__type)__x, (__type)__y); +# 1372 +} +# 1377 +constexpr bool isunordered(float __x, float __y) +# 1378 +{ return __builtin_isunordered(__x, __y); } +# 1381 +constexpr bool isunordered(double __x, double __y) +# 1382 +{ return __builtin_isunordered(__x, __y); } +# 1385 +constexpr bool isunordered(long double __x, long double __y) +# 1386 +{ return __builtin_isunordered(__x, __y); } +# 1390 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1394 +isunordered(_Tp __x, _Up __y) +# 1395 +{ +# 1396 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1397 +return __builtin_isunordered((__type)__x, (__type)__y); +# 1398 +} +# 1820 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +using ::acosf; +# 1823 +using ::acosl; +# 1827 +using ::asinf; +# 1830 +using ::asinl; +# 1834 +using ::atanf; +# 1837 +using ::atanl; +# 1841 +using ::atan2f; +# 1844 +using ::atan2l; +# 1848 +using ::ceilf; +# 1851 +using ::ceill; +# 1855 +using ::cosf; +# 1858 +using ::cosl; +# 1862 +using ::coshf; +# 1865 +using ::coshl; +# 1869 +using ::expf; +# 1872 +using ::expl; +# 1876 +using ::fabsf; +# 1879 +using ::fabsl; +# 1883 +using ::floorf; +# 1886 +using ::floorl; +# 1890 +using ::fmodf; +# 1893 +using ::fmodl; +# 1897 +using ::frexpf; +# 1900 +using ::frexpl; +# 1904 +using ::ldexpf; +# 1907 +using ::ldexpl; +# 1911 +using ::logf; +# 1914 +using ::logl; +# 1918 +using ::log10f; +# 1921 +using ::log10l; +# 1925 +using ::modff; +# 1928 +using ::modfl; +# 1932 +using ::powf; +# 1935 +using ::powl; +# 1939 +using ::sinf; +# 1942 +using ::sinl; +# 1946 +using ::sinhf; +# 1949 +using ::sinhl; +# 1953 +using ::sqrtf; +# 1956 +using ::sqrtl; +# 1960 +using ::tanf; +# 1963 +using ::tanl; +# 1967 +using ::tanhf; +# 1970 +using ::tanhl; +# 2085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +using ::double_t; +# 2086 +using ::float_t; +# 2090 +using ::acosh; +# 2091 +using ::acoshf; +# 2092 +using ::acoshl; +# 2094 +using ::asinh; +# 2095 +using ::asinhf; +# 2096 +using ::asinhl; +# 2098 +using ::atanh; +# 2099 +using ::atanhf; +# 2100 +using ::atanhl; +# 2102 +using ::cbrt; +# 2103 +using ::cbrtf; +# 2104 +using ::cbrtl; +# 2106 +using ::copysign; +# 2107 +using ::copysignf; +# 2108 +using ::copysignl; +# 2110 +using ::erf; +# 2111 +using ::erff; +# 2112 +using ::erfl; +# 2114 +using ::erfc; +# 2115 +using ::erfcf; +# 2116 +using ::erfcl; +# 2118 +using ::exp2; +# 2119 +using ::exp2f; +# 2120 +using ::exp2l; +# 2122 +using ::expm1; +# 2123 +using ::expm1f; +# 2124 +using ::expm1l; +# 2126 +using ::fdim; +# 2127 +using ::fdimf; +# 2128 +using ::fdiml; +# 2130 +using ::fma; +# 2131 +using ::fmaf; +# 2132 +using ::fmal; +# 2134 +using ::fmax; +# 2135 +using ::fmaxf; +# 2136 +using ::fmaxl; +# 2138 +using ::fmin; +# 2139 +using ::fminf; +# 2140 +using ::fminl; +# 2142 +using ::hypot; +# 2143 +using ::hypotf; +# 2144 +using ::hypotl; +# 2146 +using ::ilogb; +# 2147 +using ::ilogbf; +# 2148 +using ::ilogbl; +# 2150 +using ::lgamma; +# 2151 +using ::lgammaf; +# 2152 +using ::lgammal; +# 2155 +using ::llrint; +# 2156 +using ::llrintf; +# 2157 +using ::llrintl; +# 2159 +using ::llround; +# 2160 +using ::llroundf; +# 2161 +using ::llroundl; +# 2164 +using ::log1p; +# 2165 +using ::log1pf; +# 2166 +using ::log1pl; +# 2168 +using ::log2; +# 2169 +using ::log2f; +# 2170 +using ::log2l; +# 2172 +using ::logb; +# 2173 +using ::logbf; +# 2174 +using ::logbl; +# 2176 +using ::lrint; +# 2177 +using ::lrintf; +# 2178 +using ::lrintl; +# 2180 +using ::lround; +# 2181 +using ::lroundf; +# 2182 +using ::lroundl; +# 2184 +using ::nan; +# 2185 +using ::nanf; +# 2186 +using ::nanl; +# 2188 +using ::nearbyint; +# 2189 +using ::nearbyintf; +# 2190 +using ::nearbyintl; +# 2192 +using ::nextafter; +# 2193 +using ::nextafterf; +# 2194 +using ::nextafterl; +# 2196 +using ::nexttoward; +# 2197 +using ::nexttowardf; +# 2198 +using ::nexttowardl; +# 2200 +using ::remainder; +# 2201 +using ::remainderf; +# 2202 +using ::remainderl; +# 2204 +using ::remquo; +# 2205 +using ::remquof; +# 2206 +using ::remquol; +# 2208 +using ::rint; +# 2209 +using ::rintf; +# 2210 +using ::rintl; +# 2212 +using ::round; +# 2213 +using ::roundf; +# 2214 +using ::roundl; +# 2216 +using ::scalbln; +# 2217 +using ::scalblnf; +# 2218 +using ::scalblnl; +# 2220 +using ::scalbn; +# 2221 +using ::scalbnf; +# 2222 +using ::scalbnl; +# 2224 +using ::tgamma; +# 2225 +using ::tgammaf; +# 2226 +using ::tgammal; +# 2228 +using ::trunc; +# 2229 +using ::truncf; +# 2230 +using ::truncl; +# 2235 +constexpr float acosh(float __x) +# 2236 +{ return __builtin_acoshf(__x); } +# 2239 +constexpr long double acosh(long double __x) +# 2240 +{ return __builtin_acoshl(__x); } +# 2244 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2247 +acosh(_Tp __x) +# 2248 +{ return __builtin_acosh(__x); } +# 2253 +constexpr float asinh(float __x) +# 2254 +{ return __builtin_asinhf(__x); } +# 2257 +constexpr long double asinh(long double __x) +# 2258 +{ return __builtin_asinhl(__x); } +# 2262 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2265 +asinh(_Tp __x) +# 2266 +{ return __builtin_asinh(__x); } +# 2271 +constexpr float atanh(float __x) +# 2272 +{ return __builtin_atanhf(__x); } +# 2275 +constexpr long double atanh(long double __x) +# 2276 +{ return __builtin_atanhl(__x); } +# 2280 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2283 +atanh(_Tp __x) +# 2284 +{ return __builtin_atanh(__x); } +# 2289 +constexpr float cbrt(float __x) +# 2290 +{ return __builtin_cbrtf(__x); } +# 2293 +constexpr long double cbrt(long double __x) +# 2294 +{ return __builtin_cbrtl(__x); } +# 2298 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2301 +cbrt(_Tp __x) +# 2302 +{ return __builtin_cbrt(__x); } +# 2307 +constexpr float copysign(float __x, float __y) +# 2308 +{ return __builtin_copysignf(__x, __y); } +# 2311 +constexpr long double copysign(long double __x, long double __y) +# 2312 +{ return __builtin_copysignl(__x, __y); } +# 2317 +constexpr float erf(float __x) +# 2318 +{ return __builtin_erff(__x); } +# 2321 +constexpr long double erf(long double __x) +# 2322 +{ return __builtin_erfl(__x); } +# 2326 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2329 +erf(_Tp __x) +# 2330 +{ return __builtin_erf(__x); } +# 2335 +constexpr float erfc(float __x) +# 2336 +{ return __builtin_erfcf(__x); } +# 2339 +constexpr long double erfc(long double __x) +# 2340 +{ return __builtin_erfcl(__x); } +# 2344 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2347 +erfc(_Tp __x) +# 2348 +{ return __builtin_erfc(__x); } +# 2353 +constexpr float exp2(float __x) +# 2354 +{ return __builtin_exp2f(__x); } +# 2357 +constexpr long double exp2(long double __x) +# 2358 +{ return __builtin_exp2l(__x); } +# 2362 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2365 +exp2(_Tp __x) +# 2366 +{ return __builtin_exp2(__x); } +# 2371 +constexpr float expm1(float __x) +# 2372 +{ return __builtin_expm1f(__x); } +# 2375 +constexpr long double expm1(long double __x) +# 2376 +{ return __builtin_expm1l(__x); } +# 2380 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2383 +expm1(_Tp __x) +# 2384 +{ return __builtin_expm1(__x); } +# 2389 +constexpr float fdim(float __x, float __y) +# 2390 +{ return __builtin_fdimf(__x, __y); } +# 2393 +constexpr long double fdim(long double __x, long double __y) +# 2394 +{ return __builtin_fdiml(__x, __y); } +# 2399 +constexpr float fma(float __x, float __y, float __z) +# 2400 +{ return __builtin_fmaf(__x, __y, __z); } +# 2403 +constexpr long double fma(long double __x, long double __y, long double __z) +# 2404 +{ return __builtin_fmal(__x, __y, __z); } +# 2409 +constexpr float fmax(float __x, float __y) +# 2410 +{ return __builtin_fmaxf(__x, __y); } +# 2413 +constexpr long double fmax(long double __x, long double __y) +# 2414 +{ return __builtin_fmaxl(__x, __y); } +# 2419 +constexpr float fmin(float __x, float __y) +# 2420 +{ return __builtin_fminf(__x, __y); } +# 2423 +constexpr long double fmin(long double __x, long double __y) +# 2424 +{ return __builtin_fminl(__x, __y); } +# 2429 +constexpr float hypot(float __x, float __y) +# 2430 +{ return __builtin_hypotf(__x, __y); } +# 2433 +constexpr long double hypot(long double __x, long double __y) +# 2434 +{ return __builtin_hypotl(__x, __y); } +# 2439 +constexpr int ilogb(float __x) +# 2440 +{ return __builtin_ilogbf(__x); } +# 2443 +constexpr int ilogb(long double __x) +# 2444 +{ return __builtin_ilogbl(__x); } +# 2448 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, int> ::__type +# 2452 +ilogb(_Tp __x) +# 2453 +{ return __builtin_ilogb(__x); } +# 2458 +constexpr float lgamma(float __x) +# 2459 +{ return __builtin_lgammaf(__x); } +# 2462 +constexpr long double lgamma(long double __x) +# 2463 +{ return __builtin_lgammal(__x); } +# 2467 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2470 +lgamma(_Tp __x) +# 2471 +{ return __builtin_lgamma(__x); } +# 2476 +constexpr long long llrint(float __x) +# 2477 +{ return __builtin_llrintf(__x); } +# 2480 +constexpr long long llrint(long double __x) +# 2481 +{ return __builtin_llrintl(__x); } +# 2485 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long long> ::__type +# 2488 +llrint(_Tp __x) +# 2489 +{ return __builtin_llrint(__x); } +# 2494 +constexpr long long llround(float __x) +# 2495 +{ return __builtin_llroundf(__x); } +# 2498 +constexpr long long llround(long double __x) +# 2499 +{ return __builtin_llroundl(__x); } +# 2503 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long long> ::__type +# 2506 +llround(_Tp __x) +# 2507 +{ return __builtin_llround(__x); } +# 2512 +constexpr float log1p(float __x) +# 2513 +{ return __builtin_log1pf(__x); } +# 2516 +constexpr long double log1p(long double __x) +# 2517 +{ return __builtin_log1pl(__x); } +# 2521 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2524 +log1p(_Tp __x) +# 2525 +{ return __builtin_log1p(__x); } +# 2531 +constexpr float log2(float __x) +# 2532 +{ return __builtin_log2f(__x); } +# 2535 +constexpr long double log2(long double __x) +# 2536 +{ return __builtin_log2l(__x); } +# 2540 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2543 +log2(_Tp __x) +# 2544 +{ return __builtin_log2(__x); } +# 2549 +constexpr float logb(float __x) +# 2550 +{ return __builtin_logbf(__x); } +# 2553 +constexpr long double logb(long double __x) +# 2554 +{ return __builtin_logbl(__x); } +# 2558 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2561 +logb(_Tp __x) +# 2562 +{ return __builtin_logb(__x); } +# 2567 +constexpr long lrint(float __x) +# 2568 +{ return __builtin_lrintf(__x); } +# 2571 +constexpr long lrint(long double __x) +# 2572 +{ return __builtin_lrintl(__x); } +# 2576 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long> ::__type +# 2579 +lrint(_Tp __x) +# 2580 +{ return __builtin_lrint(__x); } +# 2585 +constexpr long lround(float __x) +# 2586 +{ return __builtin_lroundf(__x); } +# 2589 +constexpr long lround(long double __x) +# 2590 +{ return __builtin_lroundl(__x); } +# 2594 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long> ::__type +# 2597 +lround(_Tp __x) +# 2598 +{ return __builtin_lround(__x); } +# 2603 +constexpr float nearbyint(float __x) +# 2604 +{ return __builtin_nearbyintf(__x); } +# 2607 +constexpr long double nearbyint(long double __x) +# 2608 +{ return __builtin_nearbyintl(__x); } +# 2612 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2615 +nearbyint(_Tp __x) +# 2616 +{ return __builtin_nearbyint(__x); } +# 2621 +constexpr float nextafter(float __x, float __y) +# 2622 +{ return __builtin_nextafterf(__x, __y); } +# 2625 +constexpr long double nextafter(long double __x, long double __y) +# 2626 +{ return __builtin_nextafterl(__x, __y); } +# 2631 +constexpr float nexttoward(float __x, long double __y) +# 2632 +{ return __builtin_nexttowardf(__x, __y); } +# 2635 +constexpr long double nexttoward(long double __x, long double __y) +# 2636 +{ return __builtin_nexttowardl(__x, __y); } +# 2640 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2643 +nexttoward(_Tp __x, long double __y) +# 2644 +{ return __builtin_nexttoward(__x, __y); } +# 2649 +constexpr float remainder(float __x, float __y) +# 2650 +{ return __builtin_remainderf(__x, __y); } +# 2653 +constexpr long double remainder(long double __x, long double __y) +# 2654 +{ return __builtin_remainderl(__x, __y); } +# 2659 +inline float remquo(float __x, float __y, int *__pquo) +# 2660 +{ return __builtin_remquof(__x, __y, __pquo); } +# 2663 +inline long double remquo(long double __x, long double __y, int *__pquo) +# 2664 +{ return __builtin_remquol(__x, __y, __pquo); } +# 2669 +constexpr float rint(float __x) +# 2670 +{ return __builtin_rintf(__x); } +# 2673 +constexpr long double rint(long double __x) +# 2674 +{ return __builtin_rintl(__x); } +# 2678 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2681 +rint(_Tp __x) +# 2682 +{ return __builtin_rint(__x); } +# 2687 +constexpr float round(float __x) +# 2688 +{ return __builtin_roundf(__x); } +# 2691 +constexpr long double round(long double __x) +# 2692 +{ return __builtin_roundl(__x); } +# 2696 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2699 +round(_Tp __x) +# 2700 +{ return __builtin_round(__x); } +# 2705 +constexpr float scalbln(float __x, long __ex) +# 2706 +{ return __builtin_scalblnf(__x, __ex); } +# 2709 +constexpr long double scalbln(long double __x, long __ex) +# 2710 +{ return __builtin_scalblnl(__x, __ex); } +# 2714 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2717 +scalbln(_Tp __x, long __ex) +# 2718 +{ return __builtin_scalbln(__x, __ex); } +# 2723 +constexpr float scalbn(float __x, int __ex) +# 2724 +{ return __builtin_scalbnf(__x, __ex); } +# 2727 +constexpr long double scalbn(long double __x, int __ex) +# 2728 +{ return __builtin_scalbnl(__x, __ex); } +# 2732 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2735 +scalbn(_Tp __x, int __ex) +# 2736 +{ return __builtin_scalbn(__x, __ex); } +# 2741 +constexpr float tgamma(float __x) +# 2742 +{ return __builtin_tgammaf(__x); } +# 2745 +constexpr long double tgamma(long double __x) +# 2746 +{ return __builtin_tgammal(__x); } +# 2750 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2753 +tgamma(_Tp __x) +# 2754 +{ return __builtin_tgamma(__x); } +# 2759 +constexpr float trunc(float __x) +# 2760 +{ return __builtin_truncf(__x); } +# 2763 +constexpr long double trunc(long double __x) +# 2764 +{ return __builtin_truncl(__x); } +# 2768 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2771 +trunc(_Tp __x) +# 2772 +{ return __builtin_trunc(__x); } +# 3682 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3684 +copysign(_Tp __x, _Up __y) +# 3685 +{ +# 3686 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3687 +return copysign((__type)__x, (__type)__y); +# 3688 +} +# 3690 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3692 +fdim(_Tp __x, _Up __y) +# 3693 +{ +# 3694 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3695 +return fdim((__type)__x, (__type)__y); +# 3696 +} +# 3698 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3700 +fmax(_Tp __x, _Up __y) +# 3701 +{ +# 3702 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3703 +return fmax((__type)__x, (__type)__y); +# 3704 +} +# 3706 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3708 +fmin(_Tp __x, _Up __y) +# 3709 +{ +# 3710 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3711 +return fmin((__type)__x, (__type)__y); +# 3712 +} +# 3714 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3716 +hypot(_Tp __x, _Up __y) +# 3717 +{ +# 3718 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3719 +return hypot((__type)__x, (__type)__y); +# 3720 +} +# 3722 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3724 +nextafter(_Tp __x, _Up __y) +# 3725 +{ +# 3726 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3727 +return nextafter((__type)__x, (__type)__y); +# 3728 +} +# 3730 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3732 +remainder(_Tp __x, _Up __y) +# 3733 +{ +# 3734 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3735 +return remainder((__type)__x, (__type)__y); +# 3736 +} +# 3738 +template< class _Tp, class _Up> inline typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3740 +remquo(_Tp __x, _Up __y, int *__pquo) +# 3741 +{ +# 3742 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3743 +return remquo((__type)__x, (__type)__y, __pquo); +# 3744 +} +# 3746 +template< class _Tp, class _Up, class _Vp> constexpr typename __gnu_cxx::__promote_3< _Tp, _Up, _Vp> ::__type +# 3748 +fma(_Tp __x, _Up __y, _Vp __z) +# 3749 +{ +# 3750 +typedef typename __gnu_cxx::__promote_3< _Tp, _Up, _Vp> ::__type __type; +# 3751 +return fma((__type)__x, (__type)__y, (__type)__z); +# 3752 +} +# 3760 +template< class _Tp> inline _Tp +# 3762 +__hypot3(_Tp __x, _Tp __y, _Tp __z) +# 3763 +{ +# 3764 +__x = std::abs(__x); +# 3765 +__y = std::abs(__y); +# 3766 +__z = std::abs(__z); +# 3767 +if (_Tp __a = (__x < __y) ? (__y < __z) ? __z : __y : ((__x < __z) ? __z : __x)) { +# 3768 +return __a * std::sqrt((((__x / __a) * (__x / __a)) + ((__y / __a) * (__y / __a))) + ((__z / __a) * (__z / __a))); } else { +# 3772 +return {}; } +# 3773 +} +# 3776 +inline float hypot(float __x, float __y, float __z) +# 3777 +{ return std::__hypot3< float> (__x, __y, __z); } +# 3780 +inline double hypot(double __x, double __y, double __z) +# 3781 +{ return std::__hypot3< double> (__x, __y, __z); } +# 3784 +inline long double hypot(long double __x, long double __y, long double __z) +# 3785 +{ return std::__hypot3< long double> (__x, __y, __z); } +# 3787 +template< class _Tp, class _Up, class _Vp> __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> +# 3789 +hypot(_Tp __x, _Up __y, _Vp __z) +# 3790 +{ +# 3791 +using __type = __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> ; +# 3792 +return std::__hypot3< __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> > (__x, __y, __z); +# 3793 +} +# 3903 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +} +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 49 +void __throw_bad_exception() __attribute((__noreturn__)); +# 53 +void __throw_bad_alloc() __attribute((__noreturn__)); +# 56 +void __throw_bad_array_new_length() __attribute((__noreturn__)); +# 60 +void __throw_bad_cast() __attribute((__noreturn__, __cold__)); +# 63 +void __throw_bad_typeid() __attribute((__noreturn__, __cold__)); +# 67 +void __throw_logic_error(const char *) __attribute((__noreturn__, __cold__)); +# 70 +void __throw_domain_error(const char *) __attribute((__noreturn__, __cold__)); +# 73 +void __throw_invalid_argument(const char *) __attribute((__noreturn__, __cold__)); +# 76 +void __throw_length_error(const char *) __attribute((__noreturn__, __cold__)); +# 79 +void __throw_out_of_range(const char *) __attribute((__noreturn__, __cold__)); +# 82 +void __throw_out_of_range_fmt(const char *, ...) __attribute((__noreturn__, __cold__)) +# 83 + __attribute((__format__(__gnu_printf__, 1, 2))); +# 86 +void __throw_runtime_error(const char *) __attribute((__noreturn__, __cold__)); +# 89 +void __throw_range_error(const char *) __attribute((__noreturn__, __cold__)); +# 92 +void __throw_overflow_error(const char *) __attribute((__noreturn__, __cold__)); +# 95 +void __throw_underflow_error(const char *) __attribute((__noreturn__, __cold__)); +# 99 +void __throw_ios_failure(const char *) __attribute((__noreturn__, __cold__)); +# 102 +void __throw_ios_failure(const char *, int) __attribute((__noreturn__, __cold__)); +# 106 +void __throw_system_error(int) __attribute((__noreturn__, __cold__)); +# 110 +void __throw_future_error(int) __attribute((__noreturn__, __cold__)); +# 114 +void __throw_bad_function_call() __attribute((__noreturn__, __cold__)); +# 141 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +template< class _Tp> +# 51 +struct __is_integer_nonstrict : public std::__is_integer< _Tp> { +# 54 +using std::__is_integer< _Tp> ::__value; +# 57 +enum { __width = (__value) ? sizeof(_Tp) * (8) : (0)}; +# 58 +}; +# 60 +template< class _Value> +# 61 +struct __numeric_traits_integer { +# 64 +static_assert((__is_integer_nonstrict< _Value> ::__value), "invalid specialization"); +# 70 +static const bool __is_signed = (((_Value)(-1)) < 0); +# 71 +static const int __digits = (__is_integer_nonstrict< _Value> ::__width - __is_signed); +# 75 +static const _Value __max = (__is_signed ? (((((_Value)1) << (__digits - 1)) - 1) << 1) + 1 : (~((_Value)0))); +# 78 +static const _Value __min = (__is_signed ? (-__max) - 1 : ((_Value)0)); +# 79 +}; +# 81 +template< class _Value> const _Value __numeric_traits_integer< _Value> ::__min; +# 84 +template< class _Value> const _Value __numeric_traits_integer< _Value> ::__max; +# 87 +template< class _Value> const bool __numeric_traits_integer< _Value> ::__is_signed; +# 90 +template< class _Value> const int __numeric_traits_integer< _Value> ::__digits; +# 137 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +template< class _Tp> using __int_traits = __numeric_traits_integer< _Tp> ; +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +template< class _Value> +# 158 +struct __numeric_traits_floating { +# 161 +static const int __max_digits10 = ((2) + ((((std::template __are_same< _Value, float> ::__value) ? 24 : ((std::template __are_same< _Value, double> ::__value) ? 53 : 64)) * 643L) / (2136))); +# 164 +static const bool __is_signed = true; +# 165 +static const int __digits10 = ((std::template __are_same< _Value, float> ::__value) ? 6 : ((std::template __are_same< _Value, double> ::__value) ? 15 : 18)); +# 166 +static const int __max_exponent10 = ((std::template __are_same< _Value, float> ::__value) ? 38 : ((std::template __are_same< _Value, double> ::__value) ? 308 : 4932)); +# 167 +}; +# 169 +template< class _Value> const int __numeric_traits_floating< _Value> ::__max_digits10; +# 172 +template< class _Value> const bool __numeric_traits_floating< _Value> ::__is_signed; +# 175 +template< class _Value> const int __numeric_traits_floating< _Value> ::__digits10; +# 178 +template< class _Value> const int __numeric_traits_floating< _Value> ::__max_exponent10; +# 186 +template< class _Value> +# 187 +struct __numeric_traits : public __numeric_traits_integer< _Value> { +# 189 +}; +# 192 +template<> struct __numeric_traits< float> : public __numeric_traits_floating< float> { +# 194 +}; +# 197 +template<> struct __numeric_traits< double> : public __numeric_traits_floating< double> { +# 199 +}; +# 202 +template<> struct __numeric_traits< long double> : public __numeric_traits_floating< long double> { +# 204 +}; +# 239 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +} +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +namespace std __attribute((__visibility__("default"))) { +# 69 +template< class _Tp> class reference_wrapper; +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp, _Tp __v> +# 87 +struct integral_constant { +# 89 +static constexpr inline _Tp value = (__v); +# 90 +using value_type = _Tp; +# 91 +using type = integral_constant; +# 92 +constexpr operator value_type() const noexcept { return value; } +# 95 +constexpr value_type operator()() const noexcept { return value; } +# 97 +}; +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< bool __v> using __bool_constant = integral_constant< bool, __v> ; +# 111 +using true_type = __bool_constant< true> ; +# 114 +using false_type = __bool_constant< false> ; +# 119 +template< bool __v> using bool_constant = __bool_constant< __v> ; +# 127 +template< bool , class _Tp = void> +# 128 +struct enable_if { +# 129 +}; +# 132 +template< class _Tp> +# 133 +struct enable_if< true, _Tp> { +# 134 +using type = _Tp; }; +# 137 +template< bool _Cond, class _Tp = void> using __enable_if_t = typename enable_if< _Cond, _Tp> ::type; +# 140 +template< bool > +# 141 +struct __conditional { +# 143 +template< class _Tp, class > using type = _Tp; +# 145 +}; +# 148 +template<> struct __conditional< false> { +# 150 +template< class , class _Up> using type = _Up; +# 152 +}; +# 155 +template< bool _Cond, class _If, class _Else> using __conditional_t = typename __conditional< _Cond> ::template type< _If, _Else> ; +# 160 +template< class _Type> +# 161 +struct __type_identity { +# 162 +using type = _Type; }; +# 164 +template< class _Tp> using __type_identity_t = typename __type_identity< _Tp> ::type; +# 167 +namespace __detail { +# 170 +template< class _Tp, class ...> using __first_t = _Tp; +# 174 +template< class ..._Bn> auto __or_fn(int)->__first_t< integral_constant< bool, false> , __enable_if_t< !((bool)_Bn::value)> ...> ; +# 178 +template< class ..._Bn> auto __or_fn(...)->true_type; +# 181 +template< class ..._Bn> auto __and_fn(int)->__first_t< integral_constant< bool, true> , __enable_if_t< (bool)_Bn::value> ...> ; +# 185 +template< class ..._Bn> auto __and_fn(...)->false_type; +# 187 +} +# 192 +template< class ..._Bn> +# 193 +struct __or_ : public __decltype((__detail::__or_fn< _Bn...> (0))) { +# 195 +}; +# 197 +template< class ..._Bn> +# 198 +struct __and_ : public __decltype((__detail::__and_fn< _Bn...> (0))) { +# 200 +}; +# 202 +template< class _Pp> +# 203 +struct __not_ : public __bool_constant< !((bool)_Pp::value)> { +# 205 +}; +# 211 +template< class ..._Bn> constexpr inline bool +# 212 +__or_v = (__or_< _Bn...> ::value); +# 213 +template< class ..._Bn> constexpr inline bool +# 214 +__and_v = (__and_< _Bn...> ::value); +# 216 +namespace __detail { +# 218 +template< class , class _B1, class ..._Bn> +# 219 +struct __disjunction_impl { +# 220 +using type = _B1; }; +# 222 +template< class _B1, class _B2, class ..._Bn> +# 223 +struct __disjunction_impl< __enable_if_t< !((bool)_B1::value)> , _B1, _B2, _Bn...> { +# 224 +using type = typename __detail::__disjunction_impl< void, _B2, _Bn...> ::type; }; +# 226 +template< class , class _B1, class ..._Bn> +# 227 +struct __conjunction_impl { +# 228 +using type = _B1; }; +# 230 +template< class _B1, class _B2, class ..._Bn> +# 231 +struct __conjunction_impl< __enable_if_t< (bool)_B1::value> , _B1, _B2, _Bn...> { +# 232 +using type = typename __detail::__conjunction_impl< void, _B2, _Bn...> ::type; }; +# 233 +} +# 236 +template< class ..._Bn> +# 237 +struct conjunction : public __detail::__conjunction_impl< void, _Bn...> ::type { +# 239 +}; +# 242 +template<> struct conjunction< > : public true_type { +# 244 +}; +# 246 +template< class ..._Bn> +# 247 +struct disjunction : public __detail::__disjunction_impl< void, _Bn...> ::type { +# 249 +}; +# 252 +template<> struct disjunction< > : public false_type { +# 254 +}; +# 256 +template< class _Pp> +# 257 +struct negation : public __not_< _Pp> ::type { +# 259 +}; +# 264 +template< class ..._Bn> constexpr inline bool +# 265 +conjunction_v = (conjunction< _Bn...> ::value); +# 267 +template< class ..._Bn> constexpr inline bool +# 268 +disjunction_v = (disjunction< _Bn...> ::value); +# 270 +template< class _Pp> constexpr inline bool +# 271 +negation_v = (negation< _Pp> ::value); +# 277 +template< class > struct is_reference; +# 279 +template< class > struct is_function; +# 281 +template< class > struct is_void; +# 283 +template< class > struct remove_cv; +# 285 +template< class > struct is_const; +# 289 +template< class > struct __is_array_unknown_bounds; +# 295 +template< class _Tp, size_t = sizeof(_Tp)> constexpr true_type +# 296 +__is_complete_or_unbounded(__type_identity< _Tp> ) +# 297 +{ return {}; } +# 299 +template< class _TypeIdentity, class +# 300 +_NestedType = typename _TypeIdentity::type> constexpr typename __or_< is_reference< _NestedType> , is_function< _NestedType> , is_void< _NestedType> , __is_array_unknown_bounds< _NestedType> > ::type +# 306 +__is_complete_or_unbounded(_TypeIdentity) +# 307 +{ return {}; } +# 310 +template< class _Tp> using __remove_cv_t = typename remove_cv< _Tp> ::type; +# 317 +template< class _Tp> +# 318 +struct is_void : public false_type { +# 319 +}; +# 322 +template<> struct is_void< void> : public true_type { +# 323 +}; +# 326 +template<> struct is_void< const void> : public true_type { +# 327 +}; +# 330 +template<> struct is_void< volatile void> : public true_type { +# 331 +}; +# 334 +template<> struct is_void< const volatile void> : public true_type { +# 335 +}; +# 338 +template< class > +# 339 +struct __is_integral_helper : public false_type { +# 340 +}; +# 343 +template<> struct __is_integral_helper< bool> : public true_type { +# 344 +}; +# 347 +template<> struct __is_integral_helper< char> : public true_type { +# 348 +}; +# 351 +template<> struct __is_integral_helper< signed char> : public true_type { +# 352 +}; +# 355 +template<> struct __is_integral_helper< unsigned char> : public true_type { +# 356 +}; +# 362 +template<> struct __is_integral_helper< wchar_t> : public true_type { +# 363 +}; +# 372 +template<> struct __is_integral_helper< char16_t> : public true_type { +# 373 +}; +# 376 +template<> struct __is_integral_helper< char32_t> : public true_type { +# 377 +}; +# 380 +template<> struct __is_integral_helper< short> : public true_type { +# 381 +}; +# 384 +template<> struct __is_integral_helper< unsigned short> : public true_type { +# 385 +}; +# 388 +template<> struct __is_integral_helper< int> : public true_type { +# 389 +}; +# 392 +template<> struct __is_integral_helper< unsigned> : public true_type { +# 393 +}; +# 396 +template<> struct __is_integral_helper< long> : public true_type { +# 397 +}; +# 400 +template<> struct __is_integral_helper< unsigned long> : public true_type { +# 401 +}; +# 404 +template<> struct __is_integral_helper< long long> : public true_type { +# 405 +}; +# 408 +template<> struct __is_integral_helper< unsigned long long> : public true_type { +# 409 +}; +# 416 +template<> struct __is_integral_helper< __int128> : public true_type { +# 417 +}; +# 421 +template<> struct __is_integral_helper< unsigned __int128> : public true_type { +# 422 +}; +# 460 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 461 +struct is_integral : public __is_integral_helper< __remove_cv_t< _Tp> > ::type { +# 463 +}; +# 466 +template< class > +# 467 +struct __is_floating_point_helper : public false_type { +# 468 +}; +# 471 +template<> struct __is_floating_point_helper< float> : public true_type { +# 472 +}; +# 475 +template<> struct __is_floating_point_helper< double> : public true_type { +# 476 +}; +# 479 +template<> struct __is_floating_point_helper< long double> : public true_type { +# 480 +}; +# 514 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template<> struct __is_floating_point_helper< __float128> : public true_type { +# 515 +}; +# 520 +template< class _Tp> +# 521 +struct is_floating_point : public __is_floating_point_helper< __remove_cv_t< _Tp> > ::type { +# 523 +}; +# 527 +template< class _Tp> +# 528 +struct is_array : public __bool_constant< __is_array(_Tp)> { +# 530 +}; +# 545 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class > +# 546 +struct __is_pointer_helper : public false_type { +# 547 +}; +# 549 +template< class _Tp> +# 550 +struct __is_pointer_helper< _Tp *> : public true_type { +# 551 +}; +# 554 +template< class _Tp> +# 555 +struct is_pointer : public __is_pointer_helper< __remove_cv_t< _Tp> > ::type { +# 557 +}; +# 560 +template< class > +# 561 +struct is_lvalue_reference : public false_type { +# 562 +}; +# 564 +template< class _Tp> +# 565 +struct is_lvalue_reference< _Tp &> : public true_type { +# 566 +}; +# 569 +template< class > +# 570 +struct is_rvalue_reference : public false_type { +# 571 +}; +# 573 +template< class _Tp> +# 574 +struct is_rvalue_reference< _Tp &&> : public true_type { +# 575 +}; +# 579 +template< class _Tp> +# 580 +struct is_member_object_pointer : public __bool_constant< __is_member_object_pointer(_Tp)> { +# 582 +}; +# 601 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 602 +struct is_member_function_pointer : public __bool_constant< __is_member_function_pointer(_Tp)> { +# 604 +}; +# 622 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 623 +struct is_enum : public __bool_constant< __is_enum(_Tp)> { +# 625 +}; +# 628 +template< class _Tp> +# 629 +struct is_union : public __bool_constant< __is_union(_Tp)> { +# 631 +}; +# 634 +template< class _Tp> +# 635 +struct is_class : public __bool_constant< __is_class(_Tp)> { +# 637 +}; +# 641 +template< class _Tp> +# 642 +struct is_function : public __bool_constant< __is_function(_Tp)> { +# 644 +}; +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 662 +struct is_null_pointer : public false_type { +# 663 +}; +# 666 +template<> struct is_null_pointer< __decltype((nullptr))> : public true_type { +# 667 +}; +# 670 +template<> struct is_null_pointer< const __decltype((nullptr))> : public true_type { +# 671 +}; +# 674 +template<> struct is_null_pointer< volatile __decltype((nullptr))> : public true_type { +# 675 +}; +# 678 +template<> struct is_null_pointer< const volatile __decltype((nullptr))> : public true_type { +# 679 +}; +# 683 +template< class _Tp> +# 684 +struct __is_nullptr_t : public is_null_pointer< _Tp> { +# 686 +} __attribute((__deprecated__("use \'std::is_null_pointer\' instead"))); +# 693 +template< class _Tp> +# 694 +struct is_reference : public __bool_constant< __is_reference(_Tp)> { +# 696 +}; +# 715 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 716 +struct is_arithmetic : public __or_< is_integral< _Tp> , is_floating_point< _Tp> > ::type { +# 718 +}; +# 721 +template< class _Tp> +# 722 +struct is_fundamental : public __or_< is_arithmetic< _Tp> , is_void< _Tp> , is_null_pointer< _Tp> > ::type { +# 725 +}; +# 729 +template< class _Tp> +# 730 +struct is_object : public __bool_constant< __is_object(_Tp)> { +# 732 +}; +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class > struct is_member_pointer; +# 745 +template< class _Tp> +# 746 +struct is_scalar : public __or_< is_arithmetic< _Tp> , is_enum< _Tp> , is_pointer< _Tp> , is_member_pointer< _Tp> , is_null_pointer< _Tp> > ::type { +# 749 +}; +# 752 +template< class _Tp> +# 753 +struct is_compound : public __bool_constant< !is_fundamental< _Tp> ::value> { +# 754 +}; +# 758 +template< class _Tp> +# 759 +struct is_member_pointer : public __bool_constant< __is_member_pointer(_Tp)> { +# 761 +}; +# 779 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class , class > struct is_same; +# 783 +template< class _Tp, class ..._Types> using __is_one_of = __or_< is_same< _Tp, _Types> ...> ; +# 788 +template< class _Tp> using __is_signed_integer = __is_one_of< __remove_cv_t< _Tp> , signed char, signed short, signed int, signed long, signed long long, signed __int128> ; +# 808 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> using __is_unsigned_integer = __is_one_of< __remove_cv_t< _Tp> , unsigned char, unsigned short, unsigned, unsigned long, unsigned long long, unsigned __int128> ; +# 827 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> using __is_standard_integer = __or_< __is_signed_integer< _Tp> , __is_unsigned_integer< _Tp> > ; +# 832 +template< class ...> using __void_t = void; +# 838 +template< class > +# 839 +struct is_const : public false_type { +# 840 +}; +# 842 +template< class _Tp> +# 843 +struct is_const< const _Tp> : public true_type { +# 844 +}; +# 847 +template< class > +# 848 +struct is_volatile : public false_type { +# 849 +}; +# 851 +template< class _Tp> +# 852 +struct is_volatile< volatile _Tp> : public true_type { +# 853 +}; +# 856 +template< class _Tp> +# 857 +struct is_trivial : public __bool_constant< __is_trivial(_Tp)> { +# 860 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 862 +}; +# 865 +template< class _Tp> +# 866 +struct is_trivially_copyable : public __bool_constant< __is_trivially_copyable(_Tp)> { +# 869 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 871 +}; +# 874 +template< class _Tp> +# 875 +struct is_standard_layout : public __bool_constant< __is_standard_layout(_Tp)> { +# 878 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 880 +}; +# 887 +template< class _Tp> +# 890 +struct is_pod : public __bool_constant< __is_pod(_Tp)> { +# 893 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 895 +}; +# 901 +template< class _Tp> +# 904 +struct +# 903 + [[__deprecated__]] is_literal_type : public __bool_constant< __is_literal_type(_Tp)> { +# 907 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 909 +}; +# 912 +template< class _Tp> +# 913 +struct is_empty : public __bool_constant< __is_empty(_Tp)> { +# 915 +}; +# 918 +template< class _Tp> +# 919 +struct is_polymorphic : public __bool_constant< __is_polymorphic(_Tp)> { +# 921 +}; +# 926 +template< class _Tp> +# 927 +struct is_final : public __bool_constant< __is_final(_Tp)> { +# 929 +}; +# 933 +template< class _Tp> +# 934 +struct is_abstract : public __bool_constant< __is_abstract(_Tp)> { +# 936 +}; +# 939 +template< class _Tp, bool +# 940 + = is_arithmetic< _Tp> ::value> +# 941 +struct __is_signed_helper : public false_type { +# 942 +}; +# 944 +template< class _Tp> +# 945 +struct __is_signed_helper< _Tp, true> : public __bool_constant< ((_Tp)(-1)) < ((_Tp)0)> { +# 947 +}; +# 951 +template< class _Tp> +# 952 +struct is_signed : public __is_signed_helper< _Tp> ::type { +# 954 +}; +# 957 +template< class _Tp> +# 958 +struct is_unsigned : public __and_< is_arithmetic< _Tp> , __not_< is_signed< _Tp> > > ::type { +# 960 +}; +# 963 +template< class _Tp, class _Up = _Tp &&> _Up __declval(int); +# 967 +template< class _Tp> _Tp __declval(long); +# 972 +template< class _Tp> auto declval() noexcept->__decltype((__declval< _Tp> (0))); +# 975 +template< class > struct remove_all_extents; +# 979 +template< class _Tp> +# 980 +struct __is_array_known_bounds : public false_type { +# 982 +}; +# 984 +template< class _Tp, size_t _Size> +# 985 +struct __is_array_known_bounds< _Tp [_Size]> : public true_type { +# 987 +}; +# 989 +template< class _Tp> +# 990 +struct __is_array_unknown_bounds : public false_type { +# 992 +}; +# 994 +template< class _Tp> +# 995 +struct __is_array_unknown_bounds< _Tp []> : public true_type { +# 997 +}; +# 1006 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +struct __do_is_destructible_impl { +# 1008 +template< class _Tp, class = __decltype((declval< _Tp &> ().~_Tp()))> static true_type __test(int); +# 1011 +template< class > static false_type __test(...); +# 1013 +}; +# 1015 +template< class _Tp> +# 1016 +struct __is_destructible_impl : public __do_is_destructible_impl { +# 1019 +using type = __decltype((__test< _Tp> (0))); +# 1020 +}; +# 1022 +template< class _Tp, bool +# 1023 + = __or_< is_void< _Tp> , __is_array_unknown_bounds< _Tp> , is_function< _Tp> > ::value, bool +# 1026 + = __or_< is_reference< _Tp> , is_scalar< _Tp> > ::value> struct __is_destructible_safe; +# 1029 +template< class _Tp> +# 1030 +struct __is_destructible_safe< _Tp, false, false> : public __is_destructible_impl< typename remove_all_extents< _Tp> ::type> ::type { +# 1033 +}; +# 1035 +template< class _Tp> +# 1036 +struct __is_destructible_safe< _Tp, true, false> : public false_type { +# 1037 +}; +# 1039 +template< class _Tp> +# 1040 +struct __is_destructible_safe< _Tp, false, true> : public true_type { +# 1041 +}; +# 1045 +template< class _Tp> +# 1046 +struct is_destructible : public __is_destructible_safe< _Tp> ::type { +# 1049 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1051 +}; +# 1059 +struct __do_is_nt_destructible_impl { +# 1061 +template< class _Tp> static __bool_constant< noexcept(declval< _Tp &> ().~_Tp())> __test(int); +# 1065 +template< class > static false_type __test(...); +# 1067 +}; +# 1069 +template< class _Tp> +# 1070 +struct __is_nt_destructible_impl : public __do_is_nt_destructible_impl { +# 1073 +using type = __decltype((__test< _Tp> (0))); +# 1074 +}; +# 1076 +template< class _Tp, bool +# 1077 + = __or_< is_void< _Tp> , __is_array_unknown_bounds< _Tp> , is_function< _Tp> > ::value, bool +# 1080 + = __or_< is_reference< _Tp> , is_scalar< _Tp> > ::value> struct __is_nt_destructible_safe; +# 1083 +template< class _Tp> +# 1084 +struct __is_nt_destructible_safe< _Tp, false, false> : public __is_nt_destructible_impl< typename remove_all_extents< _Tp> ::type> ::type { +# 1087 +}; +# 1089 +template< class _Tp> +# 1090 +struct __is_nt_destructible_safe< _Tp, true, false> : public false_type { +# 1091 +}; +# 1093 +template< class _Tp> +# 1094 +struct __is_nt_destructible_safe< _Tp, false, true> : public true_type { +# 1095 +}; +# 1099 +template< class _Tp> +# 1100 +struct is_nothrow_destructible : public __is_nt_destructible_safe< _Tp> ::type { +# 1103 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1105 +}; +# 1108 +template< class _Tp, class ..._Args> using __is_constructible_impl = __bool_constant< __is_constructible(_Tp, _Args...)> ; +# 1114 +template< class _Tp, class ..._Args> +# 1115 +struct is_constructible : public __is_constructible_impl< _Tp, _Args...> { +# 1118 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1120 +}; +# 1123 +template< class _Tp> +# 1124 +struct is_default_constructible : public __is_constructible_impl< _Tp> { +# 1127 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1129 +}; +# 1132 +template< class _Tp, class = void> +# 1133 +struct __add_lvalue_reference_helper { +# 1134 +using type = _Tp; }; +# 1136 +template< class _Tp> +# 1137 +struct __add_lvalue_reference_helper< _Tp, __void_t< _Tp &> > { +# 1138 +using type = _Tp &; }; +# 1140 +template< class _Tp> using __add_lval_ref_t = typename __add_lvalue_reference_helper< _Tp> ::type; +# 1145 +template< class _Tp> +# 1146 +struct is_copy_constructible : public __is_constructible_impl< _Tp, __add_lval_ref_t< const _Tp> > { +# 1149 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1151 +}; +# 1154 +template< class _Tp, class = void> +# 1155 +struct __add_rvalue_reference_helper { +# 1156 +using type = _Tp; }; +# 1158 +template< class _Tp> +# 1159 +struct __add_rvalue_reference_helper< _Tp, __void_t< _Tp &&> > { +# 1160 +using type = _Tp &&; }; +# 1162 +template< class _Tp> using __add_rval_ref_t = typename __add_rvalue_reference_helper< _Tp> ::type; +# 1167 +template< class _Tp> +# 1168 +struct is_move_constructible : public __is_constructible_impl< _Tp, __add_rval_ref_t< _Tp> > { +# 1171 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1173 +}; +# 1176 +template< class _Tp, class ..._Args> using __is_nothrow_constructible_impl = __bool_constant< __is_nothrow_constructible(_Tp, _Args...)> ; +# 1182 +template< class _Tp, class ..._Args> +# 1183 +struct is_nothrow_constructible : public __is_nothrow_constructible_impl< _Tp, _Args...> { +# 1186 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1188 +}; +# 1191 +template< class _Tp> +# 1192 +struct is_nothrow_default_constructible : public __is_nothrow_constructible_impl< _Tp> { +# 1195 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1197 +}; +# 1200 +template< class _Tp> +# 1201 +struct is_nothrow_copy_constructible : public __is_nothrow_constructible_impl< _Tp, __add_lval_ref_t< const _Tp> > { +# 1204 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1206 +}; +# 1209 +template< class _Tp> +# 1210 +struct is_nothrow_move_constructible : public __is_nothrow_constructible_impl< _Tp, __add_rval_ref_t< _Tp> > { +# 1213 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1215 +}; +# 1218 +template< class _Tp, class _Up> using __is_assignable_impl = __bool_constant< __is_assignable(_Tp, _Up)> ; +# 1223 +template< class _Tp, class _Up> +# 1224 +struct is_assignable : public __is_assignable_impl< _Tp, _Up> { +# 1227 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1229 +}; +# 1232 +template< class _Tp> +# 1233 +struct is_copy_assignable : public __is_assignable_impl< __add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> > { +# 1237 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1239 +}; +# 1242 +template< class _Tp> +# 1243 +struct is_move_assignable : public __is_assignable_impl< __add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> > { +# 1246 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1248 +}; +# 1251 +template< class _Tp, class _Up> using __is_nothrow_assignable_impl = __bool_constant< __is_nothrow_assignable(_Tp, _Up)> ; +# 1257 +template< class _Tp, class _Up> +# 1258 +struct is_nothrow_assignable : public __is_nothrow_assignable_impl< _Tp, _Up> { +# 1261 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1263 +}; +# 1266 +template< class _Tp> +# 1267 +struct is_nothrow_copy_assignable : public __is_nothrow_assignable_impl< __add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> > { +# 1271 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1273 +}; +# 1276 +template< class _Tp> +# 1277 +struct is_nothrow_move_assignable : public __is_nothrow_assignable_impl< __add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> > { +# 1281 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1283 +}; +# 1286 +template< class _Tp, class ..._Args> using __is_trivially_constructible_impl = __bool_constant< __is_trivially_constructible(_Tp, _Args...)> ; +# 1292 +template< class _Tp, class ..._Args> +# 1293 +struct is_trivially_constructible : public __is_trivially_constructible_impl< _Tp, _Args...> { +# 1296 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1298 +}; +# 1301 +template< class _Tp> +# 1302 +struct is_trivially_default_constructible : public __is_trivially_constructible_impl< _Tp> { +# 1305 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1307 +}; +# 1319 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +struct __do_is_implicitly_default_constructible_impl { +# 1321 +template< class _Tp> static void __helper(const _Tp &); +# 1324 +template< class _Tp> static true_type __test(const _Tp &, __decltype((__helper< const _Tp &> ({}))) * = 0); +# 1328 +static false_type __test(...); +# 1329 +}; +# 1331 +template< class _Tp> +# 1332 +struct __is_implicitly_default_constructible_impl : public __do_is_implicitly_default_constructible_impl { +# 1335 +using type = __decltype((__test(declval< _Tp> ()))); +# 1336 +}; +# 1338 +template< class _Tp> +# 1339 +struct __is_implicitly_default_constructible_safe : public __is_implicitly_default_constructible_impl< _Tp> ::type { +# 1341 +}; +# 1343 +template< class _Tp> +# 1344 +struct __is_implicitly_default_constructible : public __and_< __is_constructible_impl< _Tp> , __is_implicitly_default_constructible_safe< _Tp> > ::type { +# 1347 +}; +# 1351 +template< class _Tp> +# 1352 +struct is_trivially_copy_constructible : public __is_trivially_constructible_impl< _Tp, __add_lval_ref_t< const _Tp> > { +# 1355 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1357 +}; +# 1360 +template< class _Tp> +# 1361 +struct is_trivially_move_constructible : public __is_trivially_constructible_impl< _Tp, __add_rval_ref_t< _Tp> > { +# 1364 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1366 +}; +# 1369 +template< class _Tp, class _Up> using __is_trivially_assignable_impl = __bool_constant< __is_trivially_assignable(_Tp, _Up)> ; +# 1375 +template< class _Tp, class _Up> +# 1376 +struct is_trivially_assignable : public __is_trivially_assignable_impl< _Tp, _Up> { +# 1379 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1381 +}; +# 1384 +template< class _Tp> +# 1385 +struct is_trivially_copy_assignable : public __is_trivially_assignable_impl< __add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> > { +# 1389 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1391 +}; +# 1394 +template< class _Tp> +# 1395 +struct is_trivially_move_assignable : public __is_trivially_assignable_impl< __add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> > { +# 1399 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1401 +}; +# 1404 +template< class _Tp> +# 1405 +struct is_trivially_destructible : public __and_< __is_destructible_safe< _Tp> , __bool_constant< __has_trivial_destructor(_Tp)> > ::type { +# 1409 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1411 +}; +# 1415 +template< class _Tp> +# 1416 +struct has_virtual_destructor : public __bool_constant< __has_virtual_destructor(_Tp)> { +# 1419 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1421 +}; +# 1427 +template< class _Tp> +# 1428 +struct alignment_of : public integral_constant< unsigned long, __alignof__(_Tp)> { +# 1431 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1433 +}; +# 1436 +template< class > +# 1437 +struct rank : public integral_constant< unsigned long, 0UL> { +# 1438 +}; +# 1440 +template< class _Tp, size_t _Size> +# 1441 +struct rank< _Tp [_Size]> : public integral_constant< unsigned long, 1 + std::rank< _Tp> ::value> { +# 1442 +}; +# 1444 +template< class _Tp> +# 1445 +struct rank< _Tp []> : public integral_constant< unsigned long, 1 + std::rank< _Tp> ::value> { +# 1446 +}; +# 1449 +template< class , unsigned _Uint = 0U> +# 1450 +struct extent : public integral_constant< unsigned long, 0UL> { +# 1451 +}; +# 1453 +template< class _Tp, size_t _Size> +# 1454 +struct extent< _Tp [_Size], 0> : public integral_constant< unsigned long, _Size> { +# 1455 +}; +# 1457 +template< class _Tp, unsigned _Uint, size_t _Size> +# 1458 +struct extent< _Tp [_Size], _Uint> : public std::extent< _Tp, _Uint - (1)> ::type { +# 1459 +}; +# 1461 +template< class _Tp> +# 1462 +struct extent< _Tp [], 0> : public integral_constant< unsigned long, 0UL> { +# 1463 +}; +# 1465 +template< class _Tp, unsigned _Uint> +# 1466 +struct extent< _Tp [], _Uint> : public std::extent< _Tp, _Uint - (1)> ::type { +# 1467 +}; +# 1474 +template< class _Tp, class _Up> +# 1475 +struct is_same : public __bool_constant< __is_same(_Tp, _Up)> { +# 1477 +}; +# 1491 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Base, class _Derived> +# 1492 +struct is_base_of : public __bool_constant< __is_base_of(_Base, _Derived)> { +# 1494 +}; +# 1497 +template< class _From, class _To> +# 1498 +struct is_convertible : public __bool_constant< __is_convertible(_From, _To)> { +# 1500 +}; +# 1540 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _ToElementType, class _FromElementType> using __is_array_convertible = is_convertible< _FromElementType (*)[], _ToElementType (*)[]> ; +# 1600 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++14-extensions" +template< class _Tp, class ..._Args> +# 1603 +struct __is_nothrow_new_constructible_impl : public __bool_constant< noexcept((::new (std::declval< void *> ()) _Tp(std::declval< _Args> ()...)))> { +# 1607 +}; +# 1609 +template< class _Tp, class ..._Args> constexpr inline bool +# 1610 +__is_nothrow_new_constructible = (__and_< is_constructible< _Tp, _Args...> , __is_nothrow_new_constructible_impl< _Tp, _Args...> > ::value); +# 1613 +#pragma GCC diagnostic pop +# 1618 +template< class _Tp> +# 1619 +struct remove_const { +# 1620 +using type = _Tp; }; +# 1622 +template< class _Tp> +# 1623 +struct remove_const< const _Tp> { +# 1624 +using type = _Tp; }; +# 1627 +template< class _Tp> +# 1628 +struct remove_volatile { +# 1629 +using type = _Tp; }; +# 1631 +template< class _Tp> +# 1632 +struct remove_volatile< volatile _Tp> { +# 1633 +using type = _Tp; }; +# 1637 +template< class _Tp> +# 1638 +struct remove_cv { +# 1639 +using type = __remove_cv(_Tp); }; +# 1659 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 1660 +struct add_const { +# 1661 +using type = const _Tp; }; +# 1664 +template< class _Tp> +# 1665 +struct add_volatile { +# 1666 +using type = volatile _Tp; }; +# 1669 +template< class _Tp> +# 1670 +struct add_cv { +# 1671 +using type = const volatile _Tp; }; +# 1675 +template< class _Tp> using remove_const_t = typename remove_const< _Tp> ::type; +# 1679 +template< class _Tp> using remove_volatile_t = typename remove_volatile< _Tp> ::type; +# 1683 +template< class _Tp> using remove_cv_t = typename remove_cv< _Tp> ::type; +# 1687 +template< class _Tp> using add_const_t = typename add_const< _Tp> ::type; +# 1691 +template< class _Tp> using add_volatile_t = typename add_volatile< _Tp> ::type; +# 1695 +template< class _Tp> using add_cv_t = typename add_cv< _Tp> ::type; +# 1703 +template< class _Tp> +# 1704 +struct remove_reference { +# 1705 +using type = __remove_reference(_Tp); }; +# 1721 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 1722 +struct add_lvalue_reference { +# 1723 +using type = __add_lval_ref_t< _Tp> ; }; +# 1726 +template< class _Tp> +# 1727 +struct add_rvalue_reference { +# 1728 +using type = __add_rval_ref_t< _Tp> ; }; +# 1732 +template< class _Tp> using remove_reference_t = typename remove_reference< _Tp> ::type; +# 1736 +template< class _Tp> using add_lvalue_reference_t = typename add_lvalue_reference< _Tp> ::type; +# 1740 +template< class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference< _Tp> ::type; +# 1749 +template< class _Unqualified, bool _IsConst, bool _IsVol> struct __cv_selector; +# 1752 +template< class _Unqualified> +# 1753 +struct __cv_selector< _Unqualified, false, false> { +# 1754 +using __type = _Unqualified; }; +# 1756 +template< class _Unqualified> +# 1757 +struct __cv_selector< _Unqualified, false, true> { +# 1758 +using __type = volatile _Unqualified; }; +# 1760 +template< class _Unqualified> +# 1761 +struct __cv_selector< _Unqualified, true, false> { +# 1762 +using __type = const _Unqualified; }; +# 1764 +template< class _Unqualified> +# 1765 +struct __cv_selector< _Unqualified, true, true> { +# 1766 +using __type = const volatile _Unqualified; }; +# 1768 +template< class _Qualified, class _Unqualified, bool +# 1769 +_IsConst = is_const< _Qualified> ::value, bool +# 1770 +_IsVol = is_volatile< _Qualified> ::value> +# 1771 +class __match_cv_qualifiers { +# 1773 +using __match = __cv_selector< _Unqualified, _IsConst, _IsVol> ; +# 1776 +public: using __type = typename __cv_selector< _Unqualified, _IsConst, _IsVol> ::__type; +# 1777 +}; +# 1780 +template< class _Tp> +# 1781 +struct __make_unsigned { +# 1782 +using __type = _Tp; }; +# 1785 +template<> struct __make_unsigned< char> { +# 1786 +using __type = unsigned char; }; +# 1789 +template<> struct __make_unsigned< signed char> { +# 1790 +using __type = unsigned char; }; +# 1793 +template<> struct __make_unsigned< short> { +# 1794 +using __type = unsigned short; }; +# 1797 +template<> struct __make_unsigned< int> { +# 1798 +using __type = unsigned; }; +# 1801 +template<> struct __make_unsigned< long> { +# 1802 +using __type = unsigned long; }; +# 1805 +template<> struct __make_unsigned< long long> { +# 1806 +using __type = unsigned long long; }; +# 1811 +template<> struct __make_unsigned< __int128> { +# 1812 +using __type = unsigned __int128; }; +# 1834 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp, bool +# 1835 +_IsInt = is_integral< _Tp> ::value, bool +# 1836 +_IsEnum = __is_enum(_Tp)> class __make_unsigned_selector; +# 1839 +template< class _Tp> +# 1840 +class __make_unsigned_selector< _Tp, true, false> { +# 1842 +using __unsigned_type = typename __make_unsigned< __remove_cv_t< _Tp> > ::__type; +# 1846 +public: using __type = typename __match_cv_qualifiers< _Tp, __unsigned_type> ::__type; +# 1848 +}; +# 1850 +class __make_unsigned_selector_base { +# 1853 +protected: template< class ...> struct _List { }; +# 1855 +template< class _Tp, class ..._Up> +# 1856 +struct _List< _Tp, _Up...> : public __make_unsigned_selector_base::template _List< _Up...> { +# 1857 +static constexpr inline std::size_t __size = sizeof(_Tp); }; +# 1859 +template< size_t _Sz, class _Tp, bool = _Sz <= _Tp::__size> struct __select; +# 1862 +template< size_t _Sz, class _Uint, class ..._UInts> +# 1863 +struct __select< _Sz, _List< _Uint, _UInts...> , true> { +# 1864 +using __type = _Uint; }; +# 1866 +template< size_t _Sz, class _Uint, class ..._UInts> +# 1867 +struct __select< _Sz, _List< _Uint, _UInts...> , false> : public __make_unsigned_selector_base::template __select< _Sz, _List< _UInts...> > { +# 1869 +}; +# 1870 +}; +# 1873 +template< class _Tp> +# 1874 +class __make_unsigned_selector< _Tp, false, true> : private __make_unsigned_selector_base { +# 1878 +using _UInts = _List< unsigned char, unsigned short, unsigned, unsigned long, unsigned long long> ; +# 1881 +using __unsigned_type = typename __select< sizeof(_Tp), _List< unsigned char, unsigned short, unsigned, unsigned long, unsigned long long> > ::__type; +# 1884 +public: using __type = typename __match_cv_qualifiers< _Tp, __unsigned_type> ::__type; +# 1886 +}; +# 1893 +template<> struct __make_unsigned< wchar_t> { +# 1895 +using __type = __make_unsigned_selector< wchar_t, false, true> ::__type; +# 1897 +}; +# 1909 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template<> struct __make_unsigned< char16_t> { +# 1911 +using __type = __make_unsigned_selector< char16_t, false, true> ::__type; +# 1913 +}; +# 1916 +template<> struct __make_unsigned< char32_t> { +# 1918 +using __type = __make_unsigned_selector< char32_t, false, true> ::__type; +# 1920 +}; +# 1927 +template< class _Tp> +# 1928 +struct make_unsigned { +# 1929 +using type = typename __make_unsigned_selector< _Tp> ::__type; }; +# 1932 +template<> struct make_unsigned< bool> ; +# 1933 +template<> struct make_unsigned< const bool> ; +# 1934 +template<> struct make_unsigned< volatile bool> ; +# 1935 +template<> struct make_unsigned< const volatile bool> ; +# 1940 +template< class _Tp> +# 1941 +struct __make_signed { +# 1942 +using __type = _Tp; }; +# 1945 +template<> struct __make_signed< char> { +# 1946 +using __type = signed char; }; +# 1949 +template<> struct __make_signed< unsigned char> { +# 1950 +using __type = signed char; }; +# 1953 +template<> struct __make_signed< unsigned short> { +# 1954 +using __type = signed short; }; +# 1957 +template<> struct __make_signed< unsigned> { +# 1958 +using __type = signed int; }; +# 1961 +template<> struct __make_signed< unsigned long> { +# 1962 +using __type = signed long; }; +# 1965 +template<> struct __make_signed< unsigned long long> { +# 1966 +using __type = signed long long; }; +# 1971 +template<> struct __make_signed< unsigned __int128> { +# 1972 +using __type = __int128; }; +# 1994 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp, bool +# 1995 +_IsInt = is_integral< _Tp> ::value, bool +# 1996 +_IsEnum = __is_enum(_Tp)> class __make_signed_selector; +# 1999 +template< class _Tp> +# 2000 +class __make_signed_selector< _Tp, true, false> { +# 2002 +using __signed_type = typename __make_signed< __remove_cv_t< _Tp> > ::__type; +# 2006 +public: using __type = typename __match_cv_qualifiers< _Tp, __signed_type> ::__type; +# 2008 +}; +# 2011 +template< class _Tp> +# 2012 +class __make_signed_selector< _Tp, false, true> { +# 2014 +using __unsigned_type = typename __make_unsigned_selector< _Tp> ::__type; +# 2017 +public: using __type = typename std::__make_signed_selector< __unsigned_type> ::__type; +# 2018 +}; +# 2025 +template<> struct __make_signed< wchar_t> { +# 2027 +using __type = __make_signed_selector< wchar_t, false, true> ::__type; +# 2029 +}; +# 2041 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template<> struct __make_signed< char16_t> { +# 2043 +using __type = __make_signed_selector< char16_t, false, true> ::__type; +# 2045 +}; +# 2048 +template<> struct __make_signed< char32_t> { +# 2050 +using __type = __make_signed_selector< char32_t, false, true> ::__type; +# 2052 +}; +# 2059 +template< class _Tp> +# 2060 +struct make_signed { +# 2061 +using type = typename __make_signed_selector< _Tp> ::__type; }; +# 2064 +template<> struct make_signed< bool> ; +# 2065 +template<> struct make_signed< const bool> ; +# 2066 +template<> struct make_signed< volatile bool> ; +# 2067 +template<> struct make_signed< const volatile bool> ; +# 2071 +template< class _Tp> using make_signed_t = typename make_signed< _Tp> ::type; +# 2075 +template< class _Tp> using make_unsigned_t = typename make_unsigned< _Tp> ::type; +# 2082 +template< class _Tp> +# 2083 +struct remove_extent { +# 2084 +using type = _Tp; }; +# 2086 +template< class _Tp, size_t _Size> +# 2087 +struct remove_extent< _Tp [_Size]> { +# 2088 +using type = _Tp; }; +# 2090 +template< class _Tp> +# 2091 +struct remove_extent< _Tp []> { +# 2092 +using type = _Tp; }; +# 2095 +template< class _Tp> +# 2096 +struct remove_all_extents { +# 2097 +using type = _Tp; }; +# 2099 +template< class _Tp, size_t _Size> +# 2100 +struct remove_all_extents< _Tp [_Size]> { +# 2101 +using type = typename std::remove_all_extents< _Tp> ::type; }; +# 2103 +template< class _Tp> +# 2104 +struct remove_all_extents< _Tp []> { +# 2105 +using type = typename std::remove_all_extents< _Tp> ::type; }; +# 2109 +template< class _Tp> using remove_extent_t = typename remove_extent< _Tp> ::type; +# 2113 +template< class _Tp> using remove_all_extents_t = typename remove_all_extents< _Tp> ::type; +# 2121 +template< class _Tp> +# 2122 +struct remove_pointer { +# 2123 +using type = __remove_pointer(_Tp); }; +# 2139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp, class = void> +# 2140 +struct __add_pointer_helper { +# 2141 +using type = _Tp; }; +# 2143 +template< class _Tp> +# 2144 +struct __add_pointer_helper< _Tp, __void_t< _Tp *> > { +# 2145 +using type = _Tp *; }; +# 2148 +template< class _Tp> +# 2149 +struct add_pointer : public __add_pointer_helper< _Tp> { +# 2151 +}; +# 2153 +template< class _Tp> +# 2154 +struct add_pointer< _Tp &> { +# 2155 +using type = _Tp *; }; +# 2157 +template< class _Tp> +# 2158 +struct add_pointer< _Tp &&> { +# 2159 +using type = _Tp *; }; +# 2163 +template< class _Tp> using remove_pointer_t = typename remove_pointer< _Tp> ::type; +# 2167 +template< class _Tp> using add_pointer_t = typename add_pointer< _Tp> ::type; +# 2171 +template< size_t _Len> +# 2172 +struct __aligned_storage_msa { +# 2174 +union __type { +# 2176 +unsigned char __data[_Len]; +# 2177 +struct __attribute((__aligned__)) { } __align; +# 2178 +}; +# 2179 +}; +# 2194 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa< _Len> ::__type)> +# 2198 +struct aligned_storage { +# 2200 +union type { +# 2202 +unsigned char __data[_Len]; +# 2203 +struct __attribute((__aligned__(_Align))) { } __align; +# 2204 +}; +# 2205 +}; +# 2207 +template< class ..._Types> +# 2208 +struct __strictest_alignment { +# 2210 +static const size_t _S_alignment = (0); +# 2211 +static const size_t _S_size = (0); +# 2212 +}; +# 2214 +template< class _Tp, class ..._Types> +# 2215 +struct __strictest_alignment< _Tp, _Types...> { +# 2217 +static const size_t _S_alignment = ((__alignof__(_Tp) > __strictest_alignment< _Types...> ::_S_alignment) ? __alignof__(_Tp) : __strictest_alignment< _Types...> ::_S_alignment); +# 2220 +static const size_t _S_size = ((sizeof(_Tp) > __strictest_alignment< _Types...> ::_S_size) ? sizeof(_Tp) : __strictest_alignment< _Types...> ::_S_size); +# 2223 +}; +# 2225 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 2240 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< size_t _Len, class ..._Types> +# 2243 +struct aligned_union { +# 2246 +static_assert((sizeof...(_Types) != (0)), "At least one type is required"); +# 2248 +private: using __strictest = __strictest_alignment< _Types...> ; +# 2249 +static const size_t _S_len = ((_Len > __strictest::_S_size) ? _Len : __strictest::_S_size); +# 2253 +public: static const size_t alignment_value = (__strictest::_S_alignment); +# 2255 +using type = typename aligned_storage< _S_len, alignment_value> ::type; +# 2256 +}; +# 2258 +template< size_t _Len, class ..._Types> const size_t aligned_union< _Len, _Types...> ::alignment_value; +# 2260 +#pragma GCC diagnostic pop +# 2266 +template< class _Up> +# 2267 +struct __decay_selector : public __conditional_t< is_const< const _Up> ::value, remove_cv< _Up> , add_pointer< _Up> > { +# 2271 +}; +# 2273 +template< class _Up, size_t _Nm> +# 2274 +struct __decay_selector< _Up [_Nm]> { +# 2275 +using type = _Up *; }; +# 2277 +template< class _Up> +# 2278 +struct __decay_selector< _Up []> { +# 2279 +using type = _Up *; }; +# 2284 +template< class _Tp> +# 2285 +struct decay { +# 2286 +using type = typename __decay_selector< _Tp> ::type; }; +# 2288 +template< class _Tp> +# 2289 +struct decay< _Tp &> { +# 2290 +using type = typename __decay_selector< _Tp> ::type; }; +# 2292 +template< class _Tp> +# 2293 +struct decay< _Tp &&> { +# 2294 +using type = typename __decay_selector< _Tp> ::type; }; +# 2299 +template< class _Tp> +# 2300 +struct __strip_reference_wrapper { +# 2302 +using __type = _Tp; +# 2303 +}; +# 2305 +template< class _Tp> +# 2306 +struct __strip_reference_wrapper< reference_wrapper< _Tp> > { +# 2308 +using __type = _Tp &; +# 2309 +}; +# 2312 +template< class _Tp> using __decay_t = typename decay< _Tp> ::type; +# 2315 +template< class _Tp> using __decay_and_strip = __strip_reference_wrapper< __decay_t< _Tp> > ; +# 2322 +template< class ..._Cond> using _Require = __enable_if_t< __and_< _Cond...> ::value> ; +# 2326 +template< class _Tp> using __remove_cvref_t = typename remove_cv< typename remove_reference< _Tp> ::type> ::type; +# 2333 +template< bool _Cond, class _Iftrue, class _Iffalse> +# 2334 +struct conditional { +# 2335 +using type = _Iftrue; }; +# 2338 +template< class _Iftrue, class _Iffalse> +# 2339 +struct conditional< false, _Iftrue, _Iffalse> { +# 2340 +using type = _Iffalse; }; +# 2343 +template< class ..._Tp> struct common_type; +# 2355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 2356 +struct __success_type { +# 2357 +using type = _Tp; }; +# 2359 +struct __failure_type { +# 2360 +}; +# 2362 +struct __do_common_type_impl { +# 2364 +template< class _Tp, class _Up> using __cond_t = __decltype((true ? std::declval< _Tp> () : std::declval< _Up> ())); +# 2370 +template< class _Tp, class _Up> static __success_type< __decay_t< __cond_t< _Tp, _Up> > > _S_test(int); +# 2382 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class , class > static __failure_type _S_test_2(...); +# 2386 +template< class _Tp, class _Up> static __decltype((_S_test_2< _Tp, _Up> (0))) _S_test(...); +# 2389 +}; +# 2393 +template<> struct common_type< > { +# 2394 +}; +# 2397 +template< class _Tp0> +# 2398 +struct common_type< _Tp0> : public std::common_type< _Tp0, _Tp0> { +# 2400 +}; +# 2403 +template< class _Tp1, class _Tp2, class +# 2404 +_Dp1 = __decay_t< _Tp1> , class _Dp2 = __decay_t< _Tp2> > +# 2405 +struct __common_type_impl { +# 2409 +using type = common_type< _Dp1, _Dp2> ; +# 2410 +}; +# 2412 +template< class _Tp1, class _Tp2> +# 2413 +struct __common_type_impl< _Tp1, _Tp2, _Tp1, _Tp2> : private __do_common_type_impl { +# 2418 +using type = __decltype((_S_test< _Tp1, _Tp2> (0))); +# 2419 +}; +# 2422 +template< class _Tp1, class _Tp2> +# 2423 +struct common_type< _Tp1, _Tp2> : public __common_type_impl< _Tp1, _Tp2> ::type { +# 2425 +}; +# 2427 +template< class ...> +# 2428 +struct __common_type_pack { +# 2429 +}; +# 2431 +template< class , class , class = void> struct __common_type_fold; +# 2435 +template< class _Tp1, class _Tp2, class ..._Rp> +# 2436 +struct common_type< _Tp1, _Tp2, _Rp...> : public __common_type_fold< std::common_type< _Tp1, _Tp2> , __common_type_pack< _Rp...> > { +# 2439 +}; +# 2444 +template< class _CTp, class ..._Rp> +# 2445 +struct __common_type_fold< _CTp, __common_type_pack< _Rp...> , __void_t< typename _CTp::type> > : public common_type< typename _CTp::type, _Rp...> { +# 2448 +}; +# 2451 +template< class _CTp, class _Rp> +# 2452 +struct __common_type_fold< _CTp, _Rp, void> { +# 2453 +}; +# 2455 +template< class _Tp, bool = __is_enum(_Tp)> +# 2456 +struct __underlying_type_impl { +# 2458 +using type = __underlying_type(_Tp); +# 2459 +}; +# 2461 +template< class _Tp> +# 2462 +struct __underlying_type_impl< _Tp, false> { +# 2463 +}; +# 2467 +template< class _Tp> +# 2468 +struct underlying_type : public __underlying_type_impl< _Tp> { +# 2470 +}; +# 2473 +template< class _Tp> +# 2474 +struct __declval_protector { +# 2476 +static const bool __stop = false; +# 2477 +}; +# 2484 +template< class _Tp> auto +# 2485 +declval() noexcept->__decltype((__declval< _Tp> (0))) +# 2486 +{ +# 2487 +static_assert((__declval_protector< _Tp> ::__stop), "declval() must not be used!"); +# 2489 +return __declval< _Tp> (0); +# 2490 +} +# 2493 +template< class _Signature> struct result_of; +# 2499 +struct __invoke_memfun_ref { }; +# 2500 +struct __invoke_memfun_deref { }; +# 2501 +struct __invoke_memobj_ref { }; +# 2502 +struct __invoke_memobj_deref { }; +# 2503 +struct __invoke_other { }; +# 2506 +template< class _Tp, class _Tag> +# 2507 +struct __result_of_success : public __success_type< _Tp> { +# 2508 +using __invoke_type = _Tag; }; +# 2511 +struct __result_of_memfun_ref_impl { +# 2513 +template< class _Fp, class _Tp1, class ..._Args> static __result_of_success< __decltype(((std::declval< _Tp1> ().*std::declval< _Fp> ())(std::declval< _Args> ()...))), __invoke_memfun_ref> _S_test(int); +# 2518 +template< class ...> static __failure_type _S_test(...); +# 2520 +}; +# 2522 +template< class _MemPtr, class _Arg, class ..._Args> +# 2523 +struct __result_of_memfun_ref : private __result_of_memfun_ref_impl { +# 2526 +using type = __decltype((_S_test< _MemPtr, _Arg, _Args...> (0))); +# 2527 +}; +# 2530 +struct __result_of_memfun_deref_impl { +# 2532 +template< class _Fp, class _Tp1, class ..._Args> static __result_of_success< __decltype((((*std::declval< _Tp1> ()).*std::declval< _Fp> ())(std::declval< _Args> ()...))), __invoke_memfun_deref> _S_test(int); +# 2537 +template< class ...> static __failure_type _S_test(...); +# 2539 +}; +# 2541 +template< class _MemPtr, class _Arg, class ..._Args> +# 2542 +struct __result_of_memfun_deref : private __result_of_memfun_deref_impl { +# 2545 +using type = __decltype((_S_test< _MemPtr, _Arg, _Args...> (0))); +# 2546 +}; +# 2549 +struct __result_of_memobj_ref_impl { +# 2551 +template< class _Fp, class _Tp1> static __result_of_success< __decltype((std::declval< _Tp1> ().*std::declval< _Fp> ())), __invoke_memobj_ref> _S_test(int); +# 2556 +template< class , class > static __failure_type _S_test(...); +# 2558 +}; +# 2560 +template< class _MemPtr, class _Arg> +# 2561 +struct __result_of_memobj_ref : private __result_of_memobj_ref_impl { +# 2564 +using type = __decltype((_S_test< _MemPtr, _Arg> (0))); +# 2565 +}; +# 2568 +struct __result_of_memobj_deref_impl { +# 2570 +template< class _Fp, class _Tp1> static __result_of_success< __decltype(((*std::declval< _Tp1> ()).*std::declval< _Fp> ())), __invoke_memobj_deref> _S_test(int); +# 2575 +template< class , class > static __failure_type _S_test(...); +# 2577 +}; +# 2579 +template< class _MemPtr, class _Arg> +# 2580 +struct __result_of_memobj_deref : private __result_of_memobj_deref_impl { +# 2583 +using type = __decltype((_S_test< _MemPtr, _Arg> (0))); +# 2584 +}; +# 2586 +template< class _MemPtr, class _Arg> struct __result_of_memobj; +# 2589 +template< class _Res, class _Class, class _Arg> +# 2590 +struct __result_of_memobj< _Res (_Class::*), _Arg> { +# 2592 +using _Argval = __remove_cvref_t< _Arg> ; +# 2593 +using _MemPtr = _Res (_Class::*); +# 2594 +using type = typename __conditional_t< __or_< is_same< _Argval, _Class> , is_base_of< _Class, _Argval> > ::value, __result_of_memobj_ref< _MemPtr, _Arg> , __result_of_memobj_deref< _MemPtr, _Arg> > ::type; +# 2599 +}; +# 2601 +template< class _MemPtr, class _Arg, class ..._Args> struct __result_of_memfun; +# 2604 +template< class _Res, class _Class, class _Arg, class ..._Args> +# 2605 +struct __result_of_memfun< _Res (_Class::*), _Arg, _Args...> { +# 2607 +using _Argval = typename remove_reference< _Arg> ::type; +# 2608 +using _MemPtr = _Res (_Class::*); +# 2609 +using type = typename __conditional_t< is_base_of< _Class, _Argval> ::value, __result_of_memfun_ref< _MemPtr, _Arg, _Args...> , __result_of_memfun_deref< _MemPtr, _Arg, _Args...> > ::type; +# 2613 +}; +# 2620 +template< class _Tp, class _Up = __remove_cvref_t< _Tp> > +# 2621 +struct __inv_unwrap { +# 2623 +using type = _Tp; +# 2624 +}; +# 2626 +template< class _Tp, class _Up> +# 2627 +struct __inv_unwrap< _Tp, reference_wrapper< _Up> > { +# 2629 +using type = _Up &; +# 2630 +}; +# 2632 +template< bool , bool , class _Functor, class ..._ArgTypes> +# 2633 +struct __result_of_impl { +# 2635 +using type = __failure_type; +# 2636 +}; +# 2638 +template< class _MemPtr, class _Arg> +# 2639 +struct __result_of_impl< true, false, _MemPtr, _Arg> : public __result_of_memobj< __decay_t< _MemPtr> , typename __inv_unwrap< _Arg> ::type> { +# 2642 +}; +# 2644 +template< class _MemPtr, class _Arg, class ..._Args> +# 2645 +struct __result_of_impl< false, true, _MemPtr, _Arg, _Args...> : public __result_of_memfun< __decay_t< _MemPtr> , typename __inv_unwrap< _Arg> ::type, _Args...> { +# 2648 +}; +# 2651 +struct __result_of_other_impl { +# 2653 +template< class _Fn, class ..._Args> static __result_of_success< __decltype((std::declval< _Fn> ()(std::declval< _Args> ()...))), __invoke_other> _S_test(int); +# 2658 +template< class ...> static __failure_type _S_test(...); +# 2660 +}; +# 2662 +template< class _Functor, class ..._ArgTypes> +# 2663 +struct __result_of_impl< false, false, _Functor, _ArgTypes...> : private __result_of_other_impl { +# 2666 +using type = __decltype((_S_test< _Functor, _ArgTypes...> (0))); +# 2667 +}; +# 2670 +template< class _Functor, class ..._ArgTypes> +# 2671 +struct __invoke_result : public __result_of_impl< is_member_object_pointer< typename remove_reference< _Functor> ::type> ::value, is_member_function_pointer< typename remove_reference< _Functor> ::type> ::value, _Functor, _ArgTypes...> ::type { +# 2681 +}; +# 2684 +template< class _Fn, class ..._Args> using __invoke_result_t = typename __invoke_result< _Fn, _Args...> ::type; +# 2688 +template< class _Functor, class ..._ArgTypes> +# 2689 +struct result_of< _Functor (_ArgTypes ...)> : public __invoke_result< _Functor, _ArgTypes...> { +# 2691 +} __attribute((__deprecated__("use \'std::invoke_result\' instead"))); +# 2694 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 2697 +template< size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa< _Len> ::__type)> using aligned_storage_t = typename aligned_storage< _Len, _Align> ::type; +# 2701 +template< size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union< _Len, _Types...> ::type; +# 2703 +#pragma GCC diagnostic pop +# 2706 +template< class _Tp> using decay_t = typename decay< _Tp> ::type; +# 2710 +template< bool _Cond, class _Tp = void> using enable_if_t = typename enable_if< _Cond, _Tp> ::type; +# 2714 +template< bool _Cond, class _Iftrue, class _Iffalse> using conditional_t = typename conditional< _Cond, _Iftrue, _Iffalse> ::type; +# 2718 +template< class ..._Tp> using common_type_t = typename common_type< _Tp...> ::type; +# 2722 +template< class _Tp> using underlying_type_t = typename underlying_type< _Tp> ::type; +# 2726 +template< class _Tp> using result_of_t = typename result_of< _Tp> ::type; +# 2732 +template< class ...> using void_t = void; +# 2759 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Default, class _AlwaysVoid, +# 2760 +template< class ...> class _Op, class ..._Args> +# 2761 +struct __detector { +# 2763 +using type = _Default; +# 2764 +using __is_detected = false_type; +# 2765 +}; +# 2768 +template< class _Default, template< class ...> class _Op, class ... +# 2769 +_Args> +# 2770 +struct __detector< _Default, __void_t< _Op< _Args...> > , _Op, _Args...> { +# 2772 +using type = _Op< _Args...> ; +# 2773 +using __is_detected = true_type; +# 2774 +}; +# 2776 +template< class _Default, template< class ...> class _Op, class ... +# 2777 +_Args> using __detected_or = __detector< _Default, void, _Op, _Args...> ; +# 2782 +template< class _Default, template< class ...> class _Op, class ... +# 2783 +_Args> using __detected_or_t = typename __detected_or< _Default, _Op, _Args...> ::type; +# 2801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> struct __is_swappable; +# 2804 +template< class _Tp> struct __is_nothrow_swappable; +# 2807 +template< class > +# 2808 +struct __is_tuple_like_impl : public false_type { +# 2809 +}; +# 2812 +template< class _Tp> +# 2813 +struct __is_tuple_like : public __is_tuple_like_impl< __remove_cvref_t< _Tp> > ::type { +# 2815 +}; +# 2818 +template< class _Tp> inline _Require< __not_< __is_tuple_like< _Tp> > , is_move_constructible< _Tp> , is_move_assignable< _Tp> > swap(_Tp &, _Tp &) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_move_assignable< _Tp> > ::value); +# 2828 +template< class _Tp, size_t _Nm> inline __enable_if_t< __is_swappable< _Tp> ::value> swap(_Tp (& __a)[_Nm], _Tp (& __b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp> ::value); +# 2836 +namespace __swappable_details { +# 2837 +using std::swap; +# 2839 +struct __do_is_swappable_impl { +# 2841 +template< class _Tp, class +# 2842 + = __decltype((swap(std::declval< _Tp &> (), std::declval< _Tp &> ())))> static true_type +# 2841 +__test(int); +# 2845 +template< class > static false_type __test(...); +# 2847 +}; +# 2849 +struct __do_is_nothrow_swappable_impl { +# 2851 +template< class _Tp> static __bool_constant< noexcept(swap(std::declval< _Tp &> (), std::declval< _Tp &> ()))> __test(int); +# 2856 +template< class > static false_type __test(...); +# 2858 +}; +# 2860 +} +# 2862 +template< class _Tp> +# 2863 +struct __is_swappable_impl : public __swappable_details::__do_is_swappable_impl { +# 2866 +using type = __decltype((__test< _Tp> (0))); +# 2867 +}; +# 2869 +template< class _Tp> +# 2870 +struct __is_nothrow_swappable_impl : public __swappable_details::__do_is_nothrow_swappable_impl { +# 2873 +using type = __decltype((__test< _Tp> (0))); +# 2874 +}; +# 2876 +template< class _Tp> +# 2877 +struct __is_swappable : public __is_swappable_impl< _Tp> ::type { +# 2879 +}; +# 2881 +template< class _Tp> +# 2882 +struct __is_nothrow_swappable : public __is_nothrow_swappable_impl< _Tp> ::type { +# 2884 +}; +# 2891 +template< class _Tp> +# 2892 +struct is_swappable : public __is_swappable_impl< _Tp> ::type { +# 2895 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 2897 +}; +# 2900 +template< class _Tp> +# 2901 +struct is_nothrow_swappable : public __is_nothrow_swappable_impl< _Tp> ::type { +# 2904 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 2906 +}; +# 2910 +template< class _Tp> constexpr inline bool +# 2911 +is_swappable_v = (is_swappable< _Tp> ::value); +# 2915 +template< class _Tp> constexpr inline bool +# 2916 +is_nothrow_swappable_v = (is_nothrow_swappable< _Tp> ::value); +# 2921 +namespace __swappable_with_details { +# 2922 +using std::swap; +# 2924 +struct __do_is_swappable_with_impl { +# 2926 +template< class _Tp, class _Up, class +# 2927 + = __decltype((swap(std::declval< _Tp> (), std::declval< _Up> ()))), class +# 2929 + = __decltype((swap(std::declval< _Up> (), std::declval< _Tp> ())))> static true_type +# 2926 +__test(int); +# 2932 +template< class , class > static false_type __test(...); +# 2934 +}; +# 2936 +struct __do_is_nothrow_swappable_with_impl { +# 2938 +template< class _Tp, class _Up> static __bool_constant< noexcept(swap(std::declval< _Tp> (), std::declval< _Up> ())) && noexcept(swap(std::declval< _Up> (), std::declval< _Tp> ()))> __test(int); +# 2945 +template< class , class > static false_type __test(...); +# 2947 +}; +# 2949 +} +# 2951 +template< class _Tp, class _Up> +# 2952 +struct __is_swappable_with_impl : public __swappable_with_details::__do_is_swappable_with_impl { +# 2955 +using type = __decltype((__test< _Tp, _Up> (0))); +# 2956 +}; +# 2959 +template< class _Tp> +# 2960 +struct __is_swappable_with_impl< _Tp &, _Tp &> : public __swappable_details::__do_is_swappable_impl { +# 2963 +using type = __decltype((__test< _Tp &> (0))); +# 2964 +}; +# 2966 +template< class _Tp, class _Up> +# 2967 +struct __is_nothrow_swappable_with_impl : public __swappable_with_details::__do_is_nothrow_swappable_with_impl { +# 2970 +using type = __decltype((__test< _Tp, _Up> (0))); +# 2971 +}; +# 2974 +template< class _Tp> +# 2975 +struct __is_nothrow_swappable_with_impl< _Tp &, _Tp &> : public __swappable_details::__do_is_nothrow_swappable_impl { +# 2978 +using type = __decltype((__test< _Tp &> (0))); +# 2979 +}; +# 2983 +template< class _Tp, class _Up> +# 2984 +struct is_swappable_with : public __is_swappable_with_impl< _Tp, _Up> ::type { +# 2987 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "first template argument must be a complete class or an unbounded array"); +# 2989 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Up> {})), "second template argument must be a complete class or an unbounded array"); +# 2991 +}; +# 2994 +template< class _Tp, class _Up> +# 2995 +struct is_nothrow_swappable_with : public __is_nothrow_swappable_with_impl< _Tp, _Up> ::type { +# 2998 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "first template argument must be a complete class or an unbounded array"); +# 3000 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Up> {})), "second template argument must be a complete class or an unbounded array"); +# 3002 +}; +# 3006 +template< class _Tp, class _Up> constexpr inline bool +# 3007 +is_swappable_with_v = (is_swappable_with< _Tp, _Up> ::value); +# 3011 +template< class _Tp, class _Up> constexpr inline bool +# 3012 +is_nothrow_swappable_with_v = (is_nothrow_swappable_with< _Tp, _Up> ::value); +# 3023 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Result, class _Ret, bool +# 3024 + = is_void< _Ret> ::value, class = void> +# 3025 +struct __is_invocable_impl : public false_type { +# 3028 +using __nothrow_conv = false_type; +# 3029 +}; +# 3032 +template< class _Result, class _Ret> +# 3033 +struct __is_invocable_impl< _Result, _Ret, true, __void_t< typename _Result::type> > : public true_type { +# 3038 +using __nothrow_conv = true_type; +# 3039 +}; +# 3041 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +# 3044 +template< class _Result, class _Ret> +# 3045 +struct __is_invocable_impl< _Result, _Ret, false, __void_t< typename _Result::type> > { +# 3051 +private: using _Res_t = typename _Result::type; +# 3055 +static _Res_t _S_get() noexcept; +# 3058 +template< class _Tp> static void _S_conv(__type_identity_t< _Tp> ) noexcept; +# 3062 +template< class _Tp, bool +# 3063 +_Nothrow = noexcept(_S_conv< _Tp> ((_S_get)())), class +# 3064 + = __decltype((_S_conv< _Tp> ((_S_get)()))), bool +# 3066 +_Dangle = __reference_converts_from_temporary(_Tp, _Res_t)> static __bool_constant< _Nothrow && (!_Dangle)> +# 3062 +_S_test(int); +# 3074 +template< class _Tp, bool = false> static false_type _S_test(...); +# 3080 +public: using type = __decltype((_S_test< _Ret, true> (1))); +# 3083 +using __nothrow_conv = __decltype((_S_test< _Ret> (1))); +# 3084 +}; +#pragma GCC diagnostic pop +# 3087 +template< class _Fn, class ..._ArgTypes> +# 3088 +struct __is_invocable : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> ::type { +# 3090 +}; +# 3092 +template< class _Fn, class _Tp, class ..._Args> constexpr bool +# 3093 +__call_is_nt(__invoke_memfun_ref) +# 3094 +{ +# 3095 +using _Up = typename __inv_unwrap< _Tp> ::type; +# 3096 +return noexcept((std::declval< typename __inv_unwrap< _Tp> ::type> ().*std::declval< _Fn> ())(std::declval< _Args> ()...)); +# 3098 +} +# 3100 +template< class _Fn, class _Tp, class ..._Args> constexpr bool +# 3101 +__call_is_nt(__invoke_memfun_deref) +# 3102 +{ +# 3103 +return noexcept(((*std::declval< _Tp> ()).*std::declval< _Fn> ())(std::declval< _Args> ()...)); +# 3105 +} +# 3107 +template< class _Fn, class _Tp> constexpr bool +# 3108 +__call_is_nt(__invoke_memobj_ref) +# 3109 +{ +# 3110 +using _Up = typename __inv_unwrap< _Tp> ::type; +# 3111 +return noexcept((std::declval< typename __inv_unwrap< _Tp> ::type> ().*std::declval< _Fn> ())); +# 3112 +} +# 3114 +template< class _Fn, class _Tp> constexpr bool +# 3115 +__call_is_nt(__invoke_memobj_deref) +# 3116 +{ +# 3117 +return noexcept(((*std::declval< _Tp> ()).*std::declval< _Fn> ())); +# 3118 +} +# 3120 +template< class _Fn, class ..._Args> constexpr bool +# 3121 +__call_is_nt(__invoke_other) +# 3122 +{ +# 3123 +return noexcept(std::declval< _Fn> ()(std::declval< _Args> ()...)); +# 3124 +} +# 3126 +template< class _Result, class _Fn, class ..._Args> +# 3127 +struct __call_is_nothrow : public __bool_constant< std::__call_is_nt< _Fn, _Args...> (typename _Result::__invoke_type{})> { +# 3131 +}; +# 3133 +template< class _Fn, class ..._Args> using __call_is_nothrow_ = __call_is_nothrow< __invoke_result< _Fn, _Args...> , _Fn, _Args...> ; +# 3138 +template< class _Fn, class ..._Args> +# 3139 +struct __is_nothrow_invocable : public __and_< __is_invocable< _Fn, _Args...> , __call_is_nothrow_< _Fn, _Args...> > ::type { +# 3142 +}; +# 3144 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +struct __nonesuchbase { }; +# 3147 +struct __nonesuch : private __nonesuchbase { +# 3148 +~__nonesuch() = delete; +# 3149 +__nonesuch(const __nonesuch &) = delete; +# 3150 +void operator=(const __nonesuch &) = delete; +# 3151 +}; +#pragma GCC diagnostic pop +# 3157 +template< class _Functor, class ..._ArgTypes> +# 3158 +struct invoke_result : public __invoke_result< _Functor, _ArgTypes...> { +# 3161 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Functor> {})), "_Functor must be a complete class or an unbounded array"); +# 3163 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3166 +}; +# 3169 +template< class _Fn, class ..._Args> using invoke_result_t = typename invoke_result< _Fn, _Args...> ::type; +# 3173 +template< class _Fn, class ..._ArgTypes> +# 3174 +struct is_invocable : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> ::type { +# 3177 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3179 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3182 +}; +# 3185 +template< class _Ret, class _Fn, class ..._ArgTypes> +# 3186 +struct is_invocable_r : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , _Ret> ::type { +# 3189 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3191 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3194 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Ret> {})), "_Ret must be a complete class or an unbounded array"); +# 3196 +}; +# 3199 +template< class _Fn, class ..._ArgTypes> +# 3200 +struct is_nothrow_invocable : public __and_< __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> , __call_is_nothrow_< _Fn, _ArgTypes...> > ::type { +# 3204 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3206 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3209 +}; +# 3215 +template< class _Result, class _Ret> using __is_nt_invocable_impl = typename __is_invocable_impl< _Result, _Ret> ::__nothrow_conv; +# 3221 +template< class _Ret, class _Fn, class ..._ArgTypes> +# 3222 +struct is_nothrow_invocable_r : public __and_< __is_nt_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , _Ret> , __call_is_nothrow_< _Fn, _ArgTypes...> > ::type { +# 3226 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3228 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3231 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Ret> {})), "_Ret must be a complete class or an unbounded array"); +# 3233 +}; +# 3251 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3252 +is_void_v = (is_void< _Tp> ::value); +# 3253 +template< class _Tp> constexpr inline bool +# 3254 +is_null_pointer_v = (is_null_pointer< _Tp> ::value); +# 3255 +template< class _Tp> constexpr inline bool +# 3256 +is_integral_v = (is_integral< _Tp> ::value); +# 3257 +template< class _Tp> constexpr inline bool +# 3258 +is_floating_point_v = (is_floating_point< _Tp> ::value); +# 3261 +template< class _Tp> constexpr inline bool +# 3262 +is_array_v = __is_array(_Tp); +# 3272 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3273 +is_pointer_v = (is_pointer< _Tp> ::value); +# 3274 +template< class _Tp> constexpr inline bool +# 3275 +is_lvalue_reference_v = false; +# 3276 +template< class _Tp> constexpr inline bool +# 3277 +is_lvalue_reference_v< _Tp &> = true; +# 3278 +template< class _Tp> constexpr inline bool +# 3279 +is_rvalue_reference_v = false; +# 3280 +template< class _Tp> constexpr inline bool +# 3281 +is_rvalue_reference_v< _Tp &&> = true; +# 3284 +template< class _Tp> constexpr inline bool +# 3285 +is_member_object_pointer_v = __is_member_object_pointer(_Tp); +# 3294 +template< class _Tp> constexpr inline bool +# 3295 +is_member_function_pointer_v = __is_member_function_pointer(_Tp); +# 3303 +template< class _Tp> constexpr inline bool +# 3304 +is_enum_v = __is_enum(_Tp); +# 3305 +template< class _Tp> constexpr inline bool +# 3306 +is_union_v = __is_union(_Tp); +# 3307 +template< class _Tp> constexpr inline bool +# 3308 +is_class_v = __is_class(_Tp); +# 3312 +template< class _Tp> constexpr inline bool +# 3313 +is_reference_v = __is_reference(_Tp); +# 3323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3324 +is_arithmetic_v = (is_arithmetic< _Tp> ::value); +# 3325 +template< class _Tp> constexpr inline bool +# 3326 +is_fundamental_v = (is_fundamental< _Tp> ::value); +# 3329 +template< class _Tp> constexpr inline bool +# 3330 +is_object_v = __is_object(_Tp); +# 3336 +template< class _Tp> constexpr inline bool +# 3337 +is_scalar_v = (is_scalar< _Tp> ::value); +# 3338 +template< class _Tp> constexpr inline bool +# 3339 +is_compound_v = (!is_fundamental_v< _Tp> ); +# 3342 +template< class _Tp> constexpr inline bool +# 3343 +is_member_pointer_v = __is_member_pointer(_Tp); +# 3349 +template< class _Tp> constexpr inline bool +# 3350 +is_const_v = false; +# 3351 +template< class _Tp> constexpr inline bool +# 3352 +is_const_v< const _Tp> = true; +# 3355 +template< class _Tp> constexpr inline bool +# 3356 +is_function_v = __is_function(_Tp); +# 3366 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3367 +is_volatile_v = false; +# 3368 +template< class _Tp> constexpr inline bool +# 3369 +is_volatile_v< volatile _Tp> = true; +# 3371 +template< class _Tp> constexpr inline bool +# 3372 +is_trivial_v = __is_trivial(_Tp); +# 3373 +template< class _Tp> constexpr inline bool +# 3374 +is_trivially_copyable_v = __is_trivially_copyable(_Tp); +# 3375 +template< class _Tp> constexpr inline bool +# 3376 +is_standard_layout_v = __is_standard_layout(_Tp); +# 3377 +template< class _Tp> constexpr inline bool +# 3379 +is_pod_v = __is_pod(_Tp); +# 3380 +template< class _Tp> +# 3381 +[[__deprecated__]] constexpr inline bool +# 3382 +is_literal_type_v = __is_literal_type(_Tp); +# 3383 +template< class _Tp> constexpr inline bool +# 3384 +is_empty_v = __is_empty(_Tp); +# 3385 +template< class _Tp> constexpr inline bool +# 3386 +is_polymorphic_v = __is_polymorphic(_Tp); +# 3387 +template< class _Tp> constexpr inline bool +# 3388 +is_abstract_v = __is_abstract(_Tp); +# 3389 +template< class _Tp> constexpr inline bool +# 3390 +is_final_v = __is_final(_Tp); +# 3392 +template< class _Tp> constexpr inline bool +# 3393 +is_signed_v = (is_signed< _Tp> ::value); +# 3394 +template< class _Tp> constexpr inline bool +# 3395 +is_unsigned_v = (is_unsigned< _Tp> ::value); +# 3397 +template< class _Tp, class ..._Args> constexpr inline bool +# 3398 +is_constructible_v = __is_constructible(_Tp, _Args...); +# 3399 +template< class _Tp> constexpr inline bool +# 3400 +is_default_constructible_v = __is_constructible(_Tp); +# 3401 +template< class _Tp> constexpr inline bool +# 3402 +is_copy_constructible_v = __is_constructible(_Tp, __add_lval_ref_t< const _Tp> ); +# 3404 +template< class _Tp> constexpr inline bool +# 3405 +is_move_constructible_v = __is_constructible(_Tp, __add_rval_ref_t< _Tp> ); +# 3408 +template< class _Tp, class _Up> constexpr inline bool +# 3409 +is_assignable_v = __is_assignable(_Tp, _Up); +# 3410 +template< class _Tp> constexpr inline bool +# 3411 +is_copy_assignable_v = __is_assignable(__add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> ); +# 3413 +template< class _Tp> constexpr inline bool +# 3414 +is_move_assignable_v = __is_assignable(__add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> ); +# 3417 +template< class _Tp> constexpr inline bool +# 3418 +is_destructible_v = (is_destructible< _Tp> ::value); +# 3420 +template< class _Tp, class ..._Args> constexpr inline bool +# 3421 +is_trivially_constructible_v = __is_trivially_constructible(_Tp, _Args...); +# 3423 +template< class _Tp> constexpr inline bool +# 3424 +is_trivially_default_constructible_v = __is_trivially_constructible(_Tp); +# 3426 +template< class _Tp> constexpr inline bool +# 3427 +is_trivially_copy_constructible_v = __is_trivially_constructible(_Tp, __add_lval_ref_t< const _Tp> ); +# 3429 +template< class _Tp> constexpr inline bool +# 3430 +is_trivially_move_constructible_v = __is_trivially_constructible(_Tp, __add_rval_ref_t< _Tp> ); +# 3433 +template< class _Tp, class _Up> constexpr inline bool +# 3434 +is_trivially_assignable_v = __is_trivially_assignable(_Tp, _Up); +# 3436 +template< class _Tp> constexpr inline bool +# 3437 +is_trivially_copy_assignable_v = __is_trivially_assignable(__add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> ); +# 3440 +template< class _Tp> constexpr inline bool +# 3441 +is_trivially_move_assignable_v = __is_trivially_assignable(__add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> ); +# 3461 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3462 +is_trivially_destructible_v = (is_trivially_destructible< _Tp> ::value); +# 3466 +template< class _Tp, class ..._Args> constexpr inline bool +# 3467 +is_nothrow_constructible_v = __is_nothrow_constructible(_Tp, _Args...); +# 3469 +template< class _Tp> constexpr inline bool +# 3470 +is_nothrow_default_constructible_v = __is_nothrow_constructible(_Tp); +# 3472 +template< class _Tp> constexpr inline bool +# 3473 +is_nothrow_copy_constructible_v = __is_nothrow_constructible(_Tp, __add_lval_ref_t< const _Tp> ); +# 3475 +template< class _Tp> constexpr inline bool +# 3476 +is_nothrow_move_constructible_v = __is_nothrow_constructible(_Tp, __add_rval_ref_t< _Tp> ); +# 3479 +template< class _Tp, class _Up> constexpr inline bool +# 3480 +is_nothrow_assignable_v = __is_nothrow_assignable(_Tp, _Up); +# 3482 +template< class _Tp> constexpr inline bool +# 3483 +is_nothrow_copy_assignable_v = __is_nothrow_assignable(__add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> ); +# 3486 +template< class _Tp> constexpr inline bool +# 3487 +is_nothrow_move_assignable_v = __is_nothrow_assignable(__add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> ); +# 3490 +template< class _Tp> constexpr inline bool +# 3491 +is_nothrow_destructible_v = (is_nothrow_destructible< _Tp> ::value); +# 3494 +template< class _Tp> constexpr inline bool +# 3495 +has_virtual_destructor_v = __has_virtual_destructor(_Tp); +# 3498 +template< class _Tp> constexpr inline size_t +# 3499 +alignment_of_v = (alignment_of< _Tp> ::value); +# 3501 +template< class _Tp> constexpr inline size_t +# 3502 +rank_v = (0); +# 3503 +template< class _Tp, size_t _Size> constexpr inline size_t +# 3504 +rank_v< _Tp [_Size]> = 1 + rank_v< _Tp> ; +# 3505 +template< class _Tp> constexpr inline size_t +# 3506 +rank_v< _Tp []> = 1 + rank_v< _Tp> ; +# 3508 +template< class _Tp, unsigned _Idx = 0U> constexpr inline size_t +# 3509 +extent_v = (0); +# 3510 +template< class _Tp, size_t _Size> constexpr inline size_t +# 3511 +extent_v< _Tp [_Size], 0> = _Size; +# 3512 +template< class _Tp, unsigned _Idx, size_t _Size> constexpr inline size_t +# 3513 +extent_v< _Tp [_Size], _Idx> = extent_v< _Tp, _Idx - (1)> ; +# 3514 +template< class _Tp> constexpr inline size_t +# 3515 +extent_v< _Tp [], 0> = (0); +# 3516 +template< class _Tp, unsigned _Idx> constexpr inline size_t +# 3517 +extent_v< _Tp [], _Idx> = extent_v< _Tp, _Idx - (1)> ; +# 3520 +template< class _Tp, class _Up> constexpr inline bool +# 3521 +is_same_v = __is_same(_Tp, _Up); +# 3528 +template< class _Base, class _Derived> constexpr inline bool +# 3529 +is_base_of_v = __is_base_of(_Base, _Derived); +# 3531 +template< class _From, class _To> constexpr inline bool +# 3532 +is_convertible_v = __is_convertible(_From, _To); +# 3537 +template< class _Fn, class ..._Args> constexpr inline bool +# 3538 +is_invocable_v = (is_invocable< _Fn, _Args...> ::value); +# 3539 +template< class _Fn, class ..._Args> constexpr inline bool +# 3540 +is_nothrow_invocable_v = (is_nothrow_invocable< _Fn, _Args...> ::value); +# 3542 +template< class _Ret, class _Fn, class ..._Args> constexpr inline bool +# 3543 +is_invocable_r_v = (is_invocable_r< _Ret, _Fn, _Args...> ::value); +# 3545 +template< class _Ret, class _Fn, class ..._Args> constexpr inline bool +# 3546 +is_nothrow_invocable_r_v = (is_nothrow_invocable_r< _Ret, _Fn, _Args...> ::value); +# 3554 +template< class _Tp> +# 3555 +struct has_unique_object_representations : public bool_constant< __has_unique_object_representations(remove_cv_t< remove_all_extents_t< _Tp> > )> { +# 3560 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 3562 +}; +# 3566 +template< class _Tp> constexpr inline bool +# 3567 +has_unique_object_representations_v = (has_unique_object_representations< _Tp> ::value); +# 3575 +template< class _Tp> +# 3576 +struct is_aggregate : public bool_constant< __is_aggregate(remove_cv_t< _Tp> )> { +# 3578 +}; +# 3585 +template< class _Tp> constexpr inline bool +# 3586 +is_aggregate_v = __is_aggregate(remove_cv_t< _Tp> ); +# 4018 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +} +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 49 +template< class _Tp> constexpr _Tp * +# 51 +__addressof(_Tp &__r) noexcept +# 52 +{ return __builtin_addressof(__r); } +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 69 +[[__nodiscard__]] constexpr _Tp && +# 71 +forward(typename remove_reference< _Tp> ::type &__t) noexcept +# 72 +{ return static_cast< _Tp &&>(__t); } +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 82 +[[__nodiscard__]] constexpr _Tp && +# 84 +forward(typename remove_reference< _Tp> ::type &&__t) noexcept +# 85 +{ +# 86 +static_assert((!std::template is_lvalue_reference< _Tp> ::value), "std::forward must not be used to convert an rvalue to an lvalue"); +# 88 +return static_cast< _Tp &&>(__t); +# 89 +} +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 135 +[[__nodiscard__]] constexpr typename remove_reference< _Tp> ::type && +# 137 +move(_Tp &&__t) noexcept +# 138 +{ return static_cast< typename remove_reference< _Tp> ::type &&>(__t); } +# 141 +template< class _Tp> +# 142 +struct __move_if_noexcept_cond : public __and_< __not_< is_nothrow_move_constructible< _Tp> > , is_copy_constructible< _Tp> > ::type { +# 144 +}; +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 156 +[[__nodiscard__]] constexpr __conditional_t< __move_if_noexcept_cond< _Tp> ::value, const _Tp &, _Tp &&> +# 159 +move_if_noexcept(_Tp &__x) noexcept +# 160 +{ return std::move(__x); } +# 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 173 +[[__nodiscard__]] constexpr _Tp * +# 175 +addressof(_Tp &__r) noexcept +# 176 +{ return std::__addressof(__r); } +# 180 +template < typename _Tp > + const _Tp * addressof ( const _Tp && ) = delete; +# 184 +template< class _Tp, class _Up = _Tp> inline _Tp +# 187 +__exchange(_Tp &__obj, _Up &&__new_val) +# 188 +{ +# 189 +_Tp __old_val = std::move(__obj); +# 190 +__obj = std::forward< _Up> (__new_val); +# 191 +return __old_val; +# 192 +} +# 216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> inline typename enable_if< __and_< __not_< __is_tuple_like< _Tp> > , is_move_constructible< _Tp> , is_move_assignable< _Tp> > ::value> ::type +# 226 +swap(_Tp &__a, _Tp &__b) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_move_assignable< _Tp> > ::value) +# 229 +{ +# 234 +_Tp __tmp = std::move(__a); +# 235 +__a = std::move(__b); +# 236 +__b = std::move(__tmp); +# 237 +} +# 242 +template< class _Tp, size_t _Nm> inline typename enable_if< __is_swappable< _Tp> ::value> ::type +# 250 +swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp> ::value) +# 252 +{ +# 253 +for (size_t __n = (0); __n < _Nm; ++__n) { +# 254 +swap(__a[__n], __b[__n]); } +# 255 +} +# 259 +} +# 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 48 +template< class _Tp> struct tuple_size; +# 55 +template< class _Tp, class +# 56 +_Up = typename remove_cv< _Tp> ::type, class +# 57 + = typename enable_if< is_same< _Tp, _Up> ::value> ::type, size_t +# 58 + = tuple_size< _Tp> ::value> using __enable_if_has_tuple_size = _Tp; +# 61 +template< class _Tp> +# 62 +struct tuple_size< const __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 63 +}; +# 65 +template< class _Tp> +# 66 +struct tuple_size< volatile __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 67 +}; +# 69 +template< class _Tp> +# 70 +struct tuple_size< const volatile __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 71 +}; +# 74 +template< class _Tp> constexpr inline size_t +# 75 +tuple_size_v = (tuple_size< _Tp> ::value); +# 79 +template< size_t __i, class _Tp> struct tuple_element; +# 83 +template< size_t __i, class _Tp> using __tuple_element_t = typename tuple_element< __i, _Tp> ::type; +# 86 +template< size_t __i, class _Tp> +# 87 +struct tuple_element< __i, const _Tp> { +# 89 +using type = const __tuple_element_t< __i, _Tp> ; +# 90 +}; +# 92 +template< size_t __i, class _Tp> +# 93 +struct tuple_element< __i, volatile _Tp> { +# 95 +using type = volatile __tuple_element_t< __i, _Tp> ; +# 96 +}; +# 98 +template< size_t __i, class _Tp> +# 99 +struct tuple_element< __i, const volatile _Tp> { +# 101 +using type = const volatile __tuple_element_t< __i, _Tp> ; +# 102 +}; +# 108 +template< class _Tp, class ..._Types> constexpr size_t +# 110 +__find_uniq_type_in_pack() +# 111 +{ +# 112 +constexpr size_t __sz = sizeof...(_Types); +# 113 +constexpr bool __found[__sz] = {__is_same(_Tp, _Types)...}; +# 114 +size_t __n = __sz; +# 115 +for (size_t __i = (0); __i < __sz; ++__i) +# 116 +{ +# 117 +if (__found[__i]) +# 118 +{ +# 119 +if (__n < __sz) { +# 120 +return __sz; } +# 121 +__n = __i; +# 122 +} +# 123 +} +# 124 +return __n; +# 125 +} +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 +template< size_t __i, class _Tp> using tuple_element_t = typename tuple_element< __i, _Tp> ::type; +# 140 +template< size_t ..._Indexes> struct _Index_tuple { }; +# 143 +template< size_t _Num> +# 144 +struct _Build_index_tuple { +# 154 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 +using __type = _Index_tuple< __integer_pack(_Num)...> ; +# 156 +}; +# 161 +template< class _Tp, _Tp ..._Idx> +# 162 +struct integer_sequence { +# 167 +typedef _Tp value_type; +# 168 +static constexpr size_t size() noexcept { return sizeof...(_Idx); } +# 169 +}; +# 172 +template< class _Tp, _Tp _Num> using make_integer_sequence = integer_sequence< _Tp, __integer_pack(_Num)...> ; +# 181 +template< size_t ..._Idx> using index_sequence = integer_sequence< unsigned long, _Idx...> ; +# 185 +template< size_t _Num> using make_index_sequence = make_integer_sequence< unsigned long, _Num> ; +# 189 +template< class ..._Types> using index_sequence_for = make_index_sequence< sizeof...(_Types)> ; +# 195 +struct in_place_t { +# 196 +explicit in_place_t() = default; +# 197 +}; +# 199 +constexpr inline in_place_t in_place{}; +# 201 +template< class _Tp> struct in_place_type_t { +# 203 +explicit in_place_type_t() = default; +# 204 +}; +# 206 +template< class _Tp> constexpr inline in_place_type_t< _Tp> +# 207 +in_place_type{}; +# 209 +template< size_t _Idx> struct in_place_index_t { +# 211 +explicit in_place_index_t() = default; +# 212 +}; +# 214 +template< size_t _Idx> constexpr inline in_place_index_t< _Idx> +# 215 +in_place_index{}; +# 217 +template< class > constexpr inline bool +# 218 +__is_in_place_type_v = false; +# 220 +template< class _Tp> constexpr inline bool +# 221 +__is_in_place_type_v< in_place_type_t< _Tp> > = true; +# 223 +template< class _Tp> using __is_in_place_type = bool_constant< __is_in_place_type_v< _Tp> > ; +# 226 +template< class > constexpr inline bool +# 227 +__is_in_place_index_v = false; +# 229 +template< size_t _Nm> constexpr inline bool +# 230 +__is_in_place_index_v< in_place_index_t< _Nm> > = true; +# 235 +template< size_t _Np, class ..._Types> +# 236 +struct _Nth_type { +# 237 +using type = __type_pack_element< _Np, _Types...> ; }; +# 284 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +struct piecewise_construct_t { explicit piecewise_construct_t() = default;}; +# 82 +constexpr inline piecewise_construct_t piecewise_construct = piecewise_construct_t(); +# 88 +template< class _T1, class _T2> struct pair; +# 91 +template< class ...> class tuple; +# 98 +template< class _Tp, size_t _Nm> struct array; +# 101 +template< size_t ...> struct _Index_tuple; +# 104 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type &get(pair< _Tp1, _Tp2> & __in) noexcept; +# 108 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type &&get(pair< _Tp1, _Tp2> && __in) noexcept; +# 112 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type &get(const pair< _Tp1, _Tp2> & __in) noexcept; +# 116 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type &&get(const pair< _Tp1, _Tp2> && __in) noexcept; +# 120 +template< size_t __i, class ..._Elements> constexpr __tuple_element_t< __i, tuple< _Elements...> > &get(tuple< _Elements...> & __t) noexcept; +# 124 +template< size_t __i, class ..._Elements> constexpr const __tuple_element_t< __i, tuple< _Elements...> > &get(const tuple< _Elements...> & __t) noexcept; +# 128 +template< size_t __i, class ..._Elements> constexpr __tuple_element_t< __i, tuple< _Elements...> > &&get(tuple< _Elements...> && __t) noexcept; +# 132 +template< size_t __i, class ..._Elements> constexpr const __tuple_element_t< __i, tuple< _Elements...> > &&get(const tuple< _Elements...> && __t) noexcept; +# 136 +template< size_t _Int, class _Tp, size_t _Nm> constexpr _Tp &get(array< _Tp, _Nm> &) noexcept; +# 140 +template< size_t _Int, class _Tp, size_t _Nm> constexpr _Tp &&get(array< _Tp, _Nm> &&) noexcept; +# 144 +template< size_t _Int, class _Tp, size_t _Nm> constexpr const _Tp &get(const array< _Tp, _Nm> &) noexcept; +# 148 +template< size_t _Int, class _Tp, size_t _Nm> constexpr const _Tp &&get(const array< _Tp, _Nm> &&) noexcept; +# 158 +template< bool , class _T1, class _T2> +# 159 +struct _PCC { +# 161 +template< class _U1, class _U2> static constexpr bool +# 162 +_ConstructiblePair() +# 163 +{ +# 164 +return __and_< is_constructible< _T1, const _U1 &> , is_constructible< _T2, const _U2 &> > ::value; +# 166 +} +# 168 +template< class _U1, class _U2> static constexpr bool +# 169 +_ImplicitlyConvertiblePair() +# 170 +{ +# 171 +return __and_< is_convertible< const _U1 &, _T1> , is_convertible< const _U2 &, _T2> > ::value; +# 173 +} +# 175 +template< class _U1, class _U2> static constexpr bool +# 176 +_MoveConstructiblePair() +# 177 +{ +# 178 +return __and_< is_constructible< _T1, _U1 &&> , is_constructible< _T2, _U2 &&> > ::value; +# 180 +} +# 182 +template< class _U1, class _U2> static constexpr bool +# 183 +_ImplicitlyMoveConvertiblePair() +# 184 +{ +# 185 +return __and_< is_convertible< _U1 &&, _T1> , is_convertible< _U2 &&, _T2> > ::value; +# 187 +} +# 188 +}; +# 190 +template< class _T1, class _T2> +# 191 +struct _PCC< false, _T1, _T2> { +# 193 +template< class _U1, class _U2> static constexpr bool +# 194 +_ConstructiblePair() +# 195 +{ +# 196 +return false; +# 197 +} +# 199 +template< class _U1, class _U2> static constexpr bool +# 200 +_ImplicitlyConvertiblePair() +# 201 +{ +# 202 +return false; +# 203 +} +# 205 +template< class _U1, class _U2> static constexpr bool +# 206 +_MoveConstructiblePair() +# 207 +{ +# 208 +return false; +# 209 +} +# 211 +template< class _U1, class _U2> static constexpr bool +# 212 +_ImplicitlyMoveConvertiblePair() +# 213 +{ +# 214 +return false; +# 215 +} +# 216 +}; +# 260 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _U1, class _U2> class __pair_base { +# 263 +template< class _T1, class _T2> friend struct pair; +# 264 +__pair_base() = default; +# 265 +~__pair_base() = default; +# 266 +__pair_base(const __pair_base &) = default; +# 267 +__pair_base &operator=(const __pair_base &) = delete; +# 269 +}; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> +# 284 +struct pair : public __pair_base< _T1, _T2> { +# 287 +typedef _T1 first_type; +# 288 +typedef _T2 second_type; +# 290 +_T1 first; +# 291 +_T2 second; +# 294 +constexpr pair(const pair &) = default; +# 295 +constexpr pair(pair &&) = default; +# 297 +template< class ..._Args1, class ..._Args2> pair(std::piecewise_construct_t, tuple< _Args1...> , tuple< _Args2...> ); +# 303 +void swap(pair &__p) noexcept(__and_< __is_nothrow_swappable< _T1> , __is_nothrow_swappable< _T2> > ::value) +# 306 +{ +# 307 +using std::swap; +# 308 +swap(first, __p.first); +# 309 +swap(second, __p.second); +# 310 +} +# 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +private: template< class ..._Args1, std::size_t ..._Indexes1, class ... +# 333 +_Args2, std::size_t ..._Indexes2> +# 332 +pair(tuple< _Args1...> &, tuple< _Args2...> &, _Index_tuple< _Indexes1...> , _Index_tuple< _Indexes2...> ); +# 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +public: +# 719 +template< class _U1 = _T1, class +# 720 +_U2 = _T2, typename enable_if< __and_< __is_implicitly_default_constructible< _U1> , __is_implicitly_default_constructible< _U2> > ::value, bool> ::type +# 724 + = true> constexpr +# 725 +pair() : first(), second() +# 726 +{ } +# 728 +template< class _U1 = _T1, class +# 729 +_U2 = _T2, typename enable_if< __and_< is_default_constructible< _U1> , is_default_constructible< _U2> , __not_< __and_< __is_implicitly_default_constructible< _U1> , __is_implicitly_default_constructible< _U2> > > > ::value, bool> ::type +# 736 + = false> constexpr explicit +# 737 +pair() : first(), second() +# 738 +{ } +# 742 +using _PCCP = _PCC< true, _T1, _T2> ; +# 746 +template< class _U1 = _T1, class _U2 = _T2, typename enable_if< _PCC< true, _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && _PCC< true, _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> (), bool> ::type +# 751 + = true> constexpr +# 752 +pair(const _T1 &__a, const _T2 &__b) : first(__a), second(__b) +# 753 +{ } +# 756 +template< class _U1 = _T1, class _U2 = _T2, typename enable_if< _PCC< true, _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && (!_PCC< true, _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> ()), bool> ::type +# 761 + = false> constexpr explicit +# 762 +pair(const _T1 &__a, const _T2 &__b) : first(__a), second(__b) +# 763 +{ } +# 767 +template< class _U1, class _U2> using _PCCFP = _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ; +# 773 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> (), bool> ::type +# 778 + = true> constexpr +# 779 +pair(const pair< _U1, _U2> &__p) : first((__p.first)), second((__p.second)) +# 781 +{ ; } +# 783 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && (!_PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> ()), bool> ::type +# 788 + = false> constexpr explicit +# 789 +pair(const pair< _U1, _U2> &__p) : first((__p.first)), second((__p.second)) +# 791 +{ ; } +# 807 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +private: struct __zero_as_null_pointer_constant { +# 809 +__zero_as_null_pointer_constant(int (__zero_as_null_pointer_constant::*)) +# 810 +{ } +# 811 +template < typename _Tp, + typename = __enable_if_t < is_null_pointer < _Tp > :: value > > + __zero_as_null_pointer_constant ( _Tp ) = delete; +# 814 +}; +# 830 +public: +# 821 +template< class _U1, std::__enable_if_t< __and_< __not_< is_reference< _U1> > , is_pointer< _T2> , is_constructible< _T1, _U1> , __not_< is_constructible< _T1, const _U1 &> > , is_convertible< _U1, _T1> > ::value, bool> +# 827 + = true> +# 828 +__attribute((__deprecated__("use \'nullptr\' instead of \'0\' to initialize std::pair of move-only type and pointer"))) constexpr +# 830 +pair(_U1 &&__x, __zero_as_null_pointer_constant, ...) : first(std::forward< _U1> (__x)), second(nullptr) +# 832 +{ ; } +# 834 +template< class _U1, std::__enable_if_t< __and_< __not_< is_reference< _U1> > , is_pointer< _T2> , is_constructible< _T1, _U1> , __not_< is_constructible< _T1, const _U1 &> > , __not_< is_convertible< _U1, _T1> > > ::value, bool> +# 840 + = false> +# 841 +__attribute((__deprecated__("use \'nullptr\' instead of \'0\' to initialize std::pair of move-only type and pointer"))) constexpr explicit +# 843 +pair(_U1 &&__x, __zero_as_null_pointer_constant, ...) : first(std::forward< _U1> (__x)), second(nullptr) +# 845 +{ ; } +# 847 +template< class _U2, std::__enable_if_t< __and_< is_pointer< _T1> , __not_< is_reference< _U2> > , is_constructible< _T2, _U2> , __not_< is_constructible< _T2, const _U2 &> > , is_convertible< _U2, _T2> > ::value, bool> +# 853 + = true> +# 854 +__attribute((__deprecated__("use \'nullptr\' instead of \'0\' to initialize std::pair of move-only type and pointer"))) constexpr +# 856 +pair(__zero_as_null_pointer_constant, _U2 &&__y, ...) : first(nullptr), second(std::forward< _U2> (__y)) +# 858 +{ ; } +# 860 +template< class _U2, std::__enable_if_t< __and_< is_pointer< _T1> , __not_< is_reference< _U2> > , is_constructible< _T2, _U2> , __not_< is_constructible< _T2, const _U2 &> > , __not_< is_convertible< _U2, _T2> > > ::value, bool> +# 866 + = false> +# 867 +__attribute((__deprecated__("use \'nullptr\' instead of \'0\' to initialize std::pair of move-only type and pointer"))) constexpr explicit +# 869 +pair(__zero_as_null_pointer_constant, _U2 &&__y, ...) : first(nullptr), second(std::forward< _U2> (__y)) +# 871 +{ ; } +# 875 +template< class _U1, class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && _PCC< true, _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> (), bool> ::type +# 880 + = true> constexpr +# 881 +pair(_U1 &&__x, _U2 &&__y) : first(std::forward< _U1> (__x)), second(std::forward< _U2> (__y)) +# 883 +{ ; } +# 885 +template< class _U1, class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && (!_PCC< true, _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> ()), bool> ::type +# 890 + = false> constexpr explicit +# 891 +pair(_U1 &&__x, _U2 &&__y) : first(std::forward< _U1> (__x)), second(std::forward< _U2> (__y)) +# 893 +{ ; } +# 896 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> (), bool> ::type +# 901 + = true> constexpr +# 902 +pair(pair< _U1, _U2> &&__p) : first(std::forward< _U1> ((__p.first))), second(std::forward< _U2> ((__p.second))) +# 905 +{ ; } +# 907 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && (!_PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> ()), bool> ::type +# 912 + = false> constexpr explicit +# 913 +pair(pair< _U1, _U2> &&__p) : first(std::forward< _U1> ((__p.first))), second(std::forward< _U2> ((__p.second))) +# 916 +{ ; } +# 921 +pair &operator=(std::__conditional_t< __and_< is_copy_assignable< _T1> , is_copy_assignable< _T2> > ::value, const pair &, const std::__nonesuch &> +# 923 +__p) +# 924 +{ +# 925 +(first) = (__p.first); +# 926 +(second) = (__p.second); +# 927 +return *this; +# 928 +} +# 931 +pair &operator=(std::__conditional_t< __and_< is_move_assignable< _T1> , is_move_assignable< _T2> > ::value, pair &&, std::__nonesuch &&> +# 933 +__p) noexcept(__and_< is_nothrow_move_assignable< _T1> , is_nothrow_move_assignable< _T2> > ::value) +# 936 +{ +# 937 +(first) = std::forward< first_type> ((__p.first)); +# 938 +(second) = std::forward< second_type> ((__p.second)); +# 939 +return *this; +# 940 +} +# 942 +template< class _U1, class _U2> typename enable_if< __and_< is_assignable< _T1 &, const _U1 &> , is_assignable< _T2 &, const _U2 &> > ::value, pair &> ::type +# 946 +operator=(const pair< _U1, _U2> &__p) +# 947 +{ +# 948 +(first) = (__p.first); +# 949 +(second) = (__p.second); +# 950 +return *this; +# 951 +} +# 953 +template< class _U1, class _U2> typename enable_if< __and_< is_assignable< _T1 &, _U1 &&> , is_assignable< _T2 &, _U2 &&> > ::value, pair &> ::type +# 957 +operator=(pair< _U1, _U2> &&__p) +# 958 +{ +# 959 +(first) = std::forward< _U1> ((__p.first)); +# 960 +(second) = std::forward< _U2> ((__p.second)); +# 961 +return *this; +# 962 +} +# 995 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +}; +# 1000 +template< class _T1, class _T2> pair(_T1, _T2)->pair< _T1, _T2> ; +# 1031 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr bool +# 1033 +operator==(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1034 +{ return ((__x.first) == (__y.first)) && ((__x.second) == (__y.second)); } +# 1043 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr bool +# 1045 +operator<(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1046 +{ return ((__x.first) < (__y.first)) || ((!((__y.first) < (__x.first))) && ((__x.second) < (__y.second))); +# 1047 +} +# 1050 +template< class _T1, class _T2> constexpr bool +# 1052 +operator!=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1053 +{ return !(__x == __y); } +# 1056 +template< class _T1, class _T2> constexpr bool +# 1058 +operator>(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1059 +{ return __y < __x; } +# 1062 +template< class _T1, class _T2> constexpr bool +# 1064 +operator<=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1065 +{ return !(__y < __x); } +# 1068 +template< class _T1, class _T2> constexpr bool +# 1070 +operator>=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1071 +{ return !(__x < __y); } +# 1080 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> inline typename enable_if< __and_< __is_swappable< _T1> , __is_swappable< _T2> > ::value> ::type +# 1089 +swap(pair< _T1, _T2> &__x, pair< _T1, _T2> &__y) noexcept(noexcept(__x.swap(__y))) +# 1091 +{ __x.swap(__y); } +# 1103 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template < typename _T1, typename _T2 > + typename enable_if < ! __and_ < __is_swappable < _T1 >, + __is_swappable < _T2 > > :: value > :: type + swap ( pair < _T1, _T2 > &, pair < _T1, _T2 > & ) = delete; +# 1129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr pair< typename __decay_and_strip< _T1> ::__type, typename __decay_and_strip< _T2> ::__type> +# 1132 +make_pair(_T1 &&__x, _T2 &&__y) +# 1133 +{ +# 1134 +typedef typename __decay_and_strip< _T1> ::__type __ds_type1; +# 1135 +typedef typename __decay_and_strip< _T2> ::__type __ds_type2; +# 1136 +typedef pair< typename __decay_and_strip< _T1> ::__type, typename __decay_and_strip< _T2> ::__type> __pair_type; +# 1137 +return __pair_type(std::forward< _T1> (__x), std::forward< _T2> (__y)); +# 1138 +} +# 1152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> +# 1153 +struct __is_tuple_like_impl< pair< _T1, _T2> > : public true_type { +# 1154 +}; +# 1158 +template< class _Tp1, class _Tp2> +# 1159 +struct tuple_size< pair< _Tp1, _Tp2> > : public integral_constant< unsigned long, 2UL> { +# 1160 +}; +# 1163 +template< class _Tp1, class _Tp2> +# 1164 +struct tuple_element< 0, pair< _Tp1, _Tp2> > { +# 1165 +typedef _Tp1 type; }; +# 1168 +template< class _Tp1, class _Tp2> +# 1169 +struct tuple_element< 1, pair< _Tp1, _Tp2> > { +# 1170 +typedef _Tp2 type; }; +# 1174 +template< size_t __i, class ..._Types> struct tuple_element< __i, tuple< _Types...> > ; +# 1178 +template< class _Tp1, class _Tp2> constexpr inline size_t +# 1179 +tuple_size_v< pair< _Tp1, _Tp2> > = (2); +# 1181 +template< class _Tp1, class _Tp2> constexpr inline size_t +# 1182 +tuple_size_v< const pair< _Tp1, _Tp2> > = (2); +# 1184 +template< class _Tp> constexpr inline bool +# 1185 +__is_pair = false; +# 1187 +template< class _Tp, class _Up> constexpr inline bool +# 1188 +__is_pair< pair< _Tp, _Up> > = true; +# 1192 +template< size_t _Int> struct __pair_get; +# 1196 +template<> struct __pair_get< 0UL> { +# 1198 +template< class _Tp1, class _Tp2> static constexpr _Tp1 & +# 1200 +__get(pair< _Tp1, _Tp2> &__pair) noexcept +# 1201 +{ return __pair.first; } +# 1203 +template< class _Tp1, class _Tp2> static constexpr _Tp1 && +# 1205 +__move_get(pair< _Tp1, _Tp2> &&__pair) noexcept +# 1206 +{ return std::forward< _Tp1> ((__pair.first)); } +# 1208 +template< class _Tp1, class _Tp2> static constexpr const _Tp1 & +# 1210 +__const_get(const pair< _Tp1, _Tp2> &__pair) noexcept +# 1211 +{ return __pair.first; } +# 1213 +template< class _Tp1, class _Tp2> static constexpr const _Tp1 && +# 1215 +__const_move_get(const pair< _Tp1, _Tp2> &&__pair) noexcept +# 1216 +{ return std::forward< const _Tp1> ((__pair.first)); } +# 1217 +}; +# 1220 +template<> struct __pair_get< 1UL> { +# 1222 +template< class _Tp1, class _Tp2> static constexpr _Tp2 & +# 1224 +__get(pair< _Tp1, _Tp2> &__pair) noexcept +# 1225 +{ return __pair.second; } +# 1227 +template< class _Tp1, class _Tp2> static constexpr _Tp2 && +# 1229 +__move_get(pair< _Tp1, _Tp2> &&__pair) noexcept +# 1230 +{ return std::forward< _Tp2> ((__pair.second)); } +# 1232 +template< class _Tp1, class _Tp2> static constexpr const _Tp2 & +# 1234 +__const_get(const pair< _Tp1, _Tp2> &__pair) noexcept +# 1235 +{ return __pair.second; } +# 1237 +template< class _Tp1, class _Tp2> static constexpr const _Tp2 && +# 1239 +__const_move_get(const pair< _Tp1, _Tp2> &&__pair) noexcept +# 1240 +{ return std::forward< const _Tp2> ((__pair.second)); } +# 1241 +}; +# 1248 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type & +# 1250 +get(pair< _Tp1, _Tp2> &__in) noexcept +# 1251 +{ return __pair_get< _Int> ::__get(__in); } +# 1253 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type && +# 1255 +get(pair< _Tp1, _Tp2> &&__in) noexcept +# 1256 +{ return __pair_get< _Int> ::__move_get(std::move(__in)); } +# 1258 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type & +# 1260 +get(const pair< _Tp1, _Tp2> &__in) noexcept +# 1261 +{ return __pair_get< _Int> ::__const_get(__in); } +# 1263 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type && +# 1265 +get(const pair< _Tp1, _Tp2> &&__in) noexcept +# 1266 +{ return __pair_get< _Int> ::__const_move_get(std::move(__in)); } +# 1270 +template< class _Tp, class _Up> constexpr _Tp & +# 1272 +get(pair< _Tp, _Up> &__p) noexcept +# 1273 +{ return __p.first; } +# 1275 +template< class _Tp, class _Up> constexpr const _Tp & +# 1277 +get(const pair< _Tp, _Up> &__p) noexcept +# 1278 +{ return __p.first; } +# 1280 +template< class _Tp, class _Up> constexpr _Tp && +# 1282 +get(pair< _Tp, _Up> &&__p) noexcept +# 1283 +{ return std::move((__p.first)); } +# 1285 +template< class _Tp, class _Up> constexpr const _Tp && +# 1287 +get(const pair< _Tp, _Up> &&__p) noexcept +# 1288 +{ return std::move((__p.first)); } +# 1290 +template< class _Tp, class _Up> constexpr _Tp & +# 1292 +get(pair< _Up, _Tp> &__p) noexcept +# 1293 +{ return __p.second; } +# 1295 +template< class _Tp, class _Up> constexpr const _Tp & +# 1297 +get(const pair< _Up, _Tp> &__p) noexcept +# 1298 +{ return __p.second; } +# 1300 +template< class _Tp, class _Up> constexpr _Tp && +# 1302 +get(pair< _Up, _Tp> &&__p) noexcept +# 1303 +{ return std::move((__p.second)); } +# 1305 +template< class _Tp, class _Up> constexpr const _Tp && +# 1307 +get(const pair< _Up, _Tp> &&__p) noexcept +# 1308 +{ return std::move((__p.second)); } +# 1333 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +} +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +struct input_iterator_tag { }; +# 96 +struct output_iterator_tag { }; +# 99 +struct forward_iterator_tag : public input_iterator_tag { }; +# 103 +struct bidirectional_iterator_tag : public forward_iterator_tag { }; +# 107 +struct random_access_iterator_tag : public bidirectional_iterator_tag { }; +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +template< class _Category, class _Tp, class _Distance = ptrdiff_t, class +# 126 +_Pointer = _Tp *, class _Reference = _Tp &> +# 127 +struct [[__deprecated__]] iterator { +# 130 +typedef _Category iterator_category; +# 132 +typedef _Tp value_type; +# 134 +typedef _Distance difference_type; +# 136 +typedef _Pointer pointer; +# 138 +typedef _Reference reference; +# 139 +}; +# 149 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +template< class _Iterator> struct iterator_traits; +# 155 +template< class _Iterator, class = __void_t< > > +# 156 +struct __iterator_traits { }; +# 160 +template< class _Iterator> +# 161 +struct __iterator_traits< _Iterator, __void_t< typename _Iterator::iterator_category, typename _Iterator::value_type, typename _Iterator::difference_type, typename _Iterator::pointer, typename _Iterator::reference> > { +# 168 +typedef typename _Iterator::iterator_category iterator_category; +# 169 +typedef typename _Iterator::value_type value_type; +# 170 +typedef typename _Iterator::difference_type difference_type; +# 171 +typedef typename _Iterator::pointer pointer; +# 172 +typedef typename _Iterator::reference reference; +# 173 +}; +# 176 +template< class _Iterator> +# 177 +struct iterator_traits : public __iterator_traits< _Iterator> { +# 178 +}; +# 209 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +template< class _Tp> +# 210 +struct iterator_traits< _Tp *> { +# 212 +typedef random_access_iterator_tag iterator_category; +# 213 +typedef _Tp value_type; +# 214 +typedef ptrdiff_t difference_type; +# 215 +typedef _Tp *pointer; +# 216 +typedef _Tp &reference; +# 217 +}; +# 220 +template< class _Tp> +# 221 +struct iterator_traits< const _Tp *> { +# 223 +typedef random_access_iterator_tag iterator_category; +# 224 +typedef _Tp value_type; +# 225 +typedef ptrdiff_t difference_type; +# 226 +typedef const _Tp *pointer; +# 227 +typedef const _Tp &reference; +# 228 +}; +# 235 +template< class _Iter> +# 236 +__attribute((__always_inline__)) constexpr typename iterator_traits< _Iter> ::iterator_category +# 239 +__iterator_category(const _Iter &) +# 240 +{ return typename iterator_traits< _Iter> ::iterator_category(); } +# 245 +template< class _Iter> using __iter_category_t = typename iterator_traits< _Iter> ::iterator_category; +# 249 +template< class _InIter> using _RequireInputIter = __enable_if_t< is_convertible< __iter_category_t< _InIter> , input_iterator_tag> ::value> ; +# 254 +template< class _It, class +# 255 +_Cat = __iter_category_t< _It> > +# 256 +struct __is_random_access_iter : public is_base_of< random_access_iterator_tag, _Cat> { +# 259 +typedef is_base_of< std::random_access_iterator_tag, _Cat> _Base; +# 260 +enum { __value = is_base_of< std::random_access_iterator_tag, _Cat> ::value}; +# 261 +}; +# 270 +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 74 +template< class > struct _List_iterator; +# 75 +template< class > struct _List_const_iterator; +# 78 +template< class _InputIterator> constexpr typename iterator_traits< _InputIterator> ::difference_type +# 81 +__distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) +# 83 +{ +# 87 +typename iterator_traits< _InputIterator> ::difference_type __n = (0); +# 88 +while (__first != __last) +# 89 +{ +# 90 +++__first; +# 91 +++__n; +# 92 +} +# 93 +return __n; +# 94 +} +# 96 +template< class _RandomAccessIterator> +# 97 +__attribute((__always_inline__)) constexpr typename iterator_traits< _RandomAccessIterator> ::difference_type +# 100 +__distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) +# 102 +{ +# 106 +return __last - __first; +# 107 +} +# 111 +template< class _Tp> ptrdiff_t __distance(_List_iterator< _Tp> , _List_iterator< _Tp> , input_iterator_tag); +# 117 +template< class _Tp> ptrdiff_t __distance(_List_const_iterator< _Tp> , _List_const_iterator< _Tp> , input_iterator_tag); +# 126 +template < typename _OutputIterator > + void + __distance ( _OutputIterator, _OutputIterator, output_iterator_tag ) = delete; +# 144 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 +template< class _InputIterator> +# 145 +[[__nodiscard__]] __attribute((__always_inline__)) constexpr typename iterator_traits< _InputIterator> ::difference_type +# 148 +distance(_InputIterator __first, _InputIterator __last) +# 149 +{ +# 151 +return std::__distance(__first, __last, std::__iterator_category(__first)); +# 153 +} +# 155 +template< class _InputIterator, class _Distance> constexpr void +# 157 +__advance(_InputIterator &__i, _Distance __n, input_iterator_tag) +# 158 +{ +# 161 +do { if (std::__is_constant_evaluated() && (!((bool)(__n >= 0)))) { std::__glibcxx_assert_fail(); } } while (false); +# 162 +while (__n--) { +# 163 +++__i; } +# 164 +} +# 166 +template< class _BidirectionalIterator, class _Distance> constexpr void +# 168 +__advance(_BidirectionalIterator &__i, _Distance __n, bidirectional_iterator_tag) +# 170 +{ +# 174 +if (__n > 0) { +# 175 +while (__n--) { +# 176 +++__i; } } else { +# 178 +while (__n++) { +# 179 +--__i; } } +# 180 +} +# 182 +template< class _RandomAccessIterator, class _Distance> constexpr void +# 184 +__advance(_RandomAccessIterator &__i, _Distance __n, random_access_iterator_tag) +# 186 +{ +# 190 +if (__builtin_constant_p(__n) && (__n == 1)) { +# 191 +++__i; } else { +# 192 +if (__builtin_constant_p(__n) && (__n == (-1))) { +# 193 +--__i; } else { +# 195 +__i += __n; } } +# 196 +} +# 200 +template < typename _OutputIterator, typename _Distance > + void + __advance ( _OutputIterator &, _Distance, output_iterator_tag ) = delete; +# 217 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 +template< class _InputIterator, class _Distance> +# 218 +__attribute((__always_inline__)) constexpr void +# 220 +advance(_InputIterator &__i, _Distance __n) +# 221 +{ +# 223 +typename iterator_traits< _InputIterator> ::difference_type __d = __n; +# 224 +std::__advance(__i, __d, std::__iterator_category(__i)); +# 225 +} +# 229 +template< class _InputIterator> +# 230 +[[__nodiscard__]] [[__gnu__::__always_inline__]] constexpr _InputIterator +# 232 +next(_InputIterator __x, typename iterator_traits< _InputIterator> ::difference_type +# 233 +__n = 1) +# 234 +{ +# 237 +std::advance(__x, __n); +# 238 +return __x; +# 239 +} +# 241 +template< class _BidirectionalIterator> +# 242 +[[__nodiscard__]] [[__gnu__::__always_inline__]] constexpr _BidirectionalIterator +# 244 +prev(_BidirectionalIterator __x, typename iterator_traits< _BidirectionalIterator> ::difference_type +# 245 +__n = 1) +# 246 +{ +# 250 +std::advance(__x, -__n); +# 251 +return __x; +# 252 +} +# 257 +} +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 48 +class __undefined; +# 52 +template< class _Tp> +# 53 +struct __get_first_arg { +# 54 +using type = __undefined; }; +# 56 +template< template< class , class ...> class _SomeTemplate, class _Tp, class ... +# 57 +_Types> +# 58 +struct __get_first_arg< _SomeTemplate< _Tp, _Types...> > { +# 59 +using type = _Tp; }; +# 63 +template< class _Tp, class _Up> +# 64 +struct __replace_first_arg { +# 65 +}; +# 67 +template< template< class , class ...> class _SomeTemplate, class _Up, class +# 68 +_Tp, class ..._Types> +# 69 +struct __replace_first_arg< _SomeTemplate< _Tp, _Types...> , _Up> { +# 70 +using type = _SomeTemplate< _Up, _Types...> ; }; +# 73 +template< class _Ptr, class = void> +# 74 +struct __ptr_traits_elem : public __get_first_arg< _Ptr> { +# 75 +}; +# 83 +template< class _Ptr> +# 84 +struct __ptr_traits_elem< _Ptr, __void_t< typename _Ptr::element_type> > { +# 85 +using type = typename _Ptr::element_type; }; +# 88 +template< class _Ptr> using __ptr_traits_elem_t = typename __ptr_traits_elem< _Ptr> ::type; +# 94 +template< class _Ptr, class _Elt, bool = is_void< _Elt> ::value> +# 95 +struct __ptr_traits_ptr_to { +# 97 +using pointer = _Ptr; +# 98 +using element_type = _Elt; +# 107 +static pointer pointer_to(element_type &__r) +# 113 +{ return pointer::pointer_to(__r); } +# 114 +}; +# 117 +template< class _Ptr, class _Elt> +# 118 +struct __ptr_traits_ptr_to< _Ptr, _Elt, true> { +# 119 +}; +# 122 +template< class _Tp> +# 123 +struct __ptr_traits_ptr_to< _Tp *, _Tp, false> { +# 125 +using pointer = _Tp *; +# 126 +using element_type = _Tp; +# 134 +static pointer pointer_to(element_type &__r) noexcept +# 135 +{ return std::addressof(__r); } +# 136 +}; +# 138 +template< class _Ptr, class _Elt> +# 139 +struct __ptr_traits_impl : public __ptr_traits_ptr_to< _Ptr, _Elt> { +# 143 +private: +# 142 +template< class _Tp> using __diff_t = typename _Tp::difference_type; +# 145 +template< class _Tp, class _Up> using __rebind = __type_identity< typename _Tp::template rebind< _Up> > ; +# 150 +public: using pointer = _Ptr; +# 153 +using element_type = _Elt; +# 156 +using difference_type = std::__detected_or_t< std::ptrdiff_t, __diff_t, _Ptr> ; +# 159 +template< class _Up> using rebind = typename std::__detected_or_t< __replace_first_arg< _Ptr, _Up> , __rebind, _Ptr, _Up> ::type; +# 162 +}; +# 166 +template< class _Ptr> +# 167 +struct __ptr_traits_impl< _Ptr, __undefined> { +# 168 +}; +# 176 +template< class _Ptr> +# 177 +struct pointer_traits : public __ptr_traits_impl< _Ptr, __ptr_traits_elem_t< _Ptr> > { +# 178 +}; +# 186 +template< class _Tp> +# 187 +struct pointer_traits< _Tp *> : public __ptr_traits_ptr_to< _Tp *, _Tp> { +# 190 +typedef _Tp *pointer; +# 192 +typedef _Tp element_type; +# 194 +typedef std::ptrdiff_t difference_type; +# 196 +template< class _Up> using rebind = _Up *; +# 197 +}; +# 200 +template< class _Ptr, class _Tp> using __ptr_rebind = typename pointer_traits< _Ptr> ::template rebind< _Tp> ; +# 203 +template< class _Tp> constexpr _Tp * +# 205 +__to_address(_Tp *__ptr) noexcept +# 206 +{ +# 207 +static_assert((!std::template is_function< _Tp> ::value), "not a function pointer"); +# 208 +return __ptr; +# 209 +} +# 212 +template< class _Ptr> constexpr typename pointer_traits< _Ptr> ::element_type * +# 214 +__to_address(const _Ptr &__ptr) +# 215 +{ return std::__to_address(__ptr.operator->()); } +# 258 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 +} +# 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 128 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> +# 129 +class reverse_iterator : public iterator< typename iterator_traits< _Iterator> ::iterator_category, typename iterator_traits< _Iterator> ::value_type, typename iterator_traits< _Iterator> ::difference_type, typename iterator_traits< _Iterator> ::pointer, typename iterator_traits< _Iterator> ::reference> { +# 136 +template< class _Iter> friend class reverse_iterator; +# 148 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +protected: _Iterator current; +# 150 +typedef iterator_traits< _Iterator> __traits_type; +# 153 +public: typedef _Iterator iterator_type; +# 154 +typedef typename iterator_traits< _Iterator> ::pointer pointer; +# 156 +typedef typename iterator_traits< _Iterator> ::difference_type difference_type; +# 157 +typedef typename iterator_traits< _Iterator> ::reference reference; +# 179 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +constexpr reverse_iterator() noexcept(noexcept((_Iterator()))) : current() +# 182 +{ } +# 188 +constexpr explicit reverse_iterator(iterator_type __x) noexcept(noexcept(((_Iterator)__x))) : current(__x) +# 191 +{ } +# 197 +constexpr reverse_iterator(const reverse_iterator &__x) noexcept(noexcept(((_Iterator)(__x.current)))) : current(__x.current) +# 200 +{ } +# 203 +reverse_iterator &operator=(const reverse_iterator &) = default; +# 210 +template< class _Iter> constexpr +# 215 +reverse_iterator(const reverse_iterator< _Iter> &__x) noexcept(noexcept(((_Iterator)(__x.current)))) : current((__x.current)) +# 218 +{ } +# 221 +template< class _Iter> constexpr reverse_iterator & +# 228 +operator=(const reverse_iterator< _Iter> &__x) noexcept(noexcept(((current) = (__x.current)))) +# 230 +{ +# 231 +(current) = (__x.current); +# 232 +return *this; +# 233 +} +# 239 +[[__nodiscard__]] constexpr iterator_type +# 241 +base() const noexcept(noexcept(((_Iterator)(current)))) +# 243 +{ return current; } +# 255 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +[[__nodiscard__]] constexpr reference +# 257 +operator*() const +# 258 +{ +# 259 +_Iterator __tmp = current; +# 260 +return *(--__tmp); +# 261 +} +# 268 +[[__nodiscard__]] constexpr pointer +# 270 +operator->() const +# 275 +{ +# 278 +_Iterator __tmp = current; +# 279 +--__tmp; +# 280 +return _S_to_pointer(__tmp); +# 281 +} +# 289 +constexpr reverse_iterator &operator++() +# 290 +{ +# 291 +--(current); +# 292 +return *this; +# 293 +} +# 301 +constexpr reverse_iterator operator++(int) +# 302 +{ +# 303 +reverse_iterator __tmp = *this; +# 304 +--(current); +# 305 +return __tmp; +# 306 +} +# 314 +constexpr reverse_iterator &operator--() +# 315 +{ +# 316 +++(current); +# 317 +return *this; +# 318 +} +# 326 +constexpr reverse_iterator operator--(int) +# 327 +{ +# 328 +reverse_iterator __tmp = *this; +# 329 +++(current); +# 330 +return __tmp; +# 331 +} +# 338 +[[__nodiscard__]] constexpr reverse_iterator +# 340 +operator+(difference_type __n) const +# 341 +{ return ((reverse_iterator)((current) - __n)); } +# 350 +constexpr reverse_iterator &operator+=(difference_type __n) +# 351 +{ +# 352 +(current) -= __n; +# 353 +return *this; +# 354 +} +# 361 +[[__nodiscard__]] constexpr reverse_iterator +# 363 +operator-(difference_type __n) const +# 364 +{ return ((reverse_iterator)((current) + __n)); } +# 373 +constexpr reverse_iterator &operator-=(difference_type __n) +# 374 +{ +# 375 +(current) += __n; +# 376 +return *this; +# 377 +} +# 384 +[[__nodiscard__]] constexpr reference +# 386 +operator[](difference_type __n) const +# 387 +{ return *((*this) + __n); } +# 418 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +private: +# 416 +template< class _Tp> static constexpr _Tp * +# 418 +_S_to_pointer(_Tp *__p) +# 419 +{ return __p; } +# 421 +template< class _Tp> static constexpr pointer +# 423 +_S_to_pointer(_Tp __t) +# 424 +{ return __t.operator->(); } +# 425 +}; +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> +# 439 +[[__nodiscard__]] constexpr bool +# 441 +operator==(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 442 +__y) +# 443 +{ return __x.base() == __y.base(); } +# 445 +template< class _Iterator> +# 446 +[[__nodiscard__]] constexpr bool +# 448 +operator<(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 449 +__y) +# 450 +{ return __y.base() < __x.base(); } +# 452 +template< class _Iterator> +# 453 +[[__nodiscard__]] constexpr bool +# 455 +operator!=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 456 +__y) +# 457 +{ return !(__x == __y); } +# 459 +template< class _Iterator> +# 460 +[[__nodiscard__]] constexpr bool +# 462 +operator>(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 463 +__y) +# 464 +{ return __y < __x; } +# 466 +template< class _Iterator> +# 467 +[[__nodiscard__]] constexpr bool +# 469 +operator<=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 470 +__y) +# 471 +{ return !(__y < __x); } +# 473 +template< class _Iterator> +# 474 +[[__nodiscard__]] constexpr bool +# 476 +operator>=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 477 +__y) +# 478 +{ return !(__x < __y); } +# 483 +template< class _IteratorL, class _IteratorR> +# 484 +[[__nodiscard__]] constexpr bool +# 486 +operator==(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 487 +__y) +# 488 +{ return __x.base() == __y.base(); } +# 490 +template< class _IteratorL, class _IteratorR> +# 491 +[[__nodiscard__]] constexpr bool +# 493 +operator<(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 494 +__y) +# 495 +{ return __x.base() > __y.base(); } +# 497 +template< class _IteratorL, class _IteratorR> +# 498 +[[__nodiscard__]] constexpr bool +# 500 +operator!=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 501 +__y) +# 502 +{ return __x.base() != __y.base(); } +# 504 +template< class _IteratorL, class _IteratorR> +# 505 +[[__nodiscard__]] constexpr bool +# 507 +operator>(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 508 +__y) +# 509 +{ return __x.base() < __y.base(); } +# 511 +template< class _IteratorL, class _IteratorR> constexpr bool +# 513 +operator<=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 514 +__y) +# 515 +{ return __x.base() >= __y.base(); } +# 517 +template< class _IteratorL, class _IteratorR> +# 518 +[[__nodiscard__]] constexpr bool +# 520 +operator>=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 521 +__y) +# 522 +{ return __x.base() <= __y.base(); } +# 615 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR> +# 616 +[[__nodiscard__]] constexpr auto +# 618 +operator-(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 619 +__y)->__decltype((__y.base() - __x.base())) +# 621 +{ return __y.base() - __x.base(); } +# 624 +template< class _Iterator> +# 625 +[[__nodiscard__]] constexpr reverse_iterator< _Iterator> +# 627 +operator+(typename reverse_iterator< _Iterator> ::difference_type __n, const reverse_iterator< _Iterator> & +# 628 +__x) +# 629 +{ return ((reverse_iterator< _Iterator> )(__x.base() - __n)); } +# 633 +template< class _Iterator> constexpr reverse_iterator< _Iterator> +# 635 +__make_reverse_iterator(_Iterator __i) +# 636 +{ return ((reverse_iterator< _Iterator> )(__i)); } +# 642 +template< class _Iterator> +# 643 +[[__nodiscard__]] constexpr reverse_iterator< _Iterator> +# 645 +make_reverse_iterator(_Iterator __i) +# 646 +{ return ((reverse_iterator< _Iterator> )(__i)); } +# 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> auto +# 660 +__niter_base(reverse_iterator< _Iterator> __it)->__decltype((__make_reverse_iterator(__niter_base(__it.base())))) +# 662 +{ return __make_reverse_iterator(__niter_base(__it.base())); } +# 664 +template< class _Iterator> +# 665 +struct __is_move_iterator< reverse_iterator< _Iterator> > : public std::__is_move_iterator< _Iterator> { +# 667 +}; +# 669 +template< class _Iterator> auto +# 672 +__miter_base(reverse_iterator< _Iterator> __it)->__decltype((__make_reverse_iterator(__miter_base(__it.base())))) +# 674 +{ return __make_reverse_iterator(__miter_base(__it.base())); } +# 688 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 689 +class back_insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 693 +protected: _Container *container; +# 697 +public: typedef _Container container_type; +# 704 +explicit back_insert_iterator(_Container &__x) : container(std::__addressof(__x)) +# 705 +{ } +# 728 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +back_insert_iterator &operator=(const typename _Container::value_type &__value) +# 729 +{ +# 730 +(container)->push_back(__value); +# 731 +return *this; +# 732 +} +# 736 +back_insert_iterator &operator=(typename _Container::value_type &&__value) +# 737 +{ +# 738 +(container)->push_back(std::move(__value)); +# 739 +return *this; +# 740 +} +# 744 +[[__nodiscard__]] back_insert_iterator & +# 746 +operator*() +# 747 +{ return *this; } +# 752 +back_insert_iterator &operator++() +# 753 +{ return *this; } +# 758 +back_insert_iterator operator++(int) +# 759 +{ return *this; } +# 760 +}; +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 774 +[[__nodiscard__]] inline back_insert_iterator< _Container> +# 776 +back_inserter(_Container &__x) +# 777 +{ return ((back_insert_iterator< _Container> )(__x)); } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 790 +class front_insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 794 +protected: _Container *container; +# 798 +public: typedef _Container container_type; +# 805 +explicit front_insert_iterator(_Container &__x) : container(std::__addressof(__x)) +# 806 +{ } +# 829 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +front_insert_iterator &operator=(const typename _Container::value_type &__value) +# 830 +{ +# 831 +(container)->push_front(__value); +# 832 +return *this; +# 833 +} +# 837 +front_insert_iterator &operator=(typename _Container::value_type &&__value) +# 838 +{ +# 839 +(container)->push_front(std::move(__value)); +# 840 +return *this; +# 841 +} +# 845 +[[__nodiscard__]] front_insert_iterator & +# 847 +operator*() +# 848 +{ return *this; } +# 853 +front_insert_iterator &operator++() +# 854 +{ return *this; } +# 859 +front_insert_iterator operator++(int) +# 860 +{ return *this; } +# 861 +}; +# 874 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 875 +[[__nodiscard__]] inline front_insert_iterator< _Container> +# 877 +front_inserter(_Container &__x) +# 878 +{ return ((front_insert_iterator< _Container> )(__x)); } +# 894 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 895 +class insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 901 +typedef typename _Container::iterator _Iter; +# 904 +protected: _Container *container; +# 905 +_Iter iter; +# 909 +public: typedef _Container container_type; +# 920 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +insert_iterator(_Container &__x, _Iter __i) : container(std::__addressof(__x)), iter(__i) +# 921 +{ } +# 957 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +insert_iterator &operator=(const typename _Container::value_type &__value) +# 958 +{ +# 959 +(iter) = (container)->insert(iter, __value); +# 960 +++(iter); +# 961 +return *this; +# 962 +} +# 966 +insert_iterator &operator=(typename _Container::value_type &&__value) +# 967 +{ +# 968 +(iter) = (container)->insert(iter, std::move(__value)); +# 969 +++(iter); +# 970 +return *this; +# 971 +} +# 975 +[[__nodiscard__]] insert_iterator & +# 977 +operator*() +# 978 +{ return *this; } +# 983 +insert_iterator &operator++() +# 984 +{ return *this; } +# 989 +insert_iterator &operator++(int) +# 990 +{ return *this; } +# 991 +}; +# 993 +#pragma GCC diagnostic pop +# 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 1015 +[[__nodiscard__]] inline insert_iterator< _Container> +# 1017 +inserter(_Container &__x, typename _Container::iterator __i) +# 1018 +{ return insert_iterator< _Container> (__x, __i); } +# 1024 +} +# 1026 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator, class _Container> +# 1038 +class __normal_iterator { +# 1041 +protected: _Iterator _M_current; +# 1043 +typedef std::iterator_traits< _Iterator> __traits_type; +# 1046 +template< class _Iter> using __convertible_from = std::__enable_if_t< std::is_convertible< _Iter, _Iterator> ::value> ; +# 1052 +public: typedef _Iterator iterator_type; +# 1053 +typedef typename std::iterator_traits< _Iterator> ::iterator_category iterator_category; +# 1054 +typedef typename std::iterator_traits< _Iterator> ::value_type value_type; +# 1055 +typedef typename std::iterator_traits< _Iterator> ::difference_type difference_type; +# 1056 +typedef typename std::iterator_traits< _Iterator> ::reference reference; +# 1057 +typedef typename std::iterator_traits< _Iterator> ::pointer pointer; +# 1063 +constexpr __normal_iterator() noexcept : _M_current(_Iterator()) +# 1064 +{ } +# 1067 +explicit __normal_iterator(const _Iterator &__i) noexcept : _M_current(__i) +# 1068 +{ } +# 1072 +template< class _Iter, class = __convertible_from< _Iter> > +# 1074 +__normal_iterator(const __normal_iterator< _Iter, _Container> &__i) noexcept : _M_current(__i.base()) +# 1085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +{ } +# 1090 +reference operator*() const noexcept +# 1091 +{ return *(_M_current); } +# 1095 +pointer operator->() const noexcept +# 1096 +{ return _M_current; } +# 1100 +__normal_iterator &operator++() noexcept +# 1101 +{ +# 1102 +++(_M_current); +# 1103 +return *this; +# 1104 +} +# 1108 +__normal_iterator operator++(int) noexcept +# 1109 +{ return ((__normal_iterator)((_M_current)++)); } +# 1114 +__normal_iterator &operator--() noexcept +# 1115 +{ +# 1116 +--(_M_current); +# 1117 +return *this; +# 1118 +} +# 1122 +__normal_iterator operator--(int) noexcept +# 1123 +{ return ((__normal_iterator)((_M_current)--)); } +# 1128 +reference operator[](difference_type __n) const noexcept +# 1129 +{ return (_M_current)[__n]; } +# 1133 +__normal_iterator &operator+=(difference_type __n) noexcept +# 1134 +{ (_M_current) += __n; return *this; } +# 1138 +__normal_iterator operator+(difference_type __n) const noexcept +# 1139 +{ return ((__normal_iterator)((_M_current) + __n)); } +# 1143 +__normal_iterator &operator-=(difference_type __n) noexcept +# 1144 +{ (_M_current) -= __n; return *this; } +# 1148 +__normal_iterator operator-(difference_type __n) const noexcept +# 1149 +{ return ((__normal_iterator)((_M_current) - __n)); } +# 1153 +const _Iterator &base() const noexcept +# 1154 +{ return _M_current; } +# 1155 +}; +# 1205 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR, class _Container> +# 1206 +[[__nodiscard__]] inline bool +# 1208 +operator==(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1209 +__rhs) noexcept +# 1211 +{ return __lhs.base() == __rhs.base(); } +# 1213 +template< class _Iterator, class _Container> +# 1214 +[[__nodiscard__]] inline bool +# 1216 +operator==(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1217 +__rhs) noexcept +# 1219 +{ return __lhs.base() == __rhs.base(); } +# 1221 +template< class _IteratorL, class _IteratorR, class _Container> +# 1222 +[[__nodiscard__]] inline bool +# 1224 +operator!=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1225 +__rhs) noexcept +# 1227 +{ return __lhs.base() != __rhs.base(); } +# 1229 +template< class _Iterator, class _Container> +# 1230 +[[__nodiscard__]] inline bool +# 1232 +operator!=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1233 +__rhs) noexcept +# 1235 +{ return __lhs.base() != __rhs.base(); } +# 1238 +template< class _IteratorL, class _IteratorR, class _Container> +# 1239 +[[__nodiscard__]] inline bool +# 1241 +operator<(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1242 +__rhs) noexcept +# 1244 +{ return __lhs.base() < __rhs.base(); } +# 1246 +template< class _Iterator, class _Container> +# 1247 +[[__nodiscard__]] inline bool +# 1249 +operator<(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1250 +__rhs) noexcept +# 1252 +{ return __lhs.base() < __rhs.base(); } +# 1254 +template< class _IteratorL, class _IteratorR, class _Container> +# 1255 +[[__nodiscard__]] inline bool +# 1257 +operator>(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1258 +__rhs) noexcept +# 1260 +{ return __lhs.base() > __rhs.base(); } +# 1262 +template< class _Iterator, class _Container> +# 1263 +[[__nodiscard__]] inline bool +# 1265 +operator>(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1266 +__rhs) noexcept +# 1268 +{ return __lhs.base() > __rhs.base(); } +# 1270 +template< class _IteratorL, class _IteratorR, class _Container> +# 1271 +[[__nodiscard__]] inline bool +# 1273 +operator<=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1274 +__rhs) noexcept +# 1276 +{ return __lhs.base() <= __rhs.base(); } +# 1278 +template< class _Iterator, class _Container> +# 1279 +[[__nodiscard__]] inline bool +# 1281 +operator<=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1282 +__rhs) noexcept +# 1284 +{ return __lhs.base() <= __rhs.base(); } +# 1286 +template< class _IteratorL, class _IteratorR, class _Container> +# 1287 +[[__nodiscard__]] inline bool +# 1289 +operator>=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1290 +__rhs) noexcept +# 1292 +{ return __lhs.base() >= __rhs.base(); } +# 1294 +template< class _Iterator, class _Container> +# 1295 +[[__nodiscard__]] inline bool +# 1297 +operator>=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1298 +__rhs) noexcept +# 1300 +{ return __lhs.base() >= __rhs.base(); } +# 1307 +template< class _IteratorL, class _IteratorR, class _Container> +# 1310 +[[__nodiscard__]] inline auto +# 1312 +operator-(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1313 +__rhs) noexcept->__decltype((__lhs.base() - __rhs.base())) +# 1320 +{ return __lhs.base() - __rhs.base(); } +# 1322 +template< class _Iterator, class _Container> +# 1323 +[[__nodiscard__]] inline typename __normal_iterator< _Iterator, _Container> ::difference_type +# 1325 +operator-(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1326 +__rhs) noexcept +# 1328 +{ return __lhs.base() - __rhs.base(); } +# 1330 +template< class _Iterator, class _Container> +# 1331 +[[__nodiscard__]] inline __normal_iterator< _Iterator, _Container> +# 1333 +operator+(typename __normal_iterator< _Iterator, _Container> ::difference_type +# 1334 +__n, const __normal_iterator< _Iterator, _Container> &__i) noexcept +# 1336 +{ return ((__normal_iterator< _Iterator, _Container> )(__i.base() + __n)); } +# 1339 +} +# 1341 +namespace std __attribute((__visibility__("default"))) { +# 1345 +template< class _Iterator, class _Container> _Iterator +# 1348 +__niter_base(__gnu_cxx::__normal_iterator< _Iterator, _Container> __it) noexcept(std::template is_nothrow_copy_constructible< _Iterator> ::value) +# 1350 +{ return __it.base(); } +# 1357 +template< class _Iterator, class _Container> constexpr auto +# 1359 +__to_address(const __gnu_cxx::__normal_iterator< _Iterator, _Container> & +# 1360 +__it) noexcept->__decltype((std::__to_address(__it.base()))) +# 1362 +{ return std::__to_address(__it.base()); } +# 1412 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +namespace __detail { +# 1428 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +} +# 1439 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> +# 1440 +class move_iterator { +# 1445 +_Iterator _M_current; +# 1447 +using __traits_type = iterator_traits< _Iterator> ; +# 1449 +using __base_ref = typename iterator_traits< _Iterator> ::reference; +# 1452 +template< class _Iter2> friend class move_iterator; +# 1479 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +public: using iterator_type = _Iterator; +# 1490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +typedef typename iterator_traits< _Iterator> ::iterator_category iterator_category; +# 1491 +typedef typename iterator_traits< _Iterator> ::value_type value_type; +# 1492 +typedef typename iterator_traits< _Iterator> ::difference_type difference_type; +# 1494 +typedef _Iterator pointer; +# 1497 +using reference = __conditional_t< is_reference< __base_ref> ::value, typename remove_reference< __base_ref> ::type &&, __base_ref> ; +# 1504 +constexpr move_iterator() : _M_current() +# 1505 +{ } +# 1508 +constexpr explicit move_iterator(iterator_type __i) : _M_current(std::move(__i)) +# 1509 +{ } +# 1511 +template< class _Iter> constexpr +# 1516 +move_iterator(const move_iterator< _Iter> &__i) : _M_current((__i._M_current)) +# 1517 +{ } +# 1519 +template< class _Iter> constexpr move_iterator & +# 1525 +operator=(const move_iterator< _Iter> &__i) +# 1526 +{ +# 1527 +(_M_current) = (__i._M_current); +# 1528 +return *this; +# 1529 +} +# 1532 +[[__nodiscard__]] constexpr iterator_type +# 1534 +base() const +# 1535 +{ return _M_current; } +# 1548 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +[[__nodiscard__]] constexpr reference +# 1550 +operator*() const +# 1554 +{ return static_cast< reference>(*(_M_current)); } +# 1557 +[[__nodiscard__]] constexpr pointer +# 1559 +operator->() const +# 1560 +{ return _M_current; } +# 1563 +constexpr move_iterator &operator++() +# 1564 +{ +# 1565 +++(_M_current); +# 1566 +return *this; +# 1567 +} +# 1570 +constexpr move_iterator operator++(int) +# 1571 +{ +# 1572 +move_iterator __tmp = *this; +# 1573 +++(_M_current); +# 1574 +return __tmp; +# 1575 +} +# 1584 +constexpr move_iterator &operator--() +# 1585 +{ +# 1586 +--(_M_current); +# 1587 +return *this; +# 1588 +} +# 1591 +constexpr move_iterator operator--(int) +# 1592 +{ +# 1593 +move_iterator __tmp = *this; +# 1594 +--(_M_current); +# 1595 +return __tmp; +# 1596 +} +# 1598 +[[__nodiscard__]] constexpr move_iterator +# 1600 +operator+(difference_type __n) const +# 1601 +{ return ((move_iterator)((_M_current) + __n)); } +# 1604 +constexpr move_iterator &operator+=(difference_type __n) +# 1605 +{ +# 1606 +(_M_current) += __n; +# 1607 +return *this; +# 1608 +} +# 1610 +[[__nodiscard__]] constexpr move_iterator +# 1612 +operator-(difference_type __n) const +# 1613 +{ return ((move_iterator)((_M_current) - __n)); } +# 1616 +constexpr move_iterator &operator-=(difference_type __n) +# 1617 +{ +# 1618 +(_M_current) -= __n; +# 1619 +return *this; +# 1620 +} +# 1622 +[[__nodiscard__]] constexpr reference +# 1624 +operator[](difference_type __n) const +# 1628 +{ return std::move((_M_current)[__n]); } +# 1662 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +}; +# 1664 +template< class _IteratorL, class _IteratorR> +# 1665 +[[__nodiscard__]] constexpr bool +# 1667 +operator==(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1668 +__y) +# 1672 +{ return __x.base() == __y.base(); } +# 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR> +# 1684 +[[__nodiscard__]] constexpr bool +# 1686 +operator!=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1687 +__y) +# 1688 +{ return !(__x == __y); } +# 1691 +template< class _IteratorL, class _IteratorR> +# 1692 +[[__nodiscard__]] constexpr bool +# 1694 +operator<(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1695 +__y) +# 1699 +{ return __x.base() < __y.base(); } +# 1701 +template< class _IteratorL, class _IteratorR> +# 1702 +[[__nodiscard__]] constexpr bool +# 1704 +operator<=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1705 +__y) +# 1709 +{ return !(__y < __x); } +# 1711 +template< class _IteratorL, class _IteratorR> +# 1712 +[[__nodiscard__]] constexpr bool +# 1714 +operator>(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1715 +__y) +# 1719 +{ return __y < __x; } +# 1721 +template< class _IteratorL, class _IteratorR> +# 1722 +[[__nodiscard__]] constexpr bool +# 1724 +operator>=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1725 +__y) +# 1729 +{ return !(__x < __y); } +# 1734 +template< class _Iterator> +# 1735 +[[__nodiscard__]] constexpr bool +# 1737 +operator==(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1738 +__y) +# 1740 +{ return __x.base() == __y.base(); } +# 1750 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> +# 1751 +[[__nodiscard__]] constexpr bool +# 1753 +operator!=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1754 +__y) +# 1755 +{ return !(__x == __y); } +# 1757 +template< class _Iterator> +# 1758 +[[__nodiscard__]] constexpr bool +# 1760 +operator<(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1761 +__y) +# 1762 +{ return __x.base() < __y.base(); } +# 1764 +template< class _Iterator> +# 1765 +[[__nodiscard__]] constexpr bool +# 1767 +operator<=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1768 +__y) +# 1769 +{ return !(__y < __x); } +# 1771 +template< class _Iterator> +# 1772 +[[__nodiscard__]] constexpr bool +# 1774 +operator>(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1775 +__y) +# 1776 +{ return __y < __x; } +# 1778 +template< class _Iterator> +# 1779 +[[__nodiscard__]] constexpr bool +# 1781 +operator>=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1782 +__y) +# 1783 +{ return !(__x < __y); } +# 1787 +template< class _IteratorL, class _IteratorR> +# 1788 +[[__nodiscard__]] constexpr auto +# 1790 +operator-(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1791 +__y)->__decltype((__x.base() - __y.base())) +# 1793 +{ return __x.base() - __y.base(); } +# 1795 +template< class _Iterator> +# 1796 +[[__nodiscard__]] constexpr move_iterator< _Iterator> +# 1798 +operator+(typename move_iterator< _Iterator> ::difference_type __n, const move_iterator< _Iterator> & +# 1799 +__x) +# 1803 +{ return __x + __n; } +# 1805 +template< class _Iterator> +# 1806 +[[__nodiscard__]] constexpr move_iterator< _Iterator> +# 1808 +make_move_iterator(_Iterator __i) +# 1809 +{ return ((move_iterator< _Iterator> )(std::move(__i))); } +# 1811 +template< class _Iterator, class _ReturnType = __conditional_t< __move_if_noexcept_cond< typename iterator_traits< _Iterator> ::value_type> ::value, _Iterator, move_iterator< _Iterator> > > constexpr _ReturnType +# 1816 +__make_move_if_noexcept_iterator(_Iterator __i) +# 1817 +{ return (_ReturnType)__i; } +# 1821 +template< class _Tp, class _ReturnType = __conditional_t< __move_if_noexcept_cond< _Tp> ::value, const _Tp *, move_iterator< _Tp *> > > constexpr _ReturnType +# 1825 +__make_move_if_noexcept_iterator(_Tp *__i) +# 1826 +{ return (_ReturnType)__i; } +# 2964 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> auto +# 2967 +__niter_base(move_iterator< _Iterator> __it)->__decltype((make_move_iterator(__niter_base(__it.base())))) +# 2969 +{ return make_move_iterator(__niter_base(__it.base())); } +# 2971 +template< class _Iterator> +# 2972 +struct __is_move_iterator< move_iterator< _Iterator> > { +# 2974 +enum { __value = 1}; +# 2975 +typedef __true_type __type; +# 2976 +}; +# 2978 +template< class _Iterator> auto +# 2981 +__miter_base(move_iterator< _Iterator> __it)->__decltype((__miter_base(__it.base()))) +# 2983 +{ return __miter_base(__it.base()); } +# 2996 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _InputIterator> using __iter_key_t = remove_const_t< typename iterator_traits< _InputIterator> ::value_type::first_type> ; +# 3004 +template< class _InputIterator> using __iter_val_t = typename iterator_traits< _InputIterator> ::value_type::second_type; +# 3012 +template< class _T1, class _T2> struct pair; +# 3015 +template< class _InputIterator> using __iter_to_alloc_t = pair< const __iter_key_t< _InputIterator> , __iter_val_t< _InputIterator> > ; +# 3021 +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 3 +namespace std { +# 50 +namespace __debug { } +# 51 +} +# 56 +namespace __gnu_debug { +# 58 +using namespace std::__debug; +# 60 +template< class _Ite, class _Seq, class _Cat> struct _Safe_iterator; +# 62 +} +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 3 +namespace __gnu_cxx { +# 37 +namespace __ops { +# 39 +struct _Iter_less_iter { +# 41 +template< class _Iterator1, class _Iterator2> constexpr bool +# 44 +operator()(_Iterator1 __it1, _Iterator2 __it2) const +# 45 +{ return (*__it1) < (*__it2); } +# 46 +}; +# 50 +constexpr _Iter_less_iter __iter_less_iter() +# 51 +{ return _Iter_less_iter(); } +# 53 +struct _Iter_less_val { +# 56 +constexpr _Iter_less_val() = default; +# 63 +explicit _Iter_less_val(_Iter_less_iter) { } +# 65 +template< class _Iterator, class _Value> bool +# 68 +operator()(_Iterator __it, _Value &__val) const +# 69 +{ return (*__it) < __val; } +# 70 +}; +# 74 +inline _Iter_less_val __iter_less_val() +# 75 +{ return _Iter_less_val(); } +# 79 +inline _Iter_less_val __iter_comp_val(_Iter_less_iter) +# 80 +{ return _Iter_less_val(); } +# 82 +struct _Val_less_iter { +# 85 +constexpr _Val_less_iter() = default; +# 92 +explicit _Val_less_iter(_Iter_less_iter) { } +# 94 +template< class _Value, class _Iterator> bool +# 97 +operator()(_Value &__val, _Iterator __it) const +# 98 +{ return __val < (*__it); } +# 99 +}; +# 103 +inline _Val_less_iter __val_less_iter() +# 104 +{ return _Val_less_iter(); } +# 108 +inline _Val_less_iter __val_comp_iter(_Iter_less_iter) +# 109 +{ return _Val_less_iter(); } +# 111 +struct _Iter_equal_to_iter { +# 113 +template< class _Iterator1, class _Iterator2> bool +# 116 +operator()(_Iterator1 __it1, _Iterator2 __it2) const +# 117 +{ return (*__it1) == (*__it2); } +# 118 +}; +# 122 +inline _Iter_equal_to_iter __iter_equal_to_iter() +# 123 +{ return _Iter_equal_to_iter(); } +# 125 +struct _Iter_equal_to_val { +# 127 +template< class _Iterator, class _Value> bool +# 130 +operator()(_Iterator __it, _Value &__val) const +# 131 +{ return (*__it) == __val; } +# 132 +}; +# 136 +inline _Iter_equal_to_val __iter_equal_to_val() +# 137 +{ return _Iter_equal_to_val(); } +# 141 +inline _Iter_equal_to_val __iter_comp_val(_Iter_equal_to_iter) +# 142 +{ return _Iter_equal_to_val(); } +# 144 +template< class _Compare> +# 145 +struct _Iter_comp_iter { +# 147 +_Compare _M_comp; +# 150 +constexpr explicit _Iter_comp_iter(_Compare __comp) : _M_comp(std::move(__comp)) +# 152 +{ } +# 154 +template< class _Iterator1, class _Iterator2> constexpr bool +# 157 +operator()(_Iterator1 __it1, _Iterator2 __it2) +# 158 +{ return (bool)(_M_comp)(*__it1, *__it2); } +# 159 +}; +# 161 +template< class _Compare> constexpr _Iter_comp_iter< _Compare> +# 164 +__iter_comp_iter(_Compare __comp) +# 165 +{ return ((_Iter_comp_iter< _Compare> )(std::move(__comp))); } +# 167 +template< class _Compare> +# 168 +struct _Iter_comp_val { +# 170 +_Compare _M_comp; +# 174 +explicit _Iter_comp_val(_Compare __comp) : _M_comp(std::move(__comp)) +# 176 +{ } +# 180 +explicit _Iter_comp_val(const _Iter_comp_iter< _Compare> &__comp) : _M_comp((__comp._M_comp)) +# 182 +{ } +# 187 +explicit _Iter_comp_val(_Iter_comp_iter< _Compare> &&__comp) : _M_comp(std::move((__comp._M_comp))) +# 189 +{ } +# 192 +template< class _Iterator, class _Value> bool +# 195 +operator()(_Iterator __it, _Value &__val) +# 196 +{ return (bool)(_M_comp)(*__it, __val); } +# 197 +}; +# 199 +template< class _Compare> inline _Iter_comp_val< _Compare> +# 202 +__iter_comp_val(_Compare __comp) +# 203 +{ return ((_Iter_comp_val< _Compare> )(std::move(__comp))); } +# 205 +template< class _Compare> inline _Iter_comp_val< _Compare> +# 208 +__iter_comp_val(_Iter_comp_iter< _Compare> __comp) +# 209 +{ return ((_Iter_comp_val< _Compare> )(std::move(__comp))); } +# 211 +template< class _Compare> +# 212 +struct _Val_comp_iter { +# 214 +_Compare _M_comp; +# 218 +explicit _Val_comp_iter(_Compare __comp) : _M_comp(std::move(__comp)) +# 220 +{ } +# 224 +explicit _Val_comp_iter(const _Iter_comp_iter< _Compare> &__comp) : _M_comp((__comp._M_comp)) +# 226 +{ } +# 231 +explicit _Val_comp_iter(_Iter_comp_iter< _Compare> &&__comp) : _M_comp(std::move((__comp._M_comp))) +# 233 +{ } +# 236 +template< class _Value, class _Iterator> bool +# 239 +operator()(_Value &__val, _Iterator __it) +# 240 +{ return (bool)(_M_comp)(__val, *__it); } +# 241 +}; +# 243 +template< class _Compare> inline _Val_comp_iter< _Compare> +# 246 +__val_comp_iter(_Compare __comp) +# 247 +{ return ((_Val_comp_iter< _Compare> )(std::move(__comp))); } +# 249 +template< class _Compare> inline _Val_comp_iter< _Compare> +# 252 +__val_comp_iter(_Iter_comp_iter< _Compare> __comp) +# 253 +{ return ((_Val_comp_iter< _Compare> )(std::move(__comp))); } +# 255 +template< class _Value> +# 256 +struct _Iter_equals_val { +# 258 +_Value &_M_value; +# 262 +explicit _Iter_equals_val(_Value &__value) : _M_value(__value) +# 264 +{ } +# 266 +template< class _Iterator> bool +# 269 +operator()(_Iterator __it) +# 270 +{ return (*__it) == (_M_value); } +# 271 +}; +# 273 +template< class _Value> inline _Iter_equals_val< _Value> +# 276 +__iter_equals_val(_Value &__val) +# 277 +{ return ((_Iter_equals_val< _Value> )(__val)); } +# 279 +template< class _Iterator1> +# 280 +struct _Iter_equals_iter { +# 282 +_Iterator1 _M_it1; +# 286 +explicit _Iter_equals_iter(_Iterator1 __it1) : _M_it1(__it1) +# 288 +{ } +# 290 +template< class _Iterator2> bool +# 293 +operator()(_Iterator2 __it2) +# 294 +{ return (*__it2) == (*(_M_it1)); } +# 295 +}; +# 297 +template< class _Iterator> inline _Iter_equals_iter< _Iterator> +# 300 +__iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) +# 301 +{ return ((_Iter_equals_iter< _Iterator> )(__it)); } +# 303 +template< class _Predicate> +# 304 +struct _Iter_pred { +# 306 +_Predicate _M_pred; +# 310 +explicit _Iter_pred(_Predicate __pred) : _M_pred(std::move(__pred)) +# 312 +{ } +# 314 +template< class _Iterator> bool +# 317 +operator()(_Iterator __it) +# 318 +{ return (bool)(_M_pred)(*__it); } +# 319 +}; +# 321 +template< class _Predicate> inline _Iter_pred< _Predicate> +# 324 +__pred_iter(_Predicate __pred) +# 325 +{ return ((_Iter_pred< _Predicate> )(std::move(__pred))); } +# 327 +template< class _Compare, class _Value> +# 328 +struct _Iter_comp_to_val { +# 330 +_Compare _M_comp; +# 331 +_Value &_M_value; +# 334 +_Iter_comp_to_val(_Compare __comp, _Value &__value) : _M_comp(std::move(__comp)), _M_value(__value) +# 336 +{ } +# 338 +template< class _Iterator> bool +# 341 +operator()(_Iterator __it) +# 342 +{ return (bool)(_M_comp)(*__it, _M_value); } +# 343 +}; +# 345 +template< class _Compare, class _Value> _Iter_comp_to_val< _Compare, _Value> +# 348 +__iter_comp_val(_Compare __comp, _Value &__val) +# 349 +{ +# 350 +return _Iter_comp_to_val< _Compare, _Value> (std::move(__comp), __val); +# 351 +} +# 353 +template< class _Compare, class _Iterator1> +# 354 +struct _Iter_comp_to_iter { +# 356 +_Compare _M_comp; +# 357 +_Iterator1 _M_it1; +# 360 +_Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) : _M_comp(std::move(__comp)), _M_it1(__it1) +# 362 +{ } +# 364 +template< class _Iterator2> bool +# 367 +operator()(_Iterator2 __it2) +# 368 +{ return (bool)(_M_comp)(*__it2, *(_M_it1)); } +# 369 +}; +# 371 +template< class _Compare, class _Iterator> inline _Iter_comp_to_iter< _Compare, _Iterator> +# 374 +__iter_comp_iter(_Iter_comp_iter< _Compare> __comp, _Iterator __it) +# 375 +{ +# 376 +return _Iter_comp_to_iter< _Compare, _Iterator> (std::move((__comp._M_comp)), __it); +# 378 +} +# 380 +template< class _Predicate> +# 381 +struct _Iter_negate { +# 383 +_Predicate _M_pred; +# 387 +explicit _Iter_negate(_Predicate __pred) : _M_pred(std::move(__pred)) +# 389 +{ } +# 391 +template< class _Iterator> bool +# 394 +operator()(_Iterator __it) +# 395 +{ return !((bool)(_M_pred)(*__it)); } +# 396 +}; +# 398 +template< class _Predicate> inline _Iter_negate< _Predicate> +# 401 +__negate(_Iter_pred< _Predicate> __pred) +# 402 +{ return ((_Iter_negate< _Predicate> )(std::move((__pred._M_pred)))); } +# 404 +} +# 405 +} +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +namespace std __attribute((__visibility__("default"))) { +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +template< class _Tp> constexpr _Tp +# 157 +__rotl(_Tp __x, int __s) noexcept +# 158 +{ +# 159 +constexpr auto _Nd = (__gnu_cxx::__int_traits< _Tp> ::__digits); +# 160 +if constexpr ((_Nd & (_Nd - 1)) == 0) +# 161 +{ +# 164 +constexpr unsigned __uNd = (_Nd); +# 165 +const unsigned __r = __s; +# 166 +return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); +# 167 +} +# 168 +const int __r = __s % _Nd; +# 169 +if (__r == 0) { +# 170 +return __x; } else { +# 171 +if (__r > 0) { +# 172 +return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); } else { +# 174 +return (__x >> (-__r)) | (__x << ((_Nd + __r) % _Nd)); } } +# 175 +} +# 177 +template< class _Tp> constexpr _Tp +# 179 +__rotr(_Tp __x, int __s) noexcept +# 180 +{ +# 181 +constexpr auto _Nd = (__gnu_cxx::__int_traits< _Tp> ::__digits); +# 182 +if constexpr ((_Nd & (_Nd - 1)) == 0) +# 183 +{ +# 186 +constexpr unsigned __uNd = (_Nd); +# 187 +const unsigned __r = __s; +# 188 +return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); +# 189 +} +# 190 +const int __r = __s % _Nd; +# 191 +if (__r == 0) { +# 192 +return __x; } else { +# 193 +if (__r > 0) { +# 194 +return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); } else { +# 196 +return (__x << (-__r)) | (__x >> ((_Nd + __r) % _Nd)); } } +# 197 +} +# 199 +template< class _Tp> constexpr int +# 201 +__countl_zero(_Tp __x) noexcept +# 202 +{ +# 203 +using __gnu_cxx::__int_traits; +# 204 +constexpr auto _Nd = (__int_traits< _Tp> ::__digits); +# 206 +if (__x == 0) { +# 207 +return _Nd; } +# 209 +constexpr auto _Nd_ull = __int_traits< unsigned long long> ::__digits; +# 210 +constexpr auto _Nd_ul = __int_traits< unsigned long> ::__digits; +# 211 +constexpr auto _Nd_u = __int_traits< unsigned> ::__digits; +# 213 +if constexpr (_Nd <= _Nd_u) +# 214 +{ +# 215 +constexpr int __diff = (_Nd_u - _Nd); +# 216 +return __builtin_clz(__x) - __diff; +# 217 +} else { +# 218 +if constexpr (_Nd <= _Nd_ul) +# 219 +{ +# 220 +constexpr int __diff = (_Nd_ul - _Nd); +# 221 +return __builtin_clzl(__x) - __diff; +# 222 +} else { +# 223 +if constexpr (_Nd <= _Nd_ull) +# 224 +{ +# 225 +constexpr int __diff = (_Nd_ull - _Nd); +# 226 +return __builtin_clzll(__x) - __diff; +# 227 +} else +# 229 +{ +# 230 +static_assert((_Nd <= (2 * _Nd_ull)), "Maximum supported integer size is 128-bit"); +# 233 +unsigned long long __high = __x >> _Nd_ull; +# 234 +if (__high != (0)) +# 235 +{ +# 236 +constexpr int __diff = ((2 * _Nd_ull) - _Nd); +# 237 +return __builtin_clzll(__high) - __diff; +# 238 +} +# 239 +constexpr auto __max_ull = __int_traits< unsigned long long> ::__max; +# 240 +unsigned long long __low = __x & __max_ull; +# 241 +return (_Nd - _Nd_ull) + __builtin_clzll(__low); +# 242 +} } } +# 243 +} +# 245 +template< class _Tp> constexpr int +# 247 +__countl_one(_Tp __x) noexcept +# 248 +{ +# 249 +return std::__countl_zero< _Tp> ((_Tp)(~__x)); +# 250 +} +# 252 +template< class _Tp> constexpr int +# 254 +__countr_zero(_Tp __x) noexcept +# 255 +{ +# 256 +using __gnu_cxx::__int_traits; +# 257 +constexpr auto _Nd = (__int_traits< _Tp> ::__digits); +# 259 +if (__x == 0) { +# 260 +return _Nd; } +# 262 +constexpr auto _Nd_ull = __int_traits< unsigned long long> ::__digits; +# 263 +constexpr auto _Nd_ul = __int_traits< unsigned long> ::__digits; +# 264 +constexpr auto _Nd_u = __int_traits< unsigned> ::__digits; +# 266 +if constexpr (_Nd <= _Nd_u) { +# 267 +return __builtin_ctz(__x); } else { +# 268 +if constexpr (_Nd <= _Nd_ul) { +# 269 +return __builtin_ctzl(__x); } else { +# 270 +if constexpr (_Nd <= _Nd_ull) { +# 271 +return __builtin_ctzll(__x); } else +# 273 +{ +# 274 +static_assert((_Nd <= (2 * _Nd_ull)), "Maximum supported integer size is 128-bit"); +# 277 +constexpr auto __max_ull = __int_traits< unsigned long long> ::__max; +# 278 +unsigned long long __low = __x & __max_ull; +# 279 +if (__low != (0)) { +# 280 +return __builtin_ctzll(__low); } +# 281 +unsigned long long __high = __x >> _Nd_ull; +# 282 +return __builtin_ctzll(__high) + _Nd_ull; +# 283 +} } } +# 284 +} +# 286 +template< class _Tp> constexpr int +# 288 +__countr_one(_Tp __x) noexcept +# 289 +{ +# 290 +return std::__countr_zero((_Tp)(~__x)); +# 291 +} +# 293 +template< class _Tp> constexpr int +# 295 +__popcount(_Tp __x) noexcept +# 296 +{ +# 297 +using __gnu_cxx::__int_traits; +# 298 +constexpr auto _Nd = (__int_traits< _Tp> ::__digits); +# 300 +constexpr auto _Nd_ull = __int_traits< unsigned long long> ::__digits; +# 301 +constexpr auto _Nd_ul = __int_traits< unsigned long> ::__digits; +# 302 +constexpr auto _Nd_u = __int_traits< unsigned> ::__digits; +# 304 +if constexpr (_Nd <= _Nd_u) { +# 305 +return __builtin_popcount(__x); } else { +# 306 +if constexpr (_Nd <= _Nd_ul) { +# 307 +return __builtin_popcountl(__x); } else { +# 308 +if constexpr (_Nd <= _Nd_ull) { +# 309 +return __builtin_popcountll(__x); } else +# 311 +{ +# 312 +static_assert((_Nd <= (2 * _Nd_ull)), "Maximum supported integer size is 128-bit"); +# 315 +constexpr auto __max_ull = __int_traits< unsigned long long> ::__max; +# 316 +unsigned long long __low = __x & __max_ull; +# 317 +unsigned long long __high = __x >> _Nd_ull; +# 318 +return __builtin_popcountll(__low) + __builtin_popcountll(__high); +# 319 +} } } +# 320 +} +# 322 +template< class _Tp> constexpr bool +# 324 +__has_single_bit(_Tp __x) noexcept +# 325 +{ return std::__popcount(__x) == 1; } +# 327 +template< class _Tp> constexpr _Tp +# 329 +__bit_ceil(_Tp __x) noexcept +# 330 +{ +# 331 +using __gnu_cxx::__int_traits; +# 332 +constexpr auto _Nd = (__int_traits< _Tp> ::__digits); +# 333 +if ((__x == 0) || (__x == 1)) { +# 334 +return 1; } +# 335 +auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1U)); +# 340 +if (!std::__is_constant_evaluated()) +# 341 +{ +# 342 +do { if (std::__is_constant_evaluated() && (!((bool)(__shift_exponent != __int_traits< _Tp> ::__digits)))) { std::__glibcxx_assert_fail(); } } while (false); +# 343 +} +# 345 +using __promoted_type = __decltype((__x << 1)); +# 346 +if constexpr (!is_same< __decltype((__x << 1)), _Tp> ::value) +# 347 +{ +# 353 +const int __extra_exp = ((sizeof(__promoted_type) / sizeof(_Tp)) / (2)); +# 354 +__shift_exponent |= ((__shift_exponent & _Nd) << __extra_exp); +# 355 +} +# 356 +return ((_Tp)1U) << __shift_exponent; +# 357 +} +# 359 +template< class _Tp> constexpr _Tp +# 361 +__bit_floor(_Tp __x) noexcept +# 362 +{ +# 363 +constexpr auto _Nd = (__gnu_cxx::__int_traits< _Tp> ::__digits); +# 364 +if (__x == 0) { +# 365 +return 0; } +# 366 +return ((_Tp)1U) << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); +# 367 +} +# 369 +template< class _Tp> constexpr int +# 371 +__bit_width(_Tp __x) noexcept +# 372 +{ +# 373 +constexpr auto _Nd = (__gnu_cxx::__int_traits< _Tp> ::__digits); +# 374 +return _Nd - std::__countl_zero(__x); +# 375 +} +# 483 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +} +# 82 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 90 +template< class _Tp, class _Up> constexpr int +# 93 +__memcmp(const _Tp *__first1, const _Up *__first2, size_t __num) +# 94 +{ +# 96 +static_assert((sizeof(_Tp) == sizeof(_Up)), "can be compared with memcmp"); +# 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); +# 109 +} +# 152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> inline void +# 155 +iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) +# 156 +{ +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +swap(*__a, *__b); +# 187 +} +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> _ForwardIterator2 +# 204 +swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 205 +__first2) +# 206 +{ +# 212 +; +# 214 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 215 +std::iter_swap(__first1, __first2); } +# 216 +return __first2; +# 217 +} +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Tp> +# 231 +[[__nodiscard__]] constexpr const _Tp & +# 233 +min(const _Tp &__a, const _Tp &__b) +# 234 +{ +# 238 +if (__b < __a) { +# 239 +return __b; } +# 240 +return __a; +# 241 +} +# 254 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Tp> +# 255 +[[__nodiscard__]] constexpr const _Tp & +# 257 +max(const _Tp &__a, const _Tp &__b) +# 258 +{ +# 262 +if (__a < __b) { +# 263 +return __b; } +# 264 +return __a; +# 265 +} +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Tp, class _Compare> +# 279 +[[__nodiscard__]] constexpr const _Tp & +# 281 +min(const _Tp &__a, const _Tp &__b, _Compare __comp) +# 282 +{ +# 284 +if (__comp(__b, __a)) { +# 285 +return __b; } +# 286 +return __a; +# 287 +} +# 300 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Tp, class _Compare> +# 301 +[[__nodiscard__]] constexpr const _Tp & +# 303 +max(const _Tp &__a, const _Tp &__b, _Compare __comp) +# 304 +{ +# 306 +if (__comp(__a, __b)) { +# 307 +return __b; } +# 308 +return __a; +# 309 +} +# 313 +template< class _Iterator> inline _Iterator +# 316 +__niter_base(_Iterator __it) noexcept(std::template is_nothrow_copy_constructible< _Iterator> ::value) +# 318 +{ return __it; } +# 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Ite, class _Seq> __decltype((std::__niter_base(std::declval< _Ite> ()))) __niter_base(const __gnu_debug::_Safe_iterator< _Ite, _Seq, random_access_iterator_tag> &) noexcept(std::template is_nothrow_copy_constructible< _Ite> ::value); +# 343 +template< class _From, class _To> inline _From +# 346 +__niter_wrap(_From __from, _To __res) +# 347 +{ return __from + (std::__niter_base(__res) - std::__niter_base(__from)); } +# 350 +template< class _Iterator> inline _Iterator +# 353 +__niter_wrap(const _Iterator &, _Iterator __res) +# 354 +{ return __res; } +# 362 +template< bool _IsMove, bool _IsSimple, class _Category> +# 363 +struct __copy_move { +# 365 +template< class _II, class _OI> static _OI +# 368 +__copy_m(_II __first, _II __last, _OI __result) +# 369 +{ +# 370 +for (; __first != __last; (++__result), ((void)(++__first))) { +# 371 +(*__result) = (*__first); } +# 372 +return __result; +# 373 +} +# 374 +}; +# 377 +template< class _Category> +# 378 +struct __copy_move< true, false, _Category> { +# 380 +template< class _II, class _OI> static _OI +# 383 +__copy_m(_II __first, _II __last, _OI __result) +# 384 +{ +# 385 +for (; __first != __last; (++__result), ((void)(++__first))) { +# 386 +(*__result) = std::move(*__first); } +# 387 +return __result; +# 388 +} +# 389 +}; +# 393 +template<> struct __copy_move< false, false, random_access_iterator_tag> { +# 395 +template< class _II, class _OI> static _OI +# 398 +__copy_m(_II __first, _II __last, _OI __result) +# 399 +{ +# 400 +typedef typename iterator_traits< _II> ::difference_type _Distance; +# 401 +for (_Distance __n = __last - __first; __n > 0; --__n) +# 402 +{ +# 403 +(*__result) = (*__first); +# 404 +++__first; +# 405 +++__result; +# 406 +} +# 407 +return __result; +# 408 +} +# 410 +template< class _Tp, class _Up> static void +# 412 +__assign_one(_Tp *__to, _Up *__from) +# 413 +{ (*__to) = (*__from); } +# 414 +}; +# 418 +template<> struct __copy_move< true, false, random_access_iterator_tag> { +# 420 +template< class _II, class _OI> static _OI +# 423 +__copy_m(_II __first, _II __last, _OI __result) +# 424 +{ +# 425 +typedef typename iterator_traits< _II> ::difference_type _Distance; +# 426 +for (_Distance __n = __last - __first; __n > 0; --__n) +# 427 +{ +# 428 +(*__result) = std::move(*__first); +# 429 +++__first; +# 430 +++__result; +# 431 +} +# 432 +return __result; +# 433 +} +# 435 +template< class _Tp, class _Up> static void +# 437 +__assign_one(_Tp *__to, _Up *__from) +# 438 +{ (*__to) = std::move(*__from); } +# 439 +}; +# 442 +template< bool _IsMove> +# 443 +struct __copy_move< _IsMove, true, random_access_iterator_tag> { +# 445 +template< class _Tp, class _Up> static _Up * +# 448 +__copy_m(_Tp *__first, _Tp *__last, _Up *__result) +# 449 +{ +# 450 +const ptrdiff_t _Num = __last - __first; +# 451 +if (__builtin_expect(_Num > (1), true)) { +# 452 +__builtin_memmove(__result, __first, sizeof(_Tp) * _Num); } else { +# 453 +if (_Num == (1)) { +# 454 +std::template __copy_move< _IsMove, false, random_access_iterator_tag> ::__assign_one(__result, __first); } } +# 456 +return __result + _Num; +# 457 +} +# 458 +}; +# 462 +template< class _Tp, class _Ref, class _Ptr> struct _Deque_iterator; +# 465 +struct _Bit_iterator; +# 472 +template< class _CharT> struct char_traits; +# 475 +template< class _CharT, class _Traits> class istreambuf_iterator; +# 478 +template< class _CharT, class _Traits> class ostreambuf_iterator; +# 481 +template< bool _IsMove, class _CharT> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, ostreambuf_iterator< _CharT, char_traits< _CharT> > > ::__type __copy_move_a2(_CharT *, _CharT *, ostreambuf_iterator< _CharT, char_traits< _CharT> > ); +# 487 +template< bool _IsMove, class _CharT> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, ostreambuf_iterator< _CharT, char_traits< _CharT> > > ::__type __copy_move_a2(const _CharT *, const _CharT *, ostreambuf_iterator< _CharT, char_traits< _CharT> > ); +# 493 +template< bool _IsMove, class _CharT> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, _CharT *> ::__type __copy_move_a2(istreambuf_iterator< _CharT, char_traits< _CharT> > , istreambuf_iterator< _CharT, char_traits< _CharT> > , _CharT *); +# 499 +template< bool _IsMove, class _CharT> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, _Deque_iterator< _CharT, _CharT &, _CharT *> > ::__type __copy_move_a2(istreambuf_iterator< _CharT, char_traits< _CharT> > , istreambuf_iterator< _CharT, char_traits< _CharT> > , _Deque_iterator< _CharT, _CharT &, _CharT *> ); +# 509 +template< bool _IsMove, class _II, class _OI> inline _OI +# 512 +__copy_move_a2(_II __first, _II __last, _OI __result) +# 513 +{ +# 514 +typedef typename iterator_traits< _II> ::iterator_category _Category; +# 520 +return std::template __copy_move< _IsMove, __memcpyable< _OI, _II> ::__value, typename iterator_traits< _II> ::iterator_category> ::__copy_m(__first, __last, __result); +# 522 +} +# 524 +template< bool _IsMove, class +# 525 +_Tp, class _Ref, class _Ptr, class _OI> _OI +# 524 +__copy_move_a1(_Deque_iterator< _Tp, _Ref, _Ptr> , _Deque_iterator< _Tp, _Ref, _Ptr> , _OI); +# 531 +template< bool _IsMove, class +# 532 +_ITp, class _IRef, class _IPtr, class _OTp> _Deque_iterator< _OTp, _OTp &, _OTp *> +# 531 +__copy_move_a1(_Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _OTp, _OTp &, _OTp *> ); +# 538 +template< bool _IsMove, class _II, class _Tp> typename __gnu_cxx::__enable_if< __is_random_access_iter< _II> ::__value, _Deque_iterator< _Tp, _Tp &, _Tp *> > ::__type __copy_move_a1(_II, _II, _Deque_iterator< _Tp, _Tp &, _Tp *> ); +# 544 +template< bool _IsMove, class _II, class _OI> inline _OI +# 547 +__copy_move_a1(_II __first, _II __last, _OI __result) +# 548 +{ return std::__copy_move_a2< _IsMove> (__first, __last, __result); } +# 550 +template< bool _IsMove, class _II, class _OI> inline _OI +# 553 +__copy_move_a(_II __first, _II __last, _OI __result) +# 554 +{ +# 555 +return std::__niter_wrap(__result, std::__copy_move_a1< _IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); +# 559 +} +# 561 +template< bool _IsMove, class +# 562 +_Ite, class _Seq, class _Cat, class _OI> _OI +# 561 +__copy_move_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, _OI); +# 569 +template< bool _IsMove, class +# 570 +_II, class _Ite, class _Seq, class _Cat> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 569 +__copy_move_a(_II, _II, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &); +# 576 +template< bool _IsMove, class +# 577 +_IIte, class _ISeq, class _ICat, class +# 578 +_OIte, class _OSeq, class _OCat> __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> +# 576 +__copy_move_a(const __gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat> &, const __gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat> &, const __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> &); +# 585 +template< class _InputIterator, class _Size, class _OutputIterator> _OutputIterator +# 588 +__copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, bool) +# 590 +{ +# 591 +if (__n > 0) +# 592 +{ +# 593 +while (true) +# 594 +{ +# 595 +(*__result) = (*__first); +# 596 +++__result; +# 597 +if ((--__n) > 0) { +# 598 +++__first; } else { +# 600 +break; } +# 601 +} +# 602 +} +# 603 +return __result; +# 604 +} +# 607 +template< class _CharT, class _Size> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, _CharT *> ::__type __copy_n_a(istreambuf_iterator< _CharT, char_traits< _CharT> > , _Size, _CharT *, bool); +# 613 +template< class _CharT, class _Size> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, _Deque_iterator< _CharT, _CharT &, _CharT *> > ::__type __copy_n_a(istreambuf_iterator< _CharT, char_traits< _CharT> > , _Size, _Deque_iterator< _CharT, _CharT &, _CharT *> , bool); +# 639 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II, class _OI> inline _OI +# 642 +copy(_II __first, _II __last, _OI __result) +# 643 +{ +# 648 +; +# 650 +return std::__copy_move_a< __is_move_iterator< _II> ::__value> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 652 +} +# 672 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II, class _OI> inline _OI +# 675 +move(_II __first, _II __last, _OI __result) +# 676 +{ +# 681 +; +# 683 +return std::__copy_move_a< true> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 685 +} +# 692 +template< bool _IsMove, bool _IsSimple, class _Category> +# 693 +struct __copy_move_backward { +# 695 +template< class _BI1, class _BI2> static _BI2 +# 698 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 699 +{ +# 700 +while (__first != __last) { +# 701 +(*(--__result)) = (*(--__last)); } +# 702 +return __result; +# 703 +} +# 704 +}; +# 707 +template< class _Category> +# 708 +struct __copy_move_backward< true, false, _Category> { +# 710 +template< class _BI1, class _BI2> static _BI2 +# 713 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 714 +{ +# 715 +while (__first != __last) { +# 716 +(*(--__result)) = std::move(*(--__last)); } +# 717 +return __result; +# 718 +} +# 719 +}; +# 723 +template<> struct __copy_move_backward< false, false, random_access_iterator_tag> { +# 725 +template< class _BI1, class _BI2> static _BI2 +# 728 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 729 +{ +# 731 +typename iterator_traits< _BI1> ::difference_type __n = __last - __first; +# 732 +for (; __n > 0; --__n) { +# 733 +(*(--__result)) = (*(--__last)); } +# 734 +return __result; +# 735 +} +# 736 +}; +# 740 +template<> struct __copy_move_backward< true, false, random_access_iterator_tag> { +# 742 +template< class _BI1, class _BI2> static _BI2 +# 745 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 746 +{ +# 748 +typename iterator_traits< _BI1> ::difference_type __n = __last - __first; +# 749 +for (; __n > 0; --__n) { +# 750 +(*(--__result)) = std::move(*(--__last)); } +# 751 +return __result; +# 752 +} +# 753 +}; +# 756 +template< bool _IsMove> +# 757 +struct __copy_move_backward< _IsMove, true, random_access_iterator_tag> { +# 759 +template< class _Tp, class _Up> static _Up * +# 762 +__copy_move_b(_Tp *__first, _Tp *__last, _Up *__result) +# 763 +{ +# 764 +const ptrdiff_t _Num = __last - __first; +# 765 +if (__builtin_expect(_Num > (1), true)) { +# 766 +__builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); } else { +# 767 +if (_Num == (1)) { +# 768 +std::template __copy_move< _IsMove, false, random_access_iterator_tag> ::__assign_one(__result - 1, __first); } } +# 770 +return __result - _Num; +# 771 +} +# 772 +}; +# 774 +template< bool _IsMove, class _BI1, class _BI2> inline _BI2 +# 777 +__copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) +# 778 +{ +# 779 +typedef typename iterator_traits< _BI1> ::iterator_category _Category; +# 785 +return std::template __copy_move_backward< _IsMove, __memcpyable< _BI2, _BI1> ::__value, typename iterator_traits< _BI1> ::iterator_category> ::__copy_move_b(__first, __last, __result); +# 790 +} +# 792 +template< bool _IsMove, class _BI1, class _BI2> inline _BI2 +# 795 +__copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) +# 796 +{ return std::__copy_move_backward_a2< _IsMove> (__first, __last, __result); } +# 798 +template< bool _IsMove, class +# 799 +_Tp, class _Ref, class _Ptr, class _OI> _OI +# 798 +__copy_move_backward_a1(_Deque_iterator< _Tp, _Ref, _Ptr> , _Deque_iterator< _Tp, _Ref, _Ptr> , _OI); +# 805 +template< bool _IsMove, class +# 806 +_ITp, class _IRef, class _IPtr, class _OTp> _Deque_iterator< _OTp, _OTp &, _OTp *> +# 805 +__copy_move_backward_a1(_Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _OTp, _OTp &, _OTp *> ); +# 813 +template< bool _IsMove, class _II, class _Tp> typename __gnu_cxx::__enable_if< __is_random_access_iter< _II> ::__value, _Deque_iterator< _Tp, _Tp &, _Tp *> > ::__type __copy_move_backward_a1(_II, _II, _Deque_iterator< _Tp, _Tp &, _Tp *> ); +# 820 +template< bool _IsMove, class _II, class _OI> inline _OI +# 823 +__copy_move_backward_a(_II __first, _II __last, _OI __result) +# 824 +{ +# 825 +return std::__niter_wrap(__result, std::__copy_move_backward_a1< _IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); +# 829 +} +# 831 +template< bool _IsMove, class +# 832 +_Ite, class _Seq, class _Cat, class _OI> _OI +# 831 +__copy_move_backward_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, _OI); +# 840 +template< bool _IsMove, class +# 841 +_II, class _Ite, class _Seq, class _Cat> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 840 +__copy_move_backward_a(_II, _II, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &); +# 847 +template< bool _IsMove, class +# 848 +_IIte, class _ISeq, class _ICat, class +# 849 +_OIte, class _OSeq, class _OCat> __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> +# 847 +__copy_move_backward_a(const __gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat> &, const __gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat> &, const __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> &); +# 875 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _BI1, class _BI2> inline _BI2 +# 878 +copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) +# 879 +{ +# 885 +; +# 887 +return std::__copy_move_backward_a< __is_move_iterator< _BI1> ::__value> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 889 +} +# 910 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _BI1, class _BI2> inline _BI2 +# 913 +move_backward(_BI1 __first, _BI1 __last, _BI2 __result) +# 914 +{ +# 920 +; +# 922 +return std::__copy_move_backward_a< true> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 925 +} +# 932 +template< class _ForwardIterator, class _Tp> inline typename __gnu_cxx::__enable_if< !__is_scalar< _Tp> ::__value, void> ::__type +# 936 +__fill_a1(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 937 +__value) +# 938 +{ +# 939 +for (; __first != __last; ++__first) { +# 940 +(*__first) = __value; } +# 941 +} +# 943 +template< class _ForwardIterator, class _Tp> inline typename __gnu_cxx::__enable_if< __is_scalar< _Tp> ::__value, void> ::__type +# 947 +__fill_a1(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 948 +__value) +# 949 +{ +# 950 +const _Tp __tmp = __value; +# 951 +for (; __first != __last; ++__first) { +# 952 +(*__first) = __tmp; } +# 953 +} +# 956 +template< class _Tp> inline typename __gnu_cxx::__enable_if< __is_byte< _Tp> ::__value, void> ::__type +# 960 +__fill_a1(_Tp *__first, _Tp *__last, const _Tp &__c) +# 961 +{ +# 962 +const _Tp __tmp = __c; +# 971 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +if (const size_t __len = __last - __first) { +# 972 +__builtin_memset(__first, static_cast< unsigned char>(__tmp), __len); } +# 973 +} +# 975 +template< class _Ite, class _Cont, class _Tp> inline void +# 978 +__fill_a1(__gnu_cxx::__normal_iterator< _Ite, _Cont> __first, __gnu_cxx::__normal_iterator< _Ite, _Cont> +# 979 +__last, const _Tp & +# 980 +__value) +# 981 +{ std::__fill_a1(__first.base(), __last.base(), __value); } +# 983 +template< class _Tp, class _VTp> void __fill_a1(const _Deque_iterator< _Tp, _Tp &, _Tp *> &, const _Deque_iterator< _Tp, _Tp &, _Tp *> &, const _VTp &); +# 991 +void __fill_a1(_Bit_iterator, _Bit_iterator, const bool &); +# 994 +template< class _FIte, class _Tp> inline void +# 997 +__fill_a(_FIte __first, _FIte __last, const _Tp &__value) +# 998 +{ std::__fill_a1(__first, __last, __value); } +# 1000 +template< class _Ite, class _Seq, class _Cat, class _Tp> void __fill_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const _Tp &); +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator, class _Tp> inline void +# 1022 +fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value) +# 1023 +{ +# 1027 +; +# 1029 +std::__fill_a(__first, __last, __value); +# 1030 +} +# 1032 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" +# 1036 +constexpr int __size_to_integer(int __n) { return __n; } +# 1038 +constexpr unsigned __size_to_integer(unsigned __n) { return __n; } +# 1040 +constexpr long __size_to_integer(long __n) { return __n; } +# 1042 +constexpr unsigned long __size_to_integer(unsigned long __n) { return __n; } +# 1044 +constexpr long long __size_to_integer(long long __n) { return __n; } +# 1046 +constexpr unsigned long long __size_to_integer(unsigned long long __n) { return __n; } +# 1050 +__extension__ constexpr __int128 __size_to_integer(__int128 __n) { return __n; } +# 1052 +__extension__ constexpr unsigned __int128 __size_to_integer(unsigned __int128 __n) { return __n; } +# 1074 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +constexpr long long __size_to_integer(float __n) { return (long long)__n; } +# 1076 +constexpr long long __size_to_integer(double __n) { return (long long)__n; } +# 1078 +constexpr long long __size_to_integer(long double __n) { return (long long)__n; } +# 1081 +__extension__ constexpr long long __size_to_integer(__float128 __n) { return (long long)__n; } +# 1083 +#pragma GCC diagnostic pop +# 1085 +template< class _OutputIterator, class _Size, class _Tp> inline typename __gnu_cxx::__enable_if< !__is_scalar< _Tp> ::__value, _OutputIterator> ::__type +# 1089 +__fill_n_a1(_OutputIterator __first, _Size __n, const _Tp &__value) +# 1090 +{ +# 1091 +for (; __n > 0; (--__n), ((void)(++__first))) { +# 1092 +(*__first) = __value; } +# 1093 +return __first; +# 1094 +} +# 1096 +template< class _OutputIterator, class _Size, class _Tp> inline typename __gnu_cxx::__enable_if< __is_scalar< _Tp> ::__value, _OutputIterator> ::__type +# 1100 +__fill_n_a1(_OutputIterator __first, _Size __n, const _Tp &__value) +# 1101 +{ +# 1102 +const _Tp __tmp = __value; +# 1103 +for (; __n > 0; (--__n), ((void)(++__first))) { +# 1104 +(*__first) = __tmp; } +# 1105 +return __first; +# 1106 +} +# 1108 +template< class _Ite, class _Seq, class _Cat, class _Size, class +# 1109 +_Tp> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 1108 +__fill_n_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> & __first, _Size __n, const _Tp & __value, input_iterator_tag); +# 1116 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1119 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, output_iterator_tag) +# 1121 +{ +# 1123 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1125 +return __fill_n_a1(__first, __n, __value); +# 1126 +} +# 1128 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1131 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, input_iterator_tag) +# 1133 +{ +# 1135 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1137 +return __fill_n_a1(__first, __n, __value); +# 1138 +} +# 1140 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1143 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, random_access_iterator_tag) +# 1145 +{ +# 1147 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1149 +if (__n <= 0) { +# 1150 +return __first; } +# 1152 +; +# 1154 +std::__fill_a(__first, __first + __n, __value); +# 1155 +return __first + __n; +# 1156 +} +# 1175 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _OI, class _Size, class _Tp> inline _OI +# 1178 +fill_n(_OI __first, _Size __n, const _Tp &__value) +# 1179 +{ +# 1183 +return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, std::__iterator_category(__first)); +# 1185 +} +# 1187 +template< bool _BoolType> +# 1188 +struct __equal { +# 1190 +template< class _II1, class _II2> static bool +# 1193 +equal(_II1 __first1, _II1 __last1, _II2 __first2) +# 1194 +{ +# 1195 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 1196 +if (!((*__first1) == (*__first2))) { +# 1197 +return false; } } +# 1198 +return true; +# 1199 +} +# 1200 +}; +# 1203 +template<> struct __equal< true> { +# 1205 +template< class _Tp> static bool +# 1208 +equal(const _Tp *__first1, const _Tp *__last1, const _Tp *__first2) +# 1209 +{ +# 1210 +if (const size_t __len = __last1 - __first1) { +# 1211 +return !std::__memcmp(__first1, __first2, __len); } +# 1212 +return true; +# 1213 +} +# 1214 +}; +# 1216 +template< class _Tp, class _Ref, class _Ptr, class _II> typename __gnu_cxx::__enable_if< __is_random_access_iter< _II> ::__value, bool> ::__type __equal_aux1(_Deque_iterator< _Tp, _Ref, _Ptr> , _Deque_iterator< _Tp, _Ref, _Ptr> , _II); +# 1223 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1224 +_Tp2, class _Ref2, class _Ptr2> bool +# 1223 +__equal_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1230 +template< class _II, class _Tp, class _Ref, class _Ptr> typename __gnu_cxx::__enable_if< __is_random_access_iter< _II> ::__value, bool> ::__type __equal_aux1(_II, _II, _Deque_iterator< _Tp, _Ref, _Ptr> ); +# 1236 +template< class _II1, class _II2> inline bool +# 1239 +__equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) +# 1240 +{ +# 1241 +typedef typename iterator_traits< _II1> ::value_type _ValueType1; +# 1242 +const bool __simple = ((__is_integer< typename iterator_traits< _II1> ::value_type> ::__value || __is_pointer< typename iterator_traits< _II1> ::value_type> ::__value) && __memcmpable< _II1, _II2> ::__value); +# 1245 +return std::template __equal< __simple> ::equal(__first1, __last1, __first2); +# 1246 +} +# 1248 +template< class _II1, class _II2> inline bool +# 1251 +__equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) +# 1252 +{ +# 1253 +return std::__equal_aux1(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2)); +# 1256 +} +# 1258 +template< class _II1, class _Seq1, class _Cat1, class _II2> bool __equal_aux(const __gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1> &, _II2); +# 1265 +template< class _II1, class _II2, class _Seq2, class _Cat2> bool __equal_aux(_II1, _II1, const __gnu_debug::_Safe_iterator< _II2, _Seq2, _Cat2> &); +# 1271 +template< class _II1, class _Seq1, class _Cat1, class +# 1272 +_II2, class _Seq2, class _Cat2> bool +# 1271 +__equal_aux(const __gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _II2, _Seq2, _Cat2> &); +# 1279 +template< class , class > +# 1280 +struct __lc_rai { +# 1282 +template< class _II1, class _II2> static _II1 +# 1285 +__newlast1(_II1, _II1 __last1, _II2, _II2) +# 1286 +{ return __last1; } +# 1288 +template< class _II> static bool +# 1291 +__cnd2(_II __first, _II __last) +# 1292 +{ return __first != __last; } +# 1293 +}; +# 1296 +template<> struct __lc_rai< random_access_iterator_tag, random_access_iterator_tag> { +# 1298 +template< class _RAI1, class _RAI2> static _RAI1 +# 1301 +__newlast1(_RAI1 __first1, _RAI1 __last1, _RAI2 +# 1302 +__first2, _RAI2 __last2) +# 1303 +{ +# 1305 +const typename iterator_traits< _RAI1> ::difference_type __diff1 = __last1 - __first1; +# 1307 +const typename iterator_traits< _RAI2> ::difference_type __diff2 = __last2 - __first2; +# 1308 +return (__diff2 < __diff1) ? __first1 + __diff2 : __last1; +# 1309 +} +# 1311 +template< class _RAI> static bool +# 1313 +__cnd2(_RAI, _RAI) +# 1314 +{ return true; } +# 1315 +}; +# 1317 +template< class _II1, class _II2, class _Compare> bool +# 1320 +__lexicographical_compare_impl(_II1 __first1, _II1 __last1, _II2 +# 1321 +__first2, _II2 __last2, _Compare +# 1322 +__comp) +# 1323 +{ +# 1324 +typedef typename iterator_traits< _II1> ::iterator_category _Category1; +# 1325 +typedef typename iterator_traits< _II2> ::iterator_category _Category2; +# 1326 +typedef __lc_rai< typename iterator_traits< _II1> ::iterator_category, typename iterator_traits< _II2> ::iterator_category> __rai_type; +# 1328 +__last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); +# 1329 +for (; (__first1 != __last1) && __rai_type::__cnd2(__first2, __last2); (++__first1), ((void)(++__first2))) +# 1331 +{ +# 1332 +if (__comp(__first1, __first2)) { +# 1333 +return true; } +# 1334 +if (__comp(__first2, __first1)) { +# 1335 +return false; } +# 1336 +} +# 1337 +return (__first1 == __last1) && (__first2 != __last2); +# 1338 +} +# 1340 +template< bool _BoolType> +# 1341 +struct __lexicographical_compare { +# 1343 +template< class _II1, class _II2> static bool +# 1346 +__lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1347 +{ +# 1348 +using __gnu_cxx::__ops::__iter_less_iter; +# 1349 +return std::__lexicographical_compare_impl(__first1, __last1, __first2, __last2, __iter_less_iter()); +# 1352 +} +# 1354 +template< class _II1, class _II2> static int +# 1357 +__3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1358 +{ +# 1359 +while (__first1 != __last1) +# 1360 +{ +# 1361 +if (__first2 == __last2) { +# 1362 +return +1; } +# 1363 +if ((*__first1) < (*__first2)) { +# 1364 +return -1; } +# 1365 +if ((*__first2) < (*__first1)) { +# 1366 +return +1; } +# 1367 +++__first1; +# 1368 +++__first2; +# 1369 +} +# 1370 +return ((int)(__first2 == __last2)) - 1; +# 1371 +} +# 1372 +}; +# 1375 +template<> struct __lexicographical_compare< true> { +# 1377 +template< class _Tp, class _Up> static bool +# 1380 +__lc(const _Tp *__first1, const _Tp *__last1, const _Up * +# 1381 +__first2, const _Up *__last2) +# 1382 +{ return __3way(__first1, __last1, __first2, __last2) < 0; } +# 1384 +template< class _Tp, class _Up> static ptrdiff_t +# 1387 +__3way(const _Tp *__first1, const _Tp *__last1, const _Up * +# 1388 +__first2, const _Up *__last2) +# 1389 +{ +# 1390 +const size_t __len1 = __last1 - __first1; +# 1391 +const size_t __len2 = __last2 - __first2; +# 1392 +if (const size_t __len = std::min(__len1, __len2)) { +# 1393 +if (int __result = std::__memcmp(__first1, __first2, __len)) { +# 1394 +return __result; } } +# 1395 +return (ptrdiff_t)(__len1 - __len2); +# 1396 +} +# 1397 +}; +# 1399 +template< class _II1, class _II2> inline bool +# 1402 +__lexicographical_compare_aux1(_II1 __first1, _II1 __last1, _II2 +# 1403 +__first2, _II2 __last2) +# 1404 +{ +# 1405 +typedef typename iterator_traits< _II1> ::value_type _ValueType1; +# 1406 +typedef typename iterator_traits< _II2> ::value_type _ValueType2; +# 1407 +const bool __simple = (__is_memcmp_ordered_with< typename iterator_traits< _II1> ::value_type, typename iterator_traits< _II2> ::value_type> ::__value && __is_pointer< _II1> ::__value && __is_pointer< _II2> ::__value); +# 1420 +return std::template __lexicographical_compare< __simple> ::__lc(__first1, __last1, __first2, __last2); +# 1422 +} +# 1424 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1425 +_Tp2> bool +# 1424 +__lexicographical_compare_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Tp2 *, _Tp2 *); +# 1432 +template< class _Tp1, class +# 1433 +_Tp2, class _Ref2, class _Ptr2> bool +# 1432 +__lexicographical_compare_aux1(_Tp1 *, _Tp1 *, _Deque_iterator< _Tp2, _Ref2, _Ptr2> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1439 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1440 +_Tp2, class _Ref2, class _Ptr2> bool +# 1439 +__lexicographical_compare_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1448 +template< class _II1, class _II2> inline bool +# 1451 +__lexicographical_compare_aux(_II1 __first1, _II1 __last1, _II2 +# 1452 +__first2, _II2 __last2) +# 1453 +{ +# 1454 +return std::__lexicographical_compare_aux1(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2), std::__niter_base(__last2)); +# 1458 +} +# 1460 +template< class _Iter1, class _Seq1, class _Cat1, class +# 1461 +_II2> bool +# 1460 +__lexicographical_compare_aux(const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, _II2, _II2); +# 1469 +template< class _II1, class +# 1470 +_Iter2, class _Seq2, class _Cat2> bool +# 1469 +__lexicographical_compare_aux(_II1, _II1, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &); +# 1478 +template< class _Iter1, class _Seq1, class _Cat1, class +# 1479 +_Iter2, class _Seq2, class _Cat2> bool +# 1478 +__lexicographical_compare_aux(const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &); +# 1488 +template< class _ForwardIterator, class _Tp, class _Compare> _ForwardIterator +# 1491 +__lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 1492 +__val, _Compare __comp) +# 1493 +{ +# 1495 +typedef typename iterator_traits< _ForwardIterator> ::difference_type _DistanceType; +# 1497 +_DistanceType __len = std::distance(__first, __last); +# 1499 +while (__len > 0) +# 1500 +{ +# 1501 +_DistanceType __half = __len >> 1; +# 1502 +_ForwardIterator __middle = __first; +# 1503 +std::advance(__middle, __half); +# 1504 +if (__comp(__middle, __val)) +# 1505 +{ +# 1506 +__first = __middle; +# 1507 +++__first; +# 1508 +__len = ((__len - __half) - 1); +# 1509 +} else { +# 1511 +__len = __half; } +# 1512 +} +# 1513 +return __first; +# 1514 +} +# 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator, class _Tp> +# 1528 +[[__nodiscard__]] inline _ForwardIterator +# 1530 +lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 1531 +__val) +# 1532 +{ +# 1537 +; +# 1539 +return std::__lower_bound(__first, __last, __val, __gnu_cxx::__ops::__iter_less_val()); +# 1541 +} +# 1545 +template< class _Tp> constexpr _Tp +# 1547 +__lg(_Tp __n) +# 1548 +{ +# 1550 +return std::__bit_width((make_unsigned_t< _Tp> )__n) - 1; +# 1563 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +} +# 1579 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II1, class _II2> +# 1580 +[[__nodiscard__]] inline bool +# 1582 +equal(_II1 __first1, _II1 __last1, _II2 __first2) +# 1583 +{ +# 1590 +; +# 1592 +return std::__equal_aux(__first1, __last1, __first2); +# 1593 +} +# 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _IIter1, class _IIter2, class _BinaryPredicate> +# 1611 +[[__nodiscard__]] inline bool +# 1613 +equal(_IIter1 __first1, _IIter1 __last1, _IIter2 +# 1614 +__first2, _BinaryPredicate __binary_pred) +# 1615 +{ +# 1619 +; +# 1621 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 1622 +if (!((bool)__binary_pred(*__first1, *__first2))) { +# 1623 +return false; } } +# 1624 +return true; +# 1625 +} +# 1628 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++17-extensions" +# 1632 +template< class _II1, class _II2> inline bool +# 1635 +__equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1636 +{ +# 1637 +using _RATag = random_access_iterator_tag; +# 1638 +using _Cat1 = typename iterator_traits< _II1> ::iterator_category; +# 1639 +using _Cat2 = typename iterator_traits< _II2> ::iterator_category; +# 1640 +using _RAIters = __and_< is_same< typename iterator_traits< _II1> ::iterator_category, random_access_iterator_tag> , is_same< typename iterator_traits< _II2> ::iterator_category, random_access_iterator_tag> > ; +# 1641 +if constexpr (_RAIters::value) +# 1642 +{ +# 1643 +if ((__last1 - __first1) != (__last2 - __first2)) { +# 1644 +return false; } +# 1645 +return std::equal(__first1, __last1, __first2); +# 1646 +} else +# 1648 +{ +# 1649 +for (; (__first1 != __last1) && (__first2 != __last2); (++__first1), ((void)(++__first2))) { +# 1651 +if (!((*__first1) == (*__first2))) { +# 1652 +return false; } } +# 1653 +return (__first1 == __last1) && (__first2 == __last2); +# 1654 +} +# 1655 +} +# 1658 +template< class _II1, class _II2, class _BinaryPredicate> inline bool +# 1661 +__equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _BinaryPredicate +# 1662 +__binary_pred) +# 1663 +{ +# 1664 +using _RATag = random_access_iterator_tag; +# 1665 +using _Cat1 = typename iterator_traits< _II1> ::iterator_category; +# 1666 +using _Cat2 = typename iterator_traits< _II2> ::iterator_category; +# 1667 +using _RAIters = __and_< is_same< typename iterator_traits< _II1> ::iterator_category, random_access_iterator_tag> , is_same< typename iterator_traits< _II2> ::iterator_category, random_access_iterator_tag> > ; +# 1668 +if constexpr (_RAIters::value) +# 1669 +{ +# 1670 +if ((__last1 - __first1) != (__last2 - __first2)) { +# 1671 +return false; } +# 1672 +return std::equal(__first1, __last1, __first2, __binary_pred); +# 1674 +} else +# 1676 +{ +# 1677 +for (; (__first1 != __last1) && (__first2 != __last2); (++__first1), ((void)(++__first2))) { +# 1679 +if (!((bool)__binary_pred(*__first1, *__first2))) { +# 1680 +return false; } } +# 1681 +return (__first1 == __last1) && (__first2 == __last2); +# 1682 +} +# 1683 +} +#pragma GCC diagnostic pop +# 1701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II1, class _II2> +# 1702 +[[__nodiscard__]] inline bool +# 1704 +equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1705 +{ +# 1712 +; +# 1713 +; +# 1715 +return std::__equal4(__first1, __last1, __first2, __last2); +# 1716 +} +# 1734 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _IIter1, class _IIter2, class _BinaryPredicate> +# 1735 +[[__nodiscard__]] inline bool +# 1737 +equal(_IIter1 __first1, _IIter1 __last1, _IIter2 +# 1738 +__first2, _IIter2 __last2, _BinaryPredicate __binary_pred) +# 1739 +{ +# 1743 +; +# 1744 +; +# 1746 +return std::__equal4(__first1, __last1, __first2, __last2, __binary_pred); +# 1748 +} +# 1766 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II1, class _II2> +# 1767 +[[__nodiscard__]] inline bool +# 1769 +lexicographical_compare(_II1 __first1, _II1 __last1, _II2 +# 1770 +__first2, _II2 __last2) +# 1771 +{ +# 1781 +; +# 1782 +; +# 1784 +return std::__lexicographical_compare_aux(__first1, __last1, __first2, __last2); +# 1786 +} +# 1801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II1, class _II2, class _Compare> +# 1802 +[[__nodiscard__]] inline bool +# 1804 +lexicographical_compare(_II1 __first1, _II1 __last1, _II2 +# 1805 +__first2, _II2 __last2, _Compare __comp) +# 1806 +{ +# 1810 +; +# 1811 +; +# 1813 +return std::__lexicographical_compare_impl(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__comp)); +# 1816 +} +# 1916 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 1917 +_BinaryPredicate> pair< _InputIterator1, _InputIterator2> +# 1920 +__mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1921 +__first2, _BinaryPredicate __binary_pred) +# 1922 +{ +# 1923 +while ((__first1 != __last1) && __binary_pred(__first1, __first2)) +# 1924 +{ +# 1925 +++__first1; +# 1926 +++__first2; +# 1927 +} +# 1928 +return pair< _InputIterator1, _InputIterator2> (__first1, __first2); +# 1929 +} +# 1944 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2> +# 1945 +[[__nodiscard__]] inline pair< _InputIterator1, _InputIterator2> +# 1947 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1948 +__first2) +# 1949 +{ +# 1956 +; +# 1958 +return std::__mismatch(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 1960 +} +# 1978 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 1979 +_BinaryPredicate> +# 1980 +[[__nodiscard__]] inline pair< _InputIterator1, _InputIterator2> +# 1982 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1983 +__first2, _BinaryPredicate __binary_pred) +# 1984 +{ +# 1988 +; +# 1990 +return std::__mismatch(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); +# 1992 +} +# 1995 +template< class _InputIterator1, class _InputIterator2, class +# 1996 +_BinaryPredicate> pair< _InputIterator1, _InputIterator2> +# 1999 +__mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 2000 +__first2, _InputIterator2 __last2, _BinaryPredicate +# 2001 +__binary_pred) +# 2002 +{ +# 2003 +while ((__first1 != __last1) && (__first2 != __last2) && __binary_pred(__first1, __first2)) +# 2005 +{ +# 2006 +++__first1; +# 2007 +++__first2; +# 2008 +} +# 2009 +return pair< _InputIterator1, _InputIterator2> (__first1, __first2); +# 2010 +} +# 2026 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2> +# 2027 +[[__nodiscard__]] inline pair< _InputIterator1, _InputIterator2> +# 2029 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 2030 +__first2, _InputIterator2 __last2) +# 2031 +{ +# 2038 +; +# 2039 +; +# 2041 +return std::__mismatch(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 2043 +} +# 2062 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 2063 +_BinaryPredicate> +# 2064 +[[__nodiscard__]] inline pair< _InputIterator1, _InputIterator2> +# 2066 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 2067 +__first2, _InputIterator2 __last2, _BinaryPredicate +# 2068 +__binary_pred) +# 2069 +{ +# 2073 +; +# 2074 +; +# 2076 +return std::__mismatch(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); +# 2078 +} +# 2084 +template< class _InputIterator, class _Predicate> inline _InputIterator +# 2087 +__find_if(_InputIterator __first, _InputIterator __last, _Predicate +# 2088 +__pred, input_iterator_tag) +# 2089 +{ +# 2090 +while ((__first != __last) && (!__pred(__first))) { +# 2091 +++__first; } +# 2092 +return __first; +# 2093 +} +# 2096 +template< class _RandomAccessIterator, class _Predicate> _RandomAccessIterator +# 2099 +__find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate +# 2100 +__pred, random_access_iterator_tag) +# 2101 +{ +# 2103 +typename iterator_traits< _RandomAccessIterator> ::difference_type __trip_count = (__last - __first) >> 2; +# 2105 +for (; __trip_count > 0; --__trip_count) +# 2106 +{ +# 2107 +if (__pred(__first)) { +# 2108 +return __first; } +# 2109 +++__first; +# 2111 +if (__pred(__first)) { +# 2112 +return __first; } +# 2113 +++__first; +# 2115 +if (__pred(__first)) { +# 2116 +return __first; } +# 2117 +++__first; +# 2119 +if (__pred(__first)) { +# 2120 +return __first; } +# 2121 +++__first; +# 2122 +} +# 2124 +switch (__last - __first) +# 2125 +{ +# 2126 +case 3: +# 2127 +if (__pred(__first)) { +# 2128 +return __first; } +# 2129 +++__first; +# 2131 +case 2: +# 2132 +if (__pred(__first)) { +# 2133 +return __first; } +# 2134 +++__first; +# 2136 +case 1: +# 2137 +if (__pred(__first)) { +# 2138 +return __first; } +# 2139 +++__first; +# 2141 +case 0: +# 2142 +default: +# 2143 +return __last; +# 2144 +} +# 2145 +} +# 2147 +template< class _Iterator, class _Predicate> inline _Iterator +# 2150 +__find_if(_Iterator __first, _Iterator __last, _Predicate __pred) +# 2151 +{ +# 2152 +return __find_if(__first, __last, __pred, std::__iterator_category(__first)); +# 2154 +} +# 2156 +template< class _InputIterator, class _Predicate> typename iterator_traits< _InputIterator> ::difference_type +# 2159 +__count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) +# 2160 +{ +# 2161 +typename iterator_traits< _InputIterator> ::difference_type __n = (0); +# 2162 +for (; __first != __last; ++__first) { +# 2163 +if (__pred(__first)) { +# 2164 +++__n; } } +# 2165 +return __n; +# 2166 +} +# 2168 +template< class _ForwardIterator, class _Predicate> _ForwardIterator +# 2171 +__remove_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate +# 2172 +__pred) +# 2173 +{ +# 2174 +__first = std::__find_if(__first, __last, __pred); +# 2175 +if (__first == __last) { +# 2176 +return __first; } +# 2177 +_ForwardIterator __result = __first; +# 2178 +++__first; +# 2179 +for (; __first != __last; ++__first) { +# 2180 +if (!__pred(__first)) +# 2181 +{ +# 2182 +(*__result) = std::move(*__first); +# 2183 +++__result; +# 2184 +} } +# 2185 +return __result; +# 2186 +} +# 2188 +template< class _ForwardIterator1, class _ForwardIterator2, class +# 2189 +_BinaryPredicate> _ForwardIterator1 +# 2192 +__search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2193 +__first2, _ForwardIterator2 __last2, _BinaryPredicate +# 2194 +__predicate) +# 2195 +{ +# 2197 +if ((__first1 == __last1) || (__first2 == __last2)) { +# 2198 +return __first1; } +# 2201 +_ForwardIterator2 __p1(__first2); +# 2202 +if ((++__p1) == __last2) { +# 2203 +return std::__find_if(__first1, __last1, __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); } +# 2207 +_ForwardIterator1 __current = __first1; +# 2209 +for (; ;) +# 2210 +{ +# 2211 +__first1 = std::__find_if(__first1, __last1, __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); +# 2215 +if (__first1 == __last1) { +# 2216 +return __last1; } +# 2218 +_ForwardIterator2 __p = __p1; +# 2219 +__current = __first1; +# 2220 +if ((++__current) == __last1) { +# 2221 +return __last1; } +# 2223 +while (__predicate(__current, __p)) +# 2224 +{ +# 2225 +if ((++__p) == __last2) { +# 2226 +return __first1; } +# 2227 +if ((++__current) == __last1) { +# 2228 +return __last1; } +# 2229 +} +# 2230 +++__first1; +# 2231 +} +# 2232 +return __first1; +# 2233 +} +# 2236 +template< class _ForwardIterator1, class _ForwardIterator2, class +# 2237 +_BinaryPredicate> bool +# 2240 +__is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2241 +__first2, _BinaryPredicate __pred) +# 2242 +{ +# 2245 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 2246 +if (!__pred(__first1, __first2)) { +# 2247 +break; } } +# 2249 +if (__first1 == __last1) { +# 2250 +return true; } +# 2254 +_ForwardIterator2 __last2 = __first2; +# 2255 +std::advance(__last2, std::distance(__first1, __last1)); +# 2256 +for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) +# 2257 +{ +# 2258 +if (__scan != std::__find_if(__first1, __scan, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) { +# 2260 +continue; } +# 2262 +auto __matches = std::__count_if(__first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); +# 2265 +if ((0 == __matches) || (std::__count_if(__scan, __last1, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) != __matches)) { +# 2269 +return false; } +# 2270 +} +# 2271 +return true; +# 2272 +} +# 2286 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> inline bool +# 2289 +is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2290 +__first2) +# 2291 +{ +# 2298 +; +# 2300 +return std::__is_permutation(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 2302 +} +# 2328 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2, class +# 2329 +_BinaryPredicate> inline _ForwardIterator1 +# 2332 +search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2333 +__first2, _ForwardIterator2 __last2, _BinaryPredicate +# 2334 +__predicate) +# 2335 +{ +# 2342 +; +# 2343 +; +# 2345 +return std::__search(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__predicate)); +# 2347 +} +# 2351 +} +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +namespace std __attribute((__visibility__("default"))) { +# 167 +enum float_round_style { +# 169 +round_indeterminate = (-1), +# 170 +round_toward_zero = 0, +# 171 +round_to_nearest, +# 172 +round_toward_infinity, +# 173 +round_toward_neg_infinity +# 174 +}; +# 182 +enum float_denorm_style { +# 185 +denorm_indeterminate = (-1), +# 187 +denorm_absent = 0, +# 189 +denorm_present +# 190 +}; +# 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +struct __numeric_limits_base { +# 206 +static constexpr inline bool is_specialized = false; +# 211 +static constexpr inline int digits = 0; +# 214 +static constexpr inline int digits10 = 0; +# 219 +static constexpr inline int max_digits10 = 0; +# 223 +static constexpr inline bool is_signed = false; +# 226 +static constexpr inline bool is_integer = false; +# 231 +static constexpr inline bool is_exact = false; +# 235 +static constexpr inline int radix = 0; +# 239 +static constexpr inline int min_exponent = 0; +# 243 +static constexpr inline int min_exponent10 = 0; +# 248 +static constexpr inline int max_exponent = 0; +# 252 +static constexpr inline int max_exponent10 = 0; +# 255 +static constexpr inline bool has_infinity = false; +# 259 +static constexpr inline bool has_quiet_NaN = false; +# 263 +static constexpr inline bool has_signaling_NaN = false; +# 266 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 270 +static constexpr inline bool has_denorm_loss = false; +# 274 +static constexpr inline bool is_iec559 = false; +# 279 +static constexpr inline bool is_bounded = false; +# 288 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +static constexpr inline bool is_modulo = false; +# 291 +static constexpr inline bool traps = false; +# 294 +static constexpr inline bool tinyness_before = false; +# 299 +static constexpr inline float_round_style round_style = round_toward_zero; +# 301 +}; +# 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template< class _Tp> +# 312 +struct numeric_limits : public __numeric_limits_base { +# 317 +static constexpr _Tp min() noexcept { return _Tp(); } +# 321 +static constexpr _Tp max() noexcept { return _Tp(); } +# 327 +static constexpr _Tp lowest() noexcept { return _Tp(); } +# 333 +static constexpr _Tp epsilon() noexcept { return _Tp(); } +# 337 +static constexpr _Tp round_error() noexcept { return _Tp(); } +# 341 +static constexpr _Tp infinity() noexcept { return _Tp(); } +# 346 +static constexpr _Tp quiet_NaN() noexcept { return _Tp(); } +# 351 +static constexpr _Tp signaling_NaN() noexcept { return _Tp(); } +# 357 +static constexpr _Tp denorm_min() noexcept { return _Tp(); } +# 358 +}; +# 363 +template< class _Tp> +# 364 +struct numeric_limits< const _Tp> : public std::numeric_limits< _Tp> { +# 365 +}; +# 367 +template< class _Tp> +# 368 +struct numeric_limits< volatile _Tp> : public std::numeric_limits< _Tp> { +# 369 +}; +# 371 +template< class _Tp> +# 372 +struct numeric_limits< const volatile _Tp> : public std::numeric_limits< _Tp> { +# 373 +}; +# 384 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< bool> { +# 386 +static constexpr inline bool is_specialized = true; +# 389 +static constexpr bool min() noexcept { return false; } +# 392 +static constexpr bool max() noexcept { return true; } +# 396 +static constexpr bool lowest() noexcept { return min(); } +# 398 +static constexpr inline int digits = 1; +# 399 +static constexpr inline int digits10 = 0; +# 401 +static constexpr inline int max_digits10 = 0; +# 403 +static constexpr inline bool is_signed = false; +# 404 +static constexpr inline bool is_integer = true; +# 405 +static constexpr inline bool is_exact = true; +# 406 +static constexpr inline int radix = 2; +# 409 +static constexpr bool epsilon() noexcept { return false; } +# 412 +static constexpr bool round_error() noexcept { return false; } +# 414 +static constexpr inline int min_exponent = 0; +# 415 +static constexpr inline int min_exponent10 = 0; +# 416 +static constexpr inline int max_exponent = 0; +# 417 +static constexpr inline int max_exponent10 = 0; +# 419 +static constexpr inline bool has_infinity = false; +# 420 +static constexpr inline bool has_quiet_NaN = false; +# 421 +static constexpr inline bool has_signaling_NaN = false; +# 422 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 424 +static constexpr inline bool has_denorm_loss = false; +# 427 +static constexpr bool infinity() noexcept { return false; } +# 430 +static constexpr bool quiet_NaN() noexcept { return false; } +# 433 +static constexpr bool signaling_NaN() noexcept { return false; } +# 436 +static constexpr bool denorm_min() noexcept { return false; } +# 438 +static constexpr inline bool is_iec559 = false; +# 439 +static constexpr inline bool is_bounded = true; +# 440 +static constexpr inline bool is_modulo = false; +# 445 +static constexpr inline bool traps = true; +# 446 +static constexpr inline bool tinyness_before = false; +# 447 +static constexpr inline float_round_style round_style = round_toward_zero; +# 449 +}; +# 453 +template<> struct numeric_limits< char> { +# 455 +static constexpr inline bool is_specialized = true; +# 458 +static constexpr char min() noexcept { return ((((char)(-1)) < 0) ? (-((((char)(-1)) < 0) ? (((((char)1) << (((sizeof(char) * (8)) - (((char)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((char)0)))) - 1 : ((char)0)); } +# 461 +static constexpr char max() noexcept { return ((((char)(-1)) < 0) ? (((((char)1) << (((sizeof(char) * (8)) - (((char)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((char)0))); } +# 465 +static constexpr char lowest() noexcept { return min(); } +# 468 +static constexpr inline int digits = ((sizeof(char) * (8)) - (((char)(-1)) < 0)); +# 469 +static constexpr inline int digits10 = ((((sizeof(char) * (8)) - (((char)(-1)) < 0)) * (643L)) / (2136)); +# 471 +static constexpr inline int max_digits10 = 0; +# 473 +static constexpr inline bool is_signed = (((char)(-1)) < 0); +# 474 +static constexpr inline bool is_integer = true; +# 475 +static constexpr inline bool is_exact = true; +# 476 +static constexpr inline int radix = 2; +# 479 +static constexpr char epsilon() noexcept { return 0; } +# 482 +static constexpr char round_error() noexcept { return 0; } +# 484 +static constexpr inline int min_exponent = 0; +# 485 +static constexpr inline int min_exponent10 = 0; +# 486 +static constexpr inline int max_exponent = 0; +# 487 +static constexpr inline int max_exponent10 = 0; +# 489 +static constexpr inline bool has_infinity = false; +# 490 +static constexpr inline bool has_quiet_NaN = false; +# 491 +static constexpr inline bool has_signaling_NaN = false; +# 492 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 494 +static constexpr inline bool has_denorm_loss = false; +# 497 +static constexpr char infinity() noexcept { return ((char)0); } +# 500 +static constexpr char quiet_NaN() noexcept { return ((char)0); } +# 503 +static constexpr char signaling_NaN() noexcept { return ((char)0); } +# 506 +static constexpr char denorm_min() noexcept { return static_cast< char>(0); } +# 508 +static constexpr inline bool is_iec559 = false; +# 509 +static constexpr inline bool is_bounded = true; +# 510 +static constexpr inline bool is_modulo = (!is_signed); +# 512 +static constexpr inline bool traps = true; +# 513 +static constexpr inline bool tinyness_before = false; +# 514 +static constexpr inline float_round_style round_style = round_toward_zero; +# 516 +}; +# 520 +template<> struct numeric_limits< signed char> { +# 522 +static constexpr inline bool is_specialized = true; +# 525 +static constexpr signed char min() noexcept { return (-127) - 1; } +# 528 +static constexpr signed char max() noexcept { return 127; } +# 532 +static constexpr signed char lowest() noexcept { return min(); } +# 535 +static constexpr inline int digits = ((sizeof(signed char) * (8)) - (((signed char)(-1)) < 0)); +# 536 +static constexpr inline int digits10 = ((((sizeof(signed char) * (8)) - (((signed char)(-1)) < 0)) * (643L)) / (2136)); +# 539 +static constexpr inline int max_digits10 = 0; +# 541 +static constexpr inline bool is_signed = true; +# 542 +static constexpr inline bool is_integer = true; +# 543 +static constexpr inline bool is_exact = true; +# 544 +static constexpr inline int radix = 2; +# 547 +static constexpr signed char epsilon() noexcept { return 0; } +# 550 +static constexpr signed char round_error() noexcept { return 0; } +# 552 +static constexpr inline int min_exponent = 0; +# 553 +static constexpr inline int min_exponent10 = 0; +# 554 +static constexpr inline int max_exponent = 0; +# 555 +static constexpr inline int max_exponent10 = 0; +# 557 +static constexpr inline bool has_infinity = false; +# 558 +static constexpr inline bool has_quiet_NaN = false; +# 559 +static constexpr inline bool has_signaling_NaN = false; +# 560 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 562 +static constexpr inline bool has_denorm_loss = false; +# 565 +static constexpr signed char infinity() noexcept { return static_cast< signed char>(0); } +# 568 +static constexpr signed char quiet_NaN() noexcept { return static_cast< signed char>(0); } +# 571 +static constexpr signed char signaling_NaN() noexcept +# 572 +{ return static_cast< signed char>(0); } +# 575 +static constexpr signed char denorm_min() noexcept +# 576 +{ return static_cast< signed char>(0); } +# 578 +static constexpr inline bool is_iec559 = false; +# 579 +static constexpr inline bool is_bounded = true; +# 580 +static constexpr inline bool is_modulo = false; +# 582 +static constexpr inline bool traps = true; +# 583 +static constexpr inline bool tinyness_before = false; +# 584 +static constexpr inline float_round_style round_style = round_toward_zero; +# 586 +}; +# 590 +template<> struct numeric_limits< unsigned char> { +# 592 +static constexpr inline bool is_specialized = true; +# 595 +static constexpr unsigned char min() noexcept { return 0; } +# 598 +static constexpr unsigned char max() noexcept { return ((127) * 2U) + (1); } +# 602 +static constexpr unsigned char lowest() noexcept { return min(); } +# 605 +static constexpr inline int digits = ((sizeof(unsigned char) * (8)) - (((unsigned char)(-1)) < 0)); +# 607 +static constexpr inline int digits10 = ((((sizeof(unsigned char) * (8)) - (((unsigned char)(-1)) < 0)) * (643L)) / (2136)); +# 610 +static constexpr inline int max_digits10 = 0; +# 612 +static constexpr inline bool is_signed = false; +# 613 +static constexpr inline bool is_integer = true; +# 614 +static constexpr inline bool is_exact = true; +# 615 +static constexpr inline int radix = 2; +# 618 +static constexpr unsigned char epsilon() noexcept { return 0; } +# 621 +static constexpr unsigned char round_error() noexcept { return 0; } +# 623 +static constexpr inline int min_exponent = 0; +# 624 +static constexpr inline int min_exponent10 = 0; +# 625 +static constexpr inline int max_exponent = 0; +# 626 +static constexpr inline int max_exponent10 = 0; +# 628 +static constexpr inline bool has_infinity = false; +# 629 +static constexpr inline bool has_quiet_NaN = false; +# 630 +static constexpr inline bool has_signaling_NaN = false; +# 631 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 633 +static constexpr inline bool has_denorm_loss = false; +# 636 +static constexpr unsigned char infinity() noexcept +# 637 +{ return static_cast< unsigned char>(0); } +# 640 +static constexpr unsigned char quiet_NaN() noexcept +# 641 +{ return static_cast< unsigned char>(0); } +# 644 +static constexpr unsigned char signaling_NaN() noexcept +# 645 +{ return static_cast< unsigned char>(0); } +# 648 +static constexpr unsigned char denorm_min() noexcept +# 649 +{ return static_cast< unsigned char>(0); } +# 651 +static constexpr inline bool is_iec559 = false; +# 652 +static constexpr inline bool is_bounded = true; +# 653 +static constexpr inline bool is_modulo = true; +# 655 +static constexpr inline bool traps = true; +# 656 +static constexpr inline bool tinyness_before = false; +# 657 +static constexpr inline float_round_style round_style = round_toward_zero; +# 659 +}; +# 663 +template<> struct numeric_limits< wchar_t> { +# 665 +static constexpr inline bool is_specialized = true; +# 668 +static constexpr wchar_t min() noexcept { return ((((wchar_t)(-1)) < 0) ? (-((((wchar_t)(-1)) < 0) ? (((((wchar_t)1) << (((sizeof(wchar_t) * (8)) - (((wchar_t)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((wchar_t)0)))) - 1 : ((wchar_t)0)); } +# 671 +static constexpr wchar_t max() noexcept { return ((((wchar_t)(-1)) < 0) ? (((((wchar_t)1) << (((sizeof(wchar_t) * (8)) - (((wchar_t)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((wchar_t)0))); } +# 675 +static constexpr wchar_t lowest() noexcept { return min(); } +# 678 +static constexpr inline int digits = ((sizeof(wchar_t) * (8)) - (((wchar_t)(-1)) < 0)); +# 679 +static constexpr inline int digits10 = ((((sizeof(wchar_t) * (8)) - (((wchar_t)(-1)) < 0)) * (643L)) / (2136)); +# 682 +static constexpr inline int max_digits10 = 0; +# 684 +static constexpr inline bool is_signed = (((wchar_t)(-1)) < 0); +# 685 +static constexpr inline bool is_integer = true; +# 686 +static constexpr inline bool is_exact = true; +# 687 +static constexpr inline int radix = 2; +# 690 +static constexpr wchar_t epsilon() noexcept { return 0; } +# 693 +static constexpr wchar_t round_error() noexcept { return 0; } +# 695 +static constexpr inline int min_exponent = 0; +# 696 +static constexpr inline int min_exponent10 = 0; +# 697 +static constexpr inline int max_exponent = 0; +# 698 +static constexpr inline int max_exponent10 = 0; +# 700 +static constexpr inline bool has_infinity = false; +# 701 +static constexpr inline bool has_quiet_NaN = false; +# 702 +static constexpr inline bool has_signaling_NaN = false; +# 703 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 705 +static constexpr inline bool has_denorm_loss = false; +# 708 +static constexpr wchar_t infinity() noexcept { return ((wchar_t)0); } +# 711 +static constexpr wchar_t quiet_NaN() noexcept { return ((wchar_t)0); } +# 714 +static constexpr wchar_t signaling_NaN() noexcept { return ((wchar_t)0); } +# 717 +static constexpr wchar_t denorm_min() noexcept { return ((wchar_t)0); } +# 719 +static constexpr inline bool is_iec559 = false; +# 720 +static constexpr inline bool is_bounded = true; +# 721 +static constexpr inline bool is_modulo = (!is_signed); +# 723 +static constexpr inline bool traps = true; +# 724 +static constexpr inline bool tinyness_before = false; +# 725 +static constexpr inline float_round_style round_style = round_toward_zero; +# 727 +}; +# 797 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< char16_t> { +# 799 +static constexpr inline bool is_specialized = true; +# 802 +static constexpr char16_t min() noexcept { return ((((char16_t)(-1)) < 0) ? (-((((char16_t)(-1)) < 0) ? (((((char16_t)1) << (((sizeof(char16_t) * (8)) - (((char16_t)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((char16_t)0)))) - 1 : ((char16_t)0)); } +# 805 +static constexpr char16_t max() noexcept { return ((((char16_t)(-1)) < 0) ? (((((char16_t)1) << (((sizeof(char16_t) * (8)) - (((char16_t)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((char16_t)0))); } +# 808 +static constexpr char16_t lowest() noexcept { return min(); } +# 810 +static constexpr inline int digits = ((sizeof(char16_t) * (8)) - (((char16_t)(-1)) < 0)); +# 811 +static constexpr inline int digits10 = ((((sizeof(char16_t) * (8)) - (((char16_t)(-1)) < 0)) * (643L)) / (2136)); +# 812 +static constexpr inline int max_digits10 = 0; +# 813 +static constexpr inline bool is_signed = (((char16_t)(-1)) < 0); +# 814 +static constexpr inline bool is_integer = true; +# 815 +static constexpr inline bool is_exact = true; +# 816 +static constexpr inline int radix = 2; +# 819 +static constexpr char16_t epsilon() noexcept { return 0; } +# 822 +static constexpr char16_t round_error() noexcept { return 0; } +# 824 +static constexpr inline int min_exponent = 0; +# 825 +static constexpr inline int min_exponent10 = 0; +# 826 +static constexpr inline int max_exponent = 0; +# 827 +static constexpr inline int max_exponent10 = 0; +# 829 +static constexpr inline bool has_infinity = false; +# 830 +static constexpr inline bool has_quiet_NaN = false; +# 831 +static constexpr inline bool has_signaling_NaN = false; +# 832 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 833 +static constexpr inline bool has_denorm_loss = false; +# 836 +static constexpr char16_t infinity() noexcept { return ((char16_t)0); } +# 839 +static constexpr char16_t quiet_NaN() noexcept { return ((char16_t)0); } +# 842 +static constexpr char16_t signaling_NaN() noexcept { return ((char16_t)0); } +# 845 +static constexpr char16_t denorm_min() noexcept { return ((char16_t)0); } +# 847 +static constexpr inline bool is_iec559 = false; +# 848 +static constexpr inline bool is_bounded = true; +# 849 +static constexpr inline bool is_modulo = (!is_signed); +# 851 +static constexpr inline bool traps = true; +# 852 +static constexpr inline bool tinyness_before = false; +# 853 +static constexpr inline float_round_style round_style = round_toward_zero; +# 854 +}; +# 858 +template<> struct numeric_limits< char32_t> { +# 860 +static constexpr inline bool is_specialized = true; +# 863 +static constexpr char32_t min() noexcept { return ((((char32_t)(-1)) < (0)) ? (-((((char32_t)(-1)) < (0)) ? (((((char32_t)1) << (((sizeof(char32_t) * (8)) - (((char32_t)(-1)) < (0))) - (1))) - (1)) << 1) + (1) : (~((char32_t)0)))) - (1) : ((char32_t)0)); } +# 866 +static constexpr char32_t max() noexcept { return ((((char32_t)(-1)) < (0)) ? (((((char32_t)1) << (((sizeof(char32_t) * (8)) - (((char32_t)(-1)) < (0))) - (1))) - (1)) << 1) + (1) : (~((char32_t)0))); } +# 869 +static constexpr char32_t lowest() noexcept { return min(); } +# 871 +static constexpr inline int digits = ((sizeof(char32_t) * (8)) - (((char32_t)(-1)) < (0))); +# 872 +static constexpr inline int digits10 = ((((sizeof(char32_t) * (8)) - (((char32_t)(-1)) < (0))) * (643L)) / (2136)); +# 873 +static constexpr inline int max_digits10 = 0; +# 874 +static constexpr inline bool is_signed = (((char32_t)(-1)) < (0)); +# 875 +static constexpr inline bool is_integer = true; +# 876 +static constexpr inline bool is_exact = true; +# 877 +static constexpr inline int radix = 2; +# 880 +static constexpr char32_t epsilon() noexcept { return 0; } +# 883 +static constexpr char32_t round_error() noexcept { return 0; } +# 885 +static constexpr inline int min_exponent = 0; +# 886 +static constexpr inline int min_exponent10 = 0; +# 887 +static constexpr inline int max_exponent = 0; +# 888 +static constexpr inline int max_exponent10 = 0; +# 890 +static constexpr inline bool has_infinity = false; +# 891 +static constexpr inline bool has_quiet_NaN = false; +# 892 +static constexpr inline bool has_signaling_NaN = false; +# 893 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 894 +static constexpr inline bool has_denorm_loss = false; +# 897 +static constexpr char32_t infinity() noexcept { return ((char32_t)0); } +# 900 +static constexpr char32_t quiet_NaN() noexcept { return ((char32_t)0); } +# 903 +static constexpr char32_t signaling_NaN() noexcept { return ((char32_t)0); } +# 906 +static constexpr char32_t denorm_min() noexcept { return ((char32_t)0); } +# 908 +static constexpr inline bool is_iec559 = false; +# 909 +static constexpr inline bool is_bounded = true; +# 910 +static constexpr inline bool is_modulo = (!is_signed); +# 912 +static constexpr inline bool traps = true; +# 913 +static constexpr inline bool tinyness_before = false; +# 914 +static constexpr inline float_round_style round_style = round_toward_zero; +# 915 +}; +# 920 +template<> struct numeric_limits< short> { +# 922 +static constexpr inline bool is_specialized = true; +# 925 +static constexpr short min() noexcept { return (-32767) - 1; } +# 928 +static constexpr short max() noexcept { return 32767; } +# 932 +static constexpr short lowest() noexcept { return min(); } +# 935 +static constexpr inline int digits = ((sizeof(short) * (8)) - (((short)(-1)) < 0)); +# 936 +static constexpr inline int digits10 = ((((sizeof(short) * (8)) - (((short)(-1)) < 0)) * (643L)) / (2136)); +# 938 +static constexpr inline int max_digits10 = 0; +# 940 +static constexpr inline bool is_signed = true; +# 941 +static constexpr inline bool is_integer = true; +# 942 +static constexpr inline bool is_exact = true; +# 943 +static constexpr inline int radix = 2; +# 946 +static constexpr short epsilon() noexcept { return 0; } +# 949 +static constexpr short round_error() noexcept { return 0; } +# 951 +static constexpr inline int min_exponent = 0; +# 952 +static constexpr inline int min_exponent10 = 0; +# 953 +static constexpr inline int max_exponent = 0; +# 954 +static constexpr inline int max_exponent10 = 0; +# 956 +static constexpr inline bool has_infinity = false; +# 957 +static constexpr inline bool has_quiet_NaN = false; +# 958 +static constexpr inline bool has_signaling_NaN = false; +# 959 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 961 +static constexpr inline bool has_denorm_loss = false; +# 964 +static constexpr short infinity() noexcept { return ((short)0); } +# 967 +static constexpr short quiet_NaN() noexcept { return ((short)0); } +# 970 +static constexpr short signaling_NaN() noexcept { return ((short)0); } +# 973 +static constexpr short denorm_min() noexcept { return ((short)0); } +# 975 +static constexpr inline bool is_iec559 = false; +# 976 +static constexpr inline bool is_bounded = true; +# 977 +static constexpr inline bool is_modulo = false; +# 979 +static constexpr inline bool traps = true; +# 980 +static constexpr inline bool tinyness_before = false; +# 981 +static constexpr inline float_round_style round_style = round_toward_zero; +# 983 +}; +# 987 +template<> struct numeric_limits< unsigned short> { +# 989 +static constexpr inline bool is_specialized = true; +# 992 +static constexpr unsigned short min() noexcept { return 0; } +# 995 +static constexpr unsigned short max() noexcept { return ((32767) * 2U) + (1); } +# 999 +static constexpr unsigned short lowest() noexcept { return min(); } +# 1002 +static constexpr inline int digits = ((sizeof(unsigned short) * (8)) - (((unsigned short)(-1)) < 0)); +# 1004 +static constexpr inline int digits10 = ((((sizeof(unsigned short) * (8)) - (((unsigned short)(-1)) < 0)) * (643L)) / (2136)); +# 1007 +static constexpr inline int max_digits10 = 0; +# 1009 +static constexpr inline bool is_signed = false; +# 1010 +static constexpr inline bool is_integer = true; +# 1011 +static constexpr inline bool is_exact = true; +# 1012 +static constexpr inline int radix = 2; +# 1015 +static constexpr unsigned short epsilon() noexcept { return 0; } +# 1018 +static constexpr unsigned short round_error() noexcept { return 0; } +# 1020 +static constexpr inline int min_exponent = 0; +# 1021 +static constexpr inline int min_exponent10 = 0; +# 1022 +static constexpr inline int max_exponent = 0; +# 1023 +static constexpr inline int max_exponent10 = 0; +# 1025 +static constexpr inline bool has_infinity = false; +# 1026 +static constexpr inline bool has_quiet_NaN = false; +# 1027 +static constexpr inline bool has_signaling_NaN = false; +# 1028 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1030 +static constexpr inline bool has_denorm_loss = false; +# 1033 +static constexpr unsigned short infinity() noexcept +# 1034 +{ return static_cast< unsigned short>(0); } +# 1037 +static constexpr unsigned short quiet_NaN() noexcept +# 1038 +{ return static_cast< unsigned short>(0); } +# 1041 +static constexpr unsigned short signaling_NaN() noexcept +# 1042 +{ return static_cast< unsigned short>(0); } +# 1045 +static constexpr unsigned short denorm_min() noexcept +# 1046 +{ return static_cast< unsigned short>(0); } +# 1048 +static constexpr inline bool is_iec559 = false; +# 1049 +static constexpr inline bool is_bounded = true; +# 1050 +static constexpr inline bool is_modulo = true; +# 1052 +static constexpr inline bool traps = true; +# 1053 +static constexpr inline bool tinyness_before = false; +# 1054 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1056 +}; +# 1060 +template<> struct numeric_limits< int> { +# 1062 +static constexpr inline bool is_specialized = true; +# 1065 +static constexpr int min() noexcept { return (-2147483647) - 1; } +# 1068 +static constexpr int max() noexcept { return 2147483647; } +# 1072 +static constexpr int lowest() noexcept { return min(); } +# 1075 +static constexpr inline int digits = ((sizeof(int) * (8)) - (((int)(-1)) < 0)); +# 1076 +static constexpr inline int digits10 = ((((sizeof(int) * (8)) - (((int)(-1)) < 0)) * (643L)) / (2136)); +# 1078 +static constexpr inline int max_digits10 = 0; +# 1080 +static constexpr inline bool is_signed = true; +# 1081 +static constexpr inline bool is_integer = true; +# 1082 +static constexpr inline bool is_exact = true; +# 1083 +static constexpr inline int radix = 2; +# 1086 +static constexpr int epsilon() noexcept { return 0; } +# 1089 +static constexpr int round_error() noexcept { return 0; } +# 1091 +static constexpr inline int min_exponent = 0; +# 1092 +static constexpr inline int min_exponent10 = 0; +# 1093 +static constexpr inline int max_exponent = 0; +# 1094 +static constexpr inline int max_exponent10 = 0; +# 1096 +static constexpr inline bool has_infinity = false; +# 1097 +static constexpr inline bool has_quiet_NaN = false; +# 1098 +static constexpr inline bool has_signaling_NaN = false; +# 1099 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1101 +static constexpr inline bool has_denorm_loss = false; +# 1104 +static constexpr int infinity() noexcept { return static_cast< int>(0); } +# 1107 +static constexpr int quiet_NaN() noexcept { return static_cast< int>(0); } +# 1110 +static constexpr int signaling_NaN() noexcept { return static_cast< int>(0); } +# 1113 +static constexpr int denorm_min() noexcept { return static_cast< int>(0); } +# 1115 +static constexpr inline bool is_iec559 = false; +# 1116 +static constexpr inline bool is_bounded = true; +# 1117 +static constexpr inline bool is_modulo = false; +# 1119 +static constexpr inline bool traps = true; +# 1120 +static constexpr inline bool tinyness_before = false; +# 1121 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1123 +}; +# 1127 +template<> struct numeric_limits< unsigned> { +# 1129 +static constexpr inline bool is_specialized = true; +# 1132 +static constexpr unsigned min() noexcept { return 0; } +# 1135 +static constexpr unsigned max() noexcept { return ((2147483647) * 2U) + (1); } +# 1139 +static constexpr unsigned lowest() noexcept { return min(); } +# 1142 +static constexpr inline int digits = ((sizeof(unsigned) * (8)) - (((unsigned)(-1)) < (0))); +# 1144 +static constexpr inline int digits10 = ((((sizeof(unsigned) * (8)) - (((unsigned)(-1)) < (0))) * (643L)) / (2136)); +# 1147 +static constexpr inline int max_digits10 = 0; +# 1149 +static constexpr inline bool is_signed = false; +# 1150 +static constexpr inline bool is_integer = true; +# 1151 +static constexpr inline bool is_exact = true; +# 1152 +static constexpr inline int radix = 2; +# 1155 +static constexpr unsigned epsilon() noexcept { return 0; } +# 1158 +static constexpr unsigned round_error() noexcept { return 0; } +# 1160 +static constexpr inline int min_exponent = 0; +# 1161 +static constexpr inline int min_exponent10 = 0; +# 1162 +static constexpr inline int max_exponent = 0; +# 1163 +static constexpr inline int max_exponent10 = 0; +# 1165 +static constexpr inline bool has_infinity = false; +# 1166 +static constexpr inline bool has_quiet_NaN = false; +# 1167 +static constexpr inline bool has_signaling_NaN = false; +# 1168 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1170 +static constexpr inline bool has_denorm_loss = false; +# 1173 +static constexpr unsigned infinity() noexcept { return static_cast< unsigned>(0); } +# 1176 +static constexpr unsigned quiet_NaN() noexcept +# 1177 +{ return static_cast< unsigned>(0); } +# 1180 +static constexpr unsigned signaling_NaN() noexcept +# 1181 +{ return static_cast< unsigned>(0); } +# 1184 +static constexpr unsigned denorm_min() noexcept +# 1185 +{ return static_cast< unsigned>(0); } +# 1187 +static constexpr inline bool is_iec559 = false; +# 1188 +static constexpr inline bool is_bounded = true; +# 1189 +static constexpr inline bool is_modulo = true; +# 1191 +static constexpr inline bool traps = true; +# 1192 +static constexpr inline bool tinyness_before = false; +# 1193 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1195 +}; +# 1199 +template<> struct numeric_limits< long> { +# 1201 +static constexpr inline bool is_specialized = true; +# 1204 +static constexpr long min() noexcept { return (-9223372036854775807L) - (1); } +# 1207 +static constexpr long max() noexcept { return 9223372036854775807L; } +# 1211 +static constexpr long lowest() noexcept { return min(); } +# 1214 +static constexpr inline int digits = ((sizeof(long) * (8)) - (((long)(-1)) < (0))); +# 1215 +static constexpr inline int digits10 = ((((sizeof(long) * (8)) - (((long)(-1)) < (0))) * (643L)) / (2136)); +# 1217 +static constexpr inline int max_digits10 = 0; +# 1219 +static constexpr inline bool is_signed = true; +# 1220 +static constexpr inline bool is_integer = true; +# 1221 +static constexpr inline bool is_exact = true; +# 1222 +static constexpr inline int radix = 2; +# 1225 +static constexpr long epsilon() noexcept { return 0; } +# 1228 +static constexpr long round_error() noexcept { return 0; } +# 1230 +static constexpr inline int min_exponent = 0; +# 1231 +static constexpr inline int min_exponent10 = 0; +# 1232 +static constexpr inline int max_exponent = 0; +# 1233 +static constexpr inline int max_exponent10 = 0; +# 1235 +static constexpr inline bool has_infinity = false; +# 1236 +static constexpr inline bool has_quiet_NaN = false; +# 1237 +static constexpr inline bool has_signaling_NaN = false; +# 1238 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1240 +static constexpr inline bool has_denorm_loss = false; +# 1243 +static constexpr long infinity() noexcept { return static_cast< long>(0); } +# 1246 +static constexpr long quiet_NaN() noexcept { return static_cast< long>(0); } +# 1249 +static constexpr long signaling_NaN() noexcept { return static_cast< long>(0); } +# 1252 +static constexpr long denorm_min() noexcept { return static_cast< long>(0); } +# 1254 +static constexpr inline bool is_iec559 = false; +# 1255 +static constexpr inline bool is_bounded = true; +# 1256 +static constexpr inline bool is_modulo = false; +# 1258 +static constexpr inline bool traps = true; +# 1259 +static constexpr inline bool tinyness_before = false; +# 1260 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1262 +}; +# 1266 +template<> struct numeric_limits< unsigned long> { +# 1268 +static constexpr inline bool is_specialized = true; +# 1271 +static constexpr unsigned long min() noexcept { return 0; } +# 1274 +static constexpr unsigned long max() noexcept { return ((9223372036854775807L) * 2UL) + (1); } +# 1278 +static constexpr unsigned long lowest() noexcept { return min(); } +# 1281 +static constexpr inline int digits = ((sizeof(unsigned long) * (8)) - (((unsigned long)(-1)) < (0))); +# 1283 +static constexpr inline int digits10 = ((((sizeof(unsigned long) * (8)) - (((unsigned long)(-1)) < (0))) * (643L)) / (2136)); +# 1286 +static constexpr inline int max_digits10 = 0; +# 1288 +static constexpr inline bool is_signed = false; +# 1289 +static constexpr inline bool is_integer = true; +# 1290 +static constexpr inline bool is_exact = true; +# 1291 +static constexpr inline int radix = 2; +# 1294 +static constexpr unsigned long epsilon() noexcept { return 0; } +# 1297 +static constexpr unsigned long round_error() noexcept { return 0; } +# 1299 +static constexpr inline int min_exponent = 0; +# 1300 +static constexpr inline int min_exponent10 = 0; +# 1301 +static constexpr inline int max_exponent = 0; +# 1302 +static constexpr inline int max_exponent10 = 0; +# 1304 +static constexpr inline bool has_infinity = false; +# 1305 +static constexpr inline bool has_quiet_NaN = false; +# 1306 +static constexpr inline bool has_signaling_NaN = false; +# 1307 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1309 +static constexpr inline bool has_denorm_loss = false; +# 1312 +static constexpr unsigned long infinity() noexcept +# 1313 +{ return static_cast< unsigned long>(0); } +# 1316 +static constexpr unsigned long quiet_NaN() noexcept +# 1317 +{ return static_cast< unsigned long>(0); } +# 1320 +static constexpr unsigned long signaling_NaN() noexcept +# 1321 +{ return static_cast< unsigned long>(0); } +# 1324 +static constexpr unsigned long denorm_min() noexcept +# 1325 +{ return static_cast< unsigned long>(0); } +# 1327 +static constexpr inline bool is_iec559 = false; +# 1328 +static constexpr inline bool is_bounded = true; +# 1329 +static constexpr inline bool is_modulo = true; +# 1331 +static constexpr inline bool traps = true; +# 1332 +static constexpr inline bool tinyness_before = false; +# 1333 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1335 +}; +# 1339 +template<> struct numeric_limits< long long> { +# 1341 +static constexpr inline bool is_specialized = true; +# 1344 +static constexpr long long min() noexcept { return (-9223372036854775807LL) - (1); } +# 1347 +static constexpr long long max() noexcept { return 9223372036854775807LL; } +# 1351 +static constexpr long long lowest() noexcept { return min(); } +# 1354 +static constexpr inline int digits = ((sizeof(long long) * (8)) - (((long long)(-1)) < (0))); +# 1356 +static constexpr inline int digits10 = ((((sizeof(long long) * (8)) - (((long long)(-1)) < (0))) * (643L)) / (2136)); +# 1359 +static constexpr inline int max_digits10 = 0; +# 1361 +static constexpr inline bool is_signed = true; +# 1362 +static constexpr inline bool is_integer = true; +# 1363 +static constexpr inline bool is_exact = true; +# 1364 +static constexpr inline int radix = 2; +# 1367 +static constexpr long long epsilon() noexcept { return 0; } +# 1370 +static constexpr long long round_error() noexcept { return 0; } +# 1372 +static constexpr inline int min_exponent = 0; +# 1373 +static constexpr inline int min_exponent10 = 0; +# 1374 +static constexpr inline int max_exponent = 0; +# 1375 +static constexpr inline int max_exponent10 = 0; +# 1377 +static constexpr inline bool has_infinity = false; +# 1378 +static constexpr inline bool has_quiet_NaN = false; +# 1379 +static constexpr inline bool has_signaling_NaN = false; +# 1380 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1382 +static constexpr inline bool has_denorm_loss = false; +# 1385 +static constexpr long long infinity() noexcept { return static_cast< long long>(0); } +# 1388 +static constexpr long long quiet_NaN() noexcept { return static_cast< long long>(0); } +# 1391 +static constexpr long long signaling_NaN() noexcept +# 1392 +{ return static_cast< long long>(0); } +# 1395 +static constexpr long long denorm_min() noexcept { return static_cast< long long>(0); } +# 1397 +static constexpr inline bool is_iec559 = false; +# 1398 +static constexpr inline bool is_bounded = true; +# 1399 +static constexpr inline bool is_modulo = false; +# 1401 +static constexpr inline bool traps = true; +# 1402 +static constexpr inline bool tinyness_before = false; +# 1403 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1405 +}; +# 1409 +template<> struct numeric_limits< unsigned long long> { +# 1411 +static constexpr inline bool is_specialized = true; +# 1414 +static constexpr unsigned long long min() noexcept { return 0; } +# 1417 +static constexpr unsigned long long max() noexcept { return ((9223372036854775807LL) * 2ULL) + (1); } +# 1421 +static constexpr unsigned long long lowest() noexcept { return min(); } +# 1424 +static constexpr inline int digits = ((sizeof(unsigned long long) * (8)) - (((unsigned long long)(-1)) < (0))); +# 1426 +static constexpr inline int digits10 = ((((sizeof(unsigned long long) * (8)) - (((unsigned long long)(-1)) < (0))) * (643L)) / (2136)); +# 1429 +static constexpr inline int max_digits10 = 0; +# 1431 +static constexpr inline bool is_signed = false; +# 1432 +static constexpr inline bool is_integer = true; +# 1433 +static constexpr inline bool is_exact = true; +# 1434 +static constexpr inline int radix = 2; +# 1437 +static constexpr unsigned long long epsilon() noexcept { return 0; } +# 1440 +static constexpr unsigned long long round_error() noexcept { return 0; } +# 1442 +static constexpr inline int min_exponent = 0; +# 1443 +static constexpr inline int min_exponent10 = 0; +# 1444 +static constexpr inline int max_exponent = 0; +# 1445 +static constexpr inline int max_exponent10 = 0; +# 1447 +static constexpr inline bool has_infinity = false; +# 1448 +static constexpr inline bool has_quiet_NaN = false; +# 1449 +static constexpr inline bool has_signaling_NaN = false; +# 1450 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1452 +static constexpr inline bool has_denorm_loss = false; +# 1455 +static constexpr unsigned long long infinity() noexcept +# 1456 +{ return static_cast< unsigned long long>(0); } +# 1459 +static constexpr unsigned long long quiet_NaN() noexcept +# 1460 +{ return static_cast< unsigned long long>(0); } +# 1463 +static constexpr unsigned long long signaling_NaN() noexcept +# 1464 +{ return static_cast< unsigned long long>(0); } +# 1467 +static constexpr unsigned long long denorm_min() noexcept +# 1468 +{ return static_cast< unsigned long long>(0); } +# 1470 +static constexpr inline bool is_iec559 = false; +# 1471 +static constexpr inline bool is_bounded = true; +# 1472 +static constexpr inline bool is_modulo = true; +# 1474 +static constexpr inline bool traps = true; +# 1475 +static constexpr inline bool tinyness_before = false; +# 1476 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1478 +}; +# 1637 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< __int128> { static constexpr inline bool is_specialized = true; static constexpr __int128 min() noexcept { return ((((__int128)(-1)) < (0)) ? (-((((__int128)(-1)) < (0)) ? (((((__int128)1) << ((128 - (((__int128)(-1)) < (0))) - 1)) - (1)) << 1) + (1) : (~((__int128)0)))) - (1) : ((__int128)0)); } static constexpr __int128 max() noexcept { return ((((__int128)(-1)) < (0)) ? (((((__int128)1) << ((128 - (((__int128)(-1)) < (0))) - 1)) - (1)) << 1) + (1) : (~((__int128)0))); } static constexpr inline int digits = (128 - 1); static constexpr inline int digits10 = (((128 - 1) * 643L) / (2136)); static constexpr inline bool is_signed = true; static constexpr inline bool is_integer = true; static constexpr inline bool is_exact = true; static constexpr inline int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr inline int max_digits10 = 0; static constexpr inline int min_exponent = 0; static constexpr inline int min_exponent10 = 0; static constexpr inline int max_exponent = 0; static constexpr inline int max_exponent10 = 0; static constexpr inline bool has_infinity = false; static constexpr inline bool has_quiet_NaN = false; static constexpr inline bool has_signaling_NaN = false; static constexpr inline float_denorm_style has_denorm = denorm_absent; static constexpr inline bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast< __int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast< __int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast< __int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast< __int128>(0); } static constexpr inline bool is_iec559 = false; static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = false; static constexpr inline bool traps = true; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits< unsigned __int128> { static constexpr inline bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return ((((unsigned __int128)(-1)) < (0)) ? (((((unsigned __int128)1) << ((128 - (((unsigned __int128)(-1)) < (0))) - 1)) - (1)) << 1) + (1) : (~((unsigned __int128)0))); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr inline int max_digits10 = 0; static constexpr inline int digits = 128; static constexpr inline int digits10 = (((128) * 643L) / (2136)); static constexpr inline bool is_signed = false; static constexpr inline bool is_integer = true; static constexpr inline bool is_exact = true; static constexpr inline int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr inline int min_exponent = 0; static constexpr inline int min_exponent10 = 0; static constexpr inline int max_exponent = 0; static constexpr inline int max_exponent10 = 0; static constexpr inline bool has_infinity = false; static constexpr inline bool has_quiet_NaN = false; static constexpr inline bool has_signaling_NaN = false; static constexpr inline float_denorm_style has_denorm = denorm_absent; static constexpr inline bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast< unsigned __int128>(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast< unsigned __int128>(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast< unsigned __int128>(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast< unsigned __int128>(0); } static constexpr inline bool is_iec559 = false; static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = true; static constexpr inline bool traps = true; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_toward_zero; }; +# 1670 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< float> { +# 1672 +static constexpr inline bool is_specialized = true; +# 1675 +static constexpr float min() noexcept { return (1.1754944E-38F); } +# 1678 +static constexpr float max() noexcept { return (3.4028235E38F); } +# 1682 +static constexpr float lowest() noexcept { return -(3.4028235E38F); } +# 1685 +static constexpr inline int digits = 24; +# 1686 +static constexpr inline int digits10 = 6; +# 1688 +static constexpr inline int max_digits10 = ((2) + (((24) * 643L) / (2136))); +# 1691 +static constexpr inline bool is_signed = true; +# 1692 +static constexpr inline bool is_integer = false; +# 1693 +static constexpr inline bool is_exact = false; +# 1694 +static constexpr inline int radix = 2; +# 1697 +static constexpr float epsilon() noexcept { return (1.1920929E-7F); } +# 1700 +static constexpr float round_error() noexcept { return (0.5F); } +# 1702 +static constexpr inline int min_exponent = (-125); +# 1703 +static constexpr inline int min_exponent10 = (-37); +# 1704 +static constexpr inline int max_exponent = 128; +# 1705 +static constexpr inline int max_exponent10 = 38; +# 1707 +static constexpr inline bool has_infinity = (1); +# 1708 +static constexpr inline bool has_quiet_NaN = (1); +# 1709 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1710 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1712 +static constexpr inline bool has_denorm_loss = false; +# 1716 +static constexpr float infinity() noexcept { return __builtin_huge_valf(); } +# 1719 +static constexpr float quiet_NaN() noexcept { return __builtin_nanf(""); } +# 1722 +static constexpr float signaling_NaN() noexcept { return __builtin_nansf(""); } +# 1725 +static constexpr float denorm_min() noexcept { return (1.4E-45F); } +# 1727 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1729 +static constexpr inline bool is_bounded = true; +# 1730 +static constexpr inline bool is_modulo = false; +# 1732 +static constexpr inline bool traps = false; +# 1733 +static constexpr inline bool tinyness_before = false; +# 1735 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1737 +}; +# 1745 +template<> struct numeric_limits< double> { +# 1747 +static constexpr inline bool is_specialized = true; +# 1750 +static constexpr double min() noexcept { return (double)(2.2250738585072013831E-308L); } +# 1753 +static constexpr double max() noexcept { return (double)(1.7976931348623157081E308L); } +# 1757 +static constexpr double lowest() noexcept { return -((double)(1.7976931348623157081E308L)); } +# 1760 +static constexpr inline int digits = 53; +# 1761 +static constexpr inline int digits10 = 15; +# 1763 +static constexpr inline int max_digits10 = ((2) + (((53) * 643L) / (2136))); +# 1766 +static constexpr inline bool is_signed = true; +# 1767 +static constexpr inline bool is_integer = false; +# 1768 +static constexpr inline bool is_exact = false; +# 1769 +static constexpr inline int radix = 2; +# 1772 +static constexpr double epsilon() noexcept { return (double)(2.2204460492503130808E-16L); } +# 1775 +static constexpr double round_error() noexcept { return (0.5); } +# 1777 +static constexpr inline int min_exponent = (-1021); +# 1778 +static constexpr inline int min_exponent10 = (-307); +# 1779 +static constexpr inline int max_exponent = 1024; +# 1780 +static constexpr inline int max_exponent10 = 308; +# 1782 +static constexpr inline bool has_infinity = (1); +# 1783 +static constexpr inline bool has_quiet_NaN = (1); +# 1784 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1785 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1787 +static constexpr inline bool has_denorm_loss = false; +# 1791 +static constexpr double infinity() noexcept { return __builtin_huge_val(); } +# 1794 +static constexpr double quiet_NaN() noexcept { return __builtin_nan(""); } +# 1797 +static constexpr double signaling_NaN() noexcept { return __builtin_nans(""); } +# 1800 +static constexpr double denorm_min() noexcept { return (double)(4.940656458412465442E-324L); } +# 1802 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1804 +static constexpr inline bool is_bounded = true; +# 1805 +static constexpr inline bool is_modulo = false; +# 1807 +static constexpr inline bool traps = false; +# 1808 +static constexpr inline bool tinyness_before = false; +# 1810 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1812 +}; +# 1820 +template<> struct numeric_limits< long double> { +# 1822 +static constexpr inline bool is_specialized = true; +# 1825 +static constexpr long double min() noexcept { return (3.3621031431120935063E-4932L); } +# 1828 +static constexpr long double max() noexcept { return (1.189731495357231765E4932L); } +# 1832 +static constexpr long double lowest() noexcept { return -(1.189731495357231765E4932L); } +# 1835 +static constexpr inline int digits = 64; +# 1836 +static constexpr inline int digits10 = 18; +# 1838 +static constexpr inline int max_digits10 = ((2) + (((64) * 643L) / (2136))); +# 1841 +static constexpr inline bool is_signed = true; +# 1842 +static constexpr inline bool is_integer = false; +# 1843 +static constexpr inline bool is_exact = false; +# 1844 +static constexpr inline int radix = 2; +# 1847 +static constexpr long double epsilon() noexcept { return (1.084202172485504434E-19L); } +# 1850 +static constexpr long double round_error() noexcept { return (0.5L); } +# 1852 +static constexpr inline int min_exponent = (-16381); +# 1853 +static constexpr inline int min_exponent10 = (-4931); +# 1854 +static constexpr inline int max_exponent = 16384; +# 1855 +static constexpr inline int max_exponent10 = 4932; +# 1857 +static constexpr inline bool has_infinity = (1); +# 1858 +static constexpr inline bool has_quiet_NaN = (1); +# 1859 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1860 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1862 +static constexpr inline bool has_denorm_loss = false; +# 1866 +static constexpr long double infinity() noexcept { return __builtin_huge_vall(); } +# 1869 +static constexpr long double quiet_NaN() noexcept { return __builtin_nanl(""); } +# 1872 +static constexpr long double signaling_NaN() noexcept { return __builtin_nansl(""); } +# 1875 +static constexpr long double denorm_min() noexcept { return (3.6E-4951L); } +# 1877 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1879 +static constexpr inline bool is_bounded = true; +# 1880 +static constexpr inline bool is_modulo = false; +# 1882 +static constexpr inline bool traps = false; +# 1883 +static constexpr inline bool tinyness_before = false; +# 1885 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1887 +}; +# 1989 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< _Float32> { static constexpr inline bool is_specialized = true; static constexpr _Float32 min() noexcept { return (1.1754944E-38f32); } static constexpr _Float32 max() noexcept { return (3.4028235E38f32); } static constexpr _Float32 lowest() noexcept { return -(3.4028235E38f32); } static constexpr inline int digits = 24; static constexpr inline int digits10 = 6; static constexpr inline int max_digits10 = ((2) + (((24) * 643L) / (2136))); static constexpr inline bool is_signed = true; static constexpr inline bool is_integer = false; static constexpr inline bool is_exact = false; static constexpr inline int radix = 2; static constexpr _Float32 epsilon() noexcept { return (1.1920929E-7f32); } static constexpr _Float32 round_error() noexcept { return (0.5f32); } static constexpr inline int min_exponent = (-125); static constexpr inline int min_exponent10 = (-37); static constexpr inline int max_exponent = 128; static constexpr inline int max_exponent10 = 38; static constexpr inline bool has_infinity = (1); static constexpr inline bool has_quiet_NaN = (1); static constexpr inline bool has_signaling_NaN = has_quiet_NaN; static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); static constexpr inline bool has_denorm_loss = false; static constexpr _Float32 infinity() noexcept { return __builtin_huge_valf32(); } static constexpr _Float32 quiet_NaN() noexcept { return __builtin_nanf32(""); } static constexpr _Float32 signaling_NaN() noexcept { return __builtin_nansf32(""); } static constexpr _Float32 denorm_min() noexcept { return (1.4E-45f32); } static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = false; static constexpr inline bool traps = false; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_to_nearest; }; +# 1992 +template<> struct numeric_limits< _Float64> { static constexpr inline bool is_specialized = true; static constexpr _Float64 min() noexcept { return (2.2250738585072014E-308f64); } static constexpr _Float64 max() noexcept { return (1.7976931348623157E308f64); } static constexpr _Float64 lowest() noexcept { return -(1.7976931348623157E308f64); } static constexpr inline int digits = 53; static constexpr inline int digits10 = 15; static constexpr inline int max_digits10 = ((2) + (((53) * 643L) / (2136))); static constexpr inline bool is_signed = true; static constexpr inline bool is_integer = false; static constexpr inline bool is_exact = false; static constexpr inline int radix = 2; static constexpr _Float64 epsilon() noexcept { return (2.220446049250313E-16f64); } static constexpr _Float64 round_error() noexcept { return (0.5f64); } static constexpr inline int min_exponent = (-1021); static constexpr inline int min_exponent10 = (-307); static constexpr inline int max_exponent = 1024; static constexpr inline int max_exponent10 = 308; static constexpr inline bool has_infinity = (1); static constexpr inline bool has_quiet_NaN = (1); static constexpr inline bool has_signaling_NaN = has_quiet_NaN; static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); static constexpr inline bool has_denorm_loss = false; static constexpr _Float64 infinity() noexcept { return __builtin_huge_valf64(); } static constexpr _Float64 quiet_NaN() noexcept { return __builtin_nanf64(""); } static constexpr _Float64 signaling_NaN() noexcept { return __builtin_nansf64(""); } static constexpr _Float64 denorm_min() noexcept { return (4.9E-324f64); } static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = false; static constexpr inline bool traps = false; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_to_nearest; }; +# 1995 +template<> struct numeric_limits< _Float128> { static constexpr inline bool is_specialized = true; static constexpr _Float128 min() noexcept { return (3.3621031431120935062626778173217526E-4932f128); } static constexpr _Float128 max() noexcept { return (1.189731495357231765085759326628007E4932f128); } static constexpr _Float128 lowest() noexcept { return -(1.189731495357231765085759326628007E4932f128); } static constexpr inline int digits = 113; static constexpr inline int digits10 = 33; static constexpr inline int max_digits10 = ((2) + (((113) * 643L) / (2136))); static constexpr inline bool is_signed = true; static constexpr inline bool is_integer = false; static constexpr inline bool is_exact = false; static constexpr inline int radix = 2; static constexpr _Float128 epsilon() noexcept { return (1.9259299443872358530559779425849273E-34f128); } static constexpr _Float128 round_error() noexcept { return (0.5f128); } static constexpr inline int min_exponent = (-16381); static constexpr inline int min_exponent10 = (-4931); static constexpr inline int max_exponent = 16384; static constexpr inline int max_exponent10 = 4932; static constexpr inline bool has_infinity = (1); static constexpr inline bool has_quiet_NaN = (1); static constexpr inline bool has_signaling_NaN = has_quiet_NaN; static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); static constexpr inline bool has_denorm_loss = false; static constexpr _Float128 infinity() noexcept { return __builtin_huge_valf128(); } static constexpr _Float128 quiet_NaN() noexcept { return __builtin_nanf128(""); } static constexpr _Float128 signaling_NaN() noexcept { return __builtin_nansf128(""); } static constexpr _Float128 denorm_min() noexcept { return (6.5E-4966f128); } static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = false; static constexpr inline bool traps = false; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_to_nearest; }; +# 2089 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< __float128> { +# 2091 +static constexpr inline bool is_specialized = true; +# 2094 +static constexpr __float128 min() noexcept +# 2095 +{ +# 2100 +return __extension__ (3.3621031431120935062626778173217526E-4932Q); +# 2102 +} +# 2105 +static constexpr __float128 max() noexcept +# 2106 +{ +# 2114 +return __extension__ (1.189731495357231765085759326628007E4932Q); +# 2116 +} +# 2119 +static constexpr __float128 lowest() noexcept +# 2120 +{ return -max(); } +# 2122 +static constexpr inline int digits = 113; +# 2123 +static constexpr inline int digits10 = 33; +# 2125 +static constexpr inline int max_digits10 = 35; +# 2127 +static constexpr inline bool is_signed = true; +# 2128 +static constexpr inline bool is_integer = false; +# 2129 +static constexpr inline bool is_exact = false; +# 2130 +static constexpr inline int radix = 2; +# 2133 +static constexpr __float128 epsilon() noexcept +# 2134 +{ return (double)(1.925929944387236E-34); } +# 2137 +static constexpr __float128 round_error() noexcept { return (0.5); } +# 2139 +static constexpr inline int min_exponent = (-16381); +# 2140 +static constexpr inline int min_exponent10 = (-4931); +# 2141 +static constexpr inline int max_exponent = 16384; +# 2142 +static constexpr inline int max_exponent10 = 4932; +# 2144 +static constexpr inline bool has_infinity = (1); +# 2145 +static constexpr inline bool has_quiet_NaN = (1); +# 2148 +static constexpr inline bool has_signaling_NaN = true; +# 2152 +static constexpr inline float_denorm_style has_denorm = denorm_present; +# 2154 +static constexpr inline bool has_denorm_loss = false; +# 2157 +static constexpr __float128 infinity() noexcept +# 2158 +{ return __builtin_huge_val(); } +# 2161 +static constexpr __float128 quiet_NaN() noexcept +# 2162 +{ return __builtin_nan(""); } +# 2165 +static constexpr __float128 signaling_NaN() noexcept +# 2166 +{ +# 2168 +return __builtin_nansq(""); +# 2174 +} +# 2177 +static constexpr __float128 denorm_min() noexcept +# 2178 +{ +# 2183 +return __extension__ (6.5E-4966Q); +# 2185 +} +# 2187 +static constexpr inline bool is_iec559 = has_signaling_NaN; +# 2188 +static constexpr inline bool is_bounded = true; +# 2189 +static constexpr inline bool is_modulo = false; +# 2191 +static constexpr inline bool traps = false; +# 2192 +static constexpr inline bool tinyness_before = false; +# 2193 +static constexpr inline float_round_style round_style = round_to_nearest; +# 2218 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +}; +# 2223 +} +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +namespace __detail { +# 55 +template< class _Tp> +# 56 +struct __floating_point_constant { +# 58 +static const _Tp __value; +# 59 +}; +# 63 +template< class _Tp> +# 64 +struct __numeric_constants { +# 67 +static _Tp __pi() throw() +# 68 +{ return static_cast< _Tp>((3.1415926535897932385L)); } +# 70 +static _Tp __pi_2() throw() +# 71 +{ return static_cast< _Tp>((1.5707963267948966193L)); } +# 73 +static _Tp __pi_3() throw() +# 74 +{ return static_cast< _Tp>((1.0471975511965977461L)); } +# 76 +static _Tp __pi_4() throw() +# 77 +{ return static_cast< _Tp>((0.78539816339744830963L)); } +# 79 +static _Tp __1_pi() throw() +# 80 +{ return static_cast< _Tp>((0.31830988618379067154L)); } +# 82 +static _Tp __2_sqrtpi() throw() +# 83 +{ return static_cast< _Tp>((1.1283791670955125738L)); } +# 85 +static _Tp __sqrt2() throw() +# 86 +{ return static_cast< _Tp>((1.4142135623730950488L)); } +# 88 +static _Tp __sqrt3() throw() +# 89 +{ return static_cast< _Tp>((1.7320508075688772936L)); } +# 91 +static _Tp __sqrtpio2() throw() +# 92 +{ return static_cast< _Tp>((1.2533141373155002512L)); } +# 94 +static _Tp __sqrt1_2() throw() +# 95 +{ return static_cast< _Tp>((0.7071067811865475244L)); } +# 97 +static _Tp __lnpi() throw() +# 98 +{ return static_cast< _Tp>((1.1447298858494001742L)); } +# 100 +static _Tp __gamma_e() throw() +# 101 +{ return static_cast< _Tp>((0.5772156649015328606L)); } +# 103 +static _Tp __euler() throw() +# 104 +{ return static_cast< _Tp>((2.7182818284590452354L)); } +# 105 +}; +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +template< class _Tp> inline bool +# 115 +__isnan(_Tp __x) +# 116 +{ return std::isnan(__x); } +# 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +} +# 139 +} +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +namespace __detail { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 78 +__bernoulli_series(unsigned __n) +# 79 +{ +# 81 +static const _Tp __num[28] = {((_Tp)1UL), ((-((_Tp)1UL)) / ((_Tp)2UL)), (((_Tp)1UL) / ((_Tp)6UL)), ((_Tp)0UL), ((-((_Tp)1UL)) / ((_Tp)30UL)), ((_Tp)0UL), (((_Tp)1UL) / ((_Tp)42UL)), ((_Tp)0UL), ((-((_Tp)1UL)) / ((_Tp)30UL)), ((_Tp)0UL), (((_Tp)5UL) / ((_Tp)66UL)), ((_Tp)0UL), ((-((_Tp)691UL)) / ((_Tp)2730UL)), ((_Tp)0UL), (((_Tp)7UL) / ((_Tp)6UL)), ((_Tp)0UL), ((-((_Tp)3617UL)) / ((_Tp)510UL)), ((_Tp)0UL), (((_Tp)43867UL) / ((_Tp)798UL)), ((_Tp)0UL), ((-((_Tp)174611)) / ((_Tp)330UL)), ((_Tp)0UL), (((_Tp)854513UL) / ((_Tp)138UL)), ((_Tp)0UL), ((-((_Tp)236364091UL)) / ((_Tp)2730UL)), ((_Tp)0UL), (((_Tp)8553103UL) / ((_Tp)6UL)), ((_Tp)0UL)}; +# 98 +if (__n == (0)) { +# 99 +return (_Tp)1; } +# 101 +if (__n == (1)) { +# 102 +return (-((_Tp)1)) / ((_Tp)2); } +# 105 +if ((__n % (2)) == (1)) { +# 106 +return (_Tp)0; } +# 109 +if (__n < (28)) { +# 110 +return __num[__n]; } +# 113 +_Tp __fact = ((_Tp)1); +# 114 +if (((__n / (2)) % (2)) == (0)) { +# 115 +__fact *= ((_Tp)(-1)); } +# 116 +for (unsigned __k = (1); __k <= __n; ++__k) { +# 117 +__fact *= (__k / (((_Tp)2) * __numeric_constants< _Tp> ::__pi())); } +# 118 +__fact *= ((_Tp)2); +# 120 +_Tp __sum = ((_Tp)0); +# 121 +for (unsigned __i = (1); __i < (1000); ++__i) +# 122 +{ +# 123 +_Tp __term = std::pow((_Tp)__i, -((_Tp)__n)); +# 124 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) { +# 125 +break; } +# 126 +__sum += __term; +# 127 +} +# 129 +return __fact * __sum; +# 130 +} +# 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> inline _Tp +# 141 +__bernoulli(int __n) +# 142 +{ return __bernoulli_series< _Tp> (__n); } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 155 +__log_gamma_bernoulli(_Tp __x) +# 156 +{ +# 157 +_Tp __lg = (((__x - ((_Tp)(0.5L))) * std::log(__x)) - __x) + (((_Tp)(0.5L)) * std::log(((_Tp)2) * __numeric_constants< _Tp> ::__pi())); +# 161 +const _Tp __xx = __x * __x; +# 162 +_Tp __help = ((_Tp)1) / __x; +# 163 +for (unsigned __i = (1); __i < (20); ++__i) +# 164 +{ +# 165 +const _Tp __2i = (_Tp)((2) * __i); +# 166 +__help /= ((__2i * (__2i - ((_Tp)1))) * __xx); +# 167 +__lg += (__bernoulli< _Tp> ((2) * __i) * __help); +# 168 +} +# 170 +return __lg; +# 171 +} +# 181 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 183 +__log_gamma_lanczos(_Tp __x) +# 184 +{ +# 185 +const _Tp __xm1 = __x - ((_Tp)1); +# 187 +static const _Tp __lanczos_cheb_7[9] = {((_Tp)(0.99999999999980993226L)), ((_Tp)(676.52036812188509857L)), ((_Tp)(-(1259.1392167224028704L))), ((_Tp)(771.32342877765307887L)), ((_Tp)(-(176.61502916214059906L))), ((_Tp)(12.507343278686904814L)), ((_Tp)(-(0.1385710952657201169L))), ((_Tp)(9.9843695780195708595E-6L)), ((_Tp)(1.5056327351493115584E-7L))}; +# 199 +static const _Tp __LOGROOT2PI = ((_Tp)(0.9189385332046727418L)); +# 202 +_Tp __sum = (__lanczos_cheb_7[0]); +# 203 +for (unsigned __k = (1); __k < (9); ++__k) { +# 204 +__sum += ((__lanczos_cheb_7[__k]) / (__xm1 + __k)); } +# 206 +const _Tp __term1 = (__xm1 + ((_Tp)(0.5L))) * std::log((__xm1 + ((_Tp)(7.5L))) / __numeric_constants< _Tp> ::__euler()); +# 209 +const _Tp __term2 = __LOGROOT2PI + std::log(__sum); +# 210 +const _Tp __result = __term1 + (__term2 - ((_Tp)7)); +# 212 +return __result; +# 213 +} +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 227 +__log_gamma(_Tp __x) +# 228 +{ +# 229 +if (__x > ((_Tp)(0.5L))) { +# 230 +return __log_gamma_lanczos(__x); } else +# 232 +{ +# 233 +const _Tp __sin_fact = std::abs(std::sin(__numeric_constants< _Tp> ::__pi() * __x)); +# 235 +if (__sin_fact == ((_Tp)0)) { +# 236 +std::__throw_domain_error("Argument is nonpositive integer in __log_gamma"); } +# 238 +return (__numeric_constants< _Tp> ::__lnpi() - std::log(__sin_fact)) - __log_gamma_lanczos(((_Tp)1) - __x); +# 241 +} +# 242 +} +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 254 +__log_gamma_sign(_Tp __x) +# 255 +{ +# 256 +if (__x > ((_Tp)0)) { +# 257 +return (_Tp)1; } else +# 259 +{ +# 260 +const _Tp __sin_fact = std::sin(__numeric_constants< _Tp> ::__pi() * __x); +# 262 +if (__sin_fact > ((_Tp)0)) { +# 263 +return 1; } else { +# 264 +if (__sin_fact < ((_Tp)0)) { +# 265 +return -((_Tp)1); } else { +# 267 +return (_Tp)0; } } +# 268 +} +# 269 +} +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 285 +__log_bincoef(unsigned __n, unsigned __k) +# 286 +{ +# 288 +static const _Tp __max_bincoeff = (std::template numeric_limits< _Tp> ::max_exponent10 * std::log((_Tp)10)) - ((_Tp)1); +# 292 +_Tp __coeff = (std::lgamma((_Tp)((1) + __n)) - std::lgamma((_Tp)((1) + __k))) - std::lgamma((_Tp)(((1) + __n) - __k)); +# 300 +} +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 316 +__bincoef(unsigned __n, unsigned __k) +# 317 +{ +# 319 +static const _Tp __max_bincoeff = (std::template numeric_limits< _Tp> ::max_exponent10 * std::log((_Tp)10)) - ((_Tp)1); +# 323 +const _Tp __log_coeff = __log_bincoef< _Tp> (__n, __k); +# 324 +if (__log_coeff > __max_bincoeff) { +# 325 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 327 +return std::exp(__log_coeff); } +# 328 +} +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> inline _Tp +# 339 +__gamma(_Tp __x) +# 340 +{ return std::exp(__log_gamma(__x)); } +# 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 358 +__psi_series(_Tp __x) +# 359 +{ +# 360 +_Tp __sum = (-__numeric_constants< _Tp> ::__gamma_e()) - (((_Tp)1) / __x); +# 361 +const unsigned __max_iter = (100000); +# 362 +for (unsigned __k = (1); __k < __max_iter; ++__k) +# 363 +{ +# 364 +const _Tp __term = __x / (__k * (__k + __x)); +# 365 +__sum += __term; +# 366 +if (std::abs(__term / __sum) < std::template numeric_limits< _Tp> ::epsilon()) { +# 367 +break; } +# 368 +} +# 369 +return __sum; +# 370 +} +# 386 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 388 +__psi_asymp(_Tp __x) +# 389 +{ +# 390 +_Tp __sum = std::log(__x) - (((_Tp)(0.5L)) / __x); +# 391 +const _Tp __xx = __x * __x; +# 392 +_Tp __xp = __xx; +# 393 +const unsigned __max_iter = (100); +# 394 +for (unsigned __k = (1); __k < __max_iter; ++__k) +# 395 +{ +# 396 +const _Tp __term = __bernoulli< _Tp> ((2) * __k) / (((2) * __k) * __xp); +# 397 +__sum -= __term; +# 398 +if (std::abs(__term / __sum) < std::template numeric_limits< _Tp> ::epsilon()) { +# 399 +break; } +# 400 +__xp *= __xx; +# 401 +} +# 402 +return __sum; +# 403 +} +# 417 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 419 +__psi(_Tp __x) +# 420 +{ +# 421 +const int __n = static_cast< int>(__x + (0.5L)); +# 422 +const _Tp __eps = ((_Tp)4) * std::template numeric_limits< _Tp> ::epsilon(); +# 423 +if ((__n <= 0) && (std::abs(__x - ((_Tp)__n)) < __eps)) { +# 424 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 425 +if (__x < ((_Tp)0)) +# 426 +{ +# 427 +const _Tp __pi = __numeric_constants< _Tp> ::__pi(); +# 428 +return __psi(((_Tp)1) - __x) - ((__pi * std::cos(__pi * __x)) / std::sin(__pi * __x)); +# 430 +} else { +# 431 +if (__x > ((_Tp)100)) { +# 432 +return __psi_asymp(__x); } else { +# 434 +return __psi_series(__x); } } } +# 435 +} +# 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 448 +__psi(unsigned __n, _Tp __x) +# 449 +{ +# 450 +if (__x <= ((_Tp)0)) { +# 451 +std::__throw_domain_error("Argument out of range in __psi"); } else { +# 453 +if (__n == (0)) { +# 454 +return __psi(__x); } else +# 456 +{ +# 457 +const _Tp __hzeta = __hurwitz_zeta((_Tp)(__n + (1)), __x); +# 459 +const _Tp __ln_nfact = std::lgamma((_Tp)(__n + (1))); +# 463 +_Tp __result = std::exp(__ln_nfact) * __hzeta; +# 464 +if ((__n % (2)) == (1)) { +# 465 +__result = (-__result); } +# 466 +return __result; +# 467 +} } +# 468 +} +# 469 +} +# 476 +} +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +namespace __detail { +# 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> void +# 100 +__gamma_temme(_Tp __mu, _Tp & +# 101 +__gam1, _Tp &__gam2, _Tp &__gampl, _Tp &__gammi) +# 102 +{ +# 104 +__gampl = (((_Tp)1) / std::tgamma(((_Tp)1) + __mu)); +# 105 +__gammi = (((_Tp)1) / std::tgamma(((_Tp)1) - __mu)); +# 111 +if (std::abs(__mu) < std::template numeric_limits< _Tp> ::epsilon()) { +# 112 +__gam1 = (-((_Tp)__numeric_constants< _Tp> ::__gamma_e())); } else { +# 114 +__gam1 = ((__gammi - __gampl) / (((_Tp)2) * __mu)); } +# 116 +__gam2 = ((__gammi + __gampl) / ((_Tp)2)); +# 119 +} +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> void +# 138 +__bessel_jn(_Tp __nu, _Tp __x, _Tp & +# 139 +__Jnu, _Tp &__Nnu, _Tp &__Jpnu, _Tp &__Npnu) +# 140 +{ +# 141 +if (__x == ((_Tp)0)) +# 142 +{ +# 143 +if (__nu == ((_Tp)0)) +# 144 +{ +# 145 +__Jnu = ((_Tp)1); +# 146 +__Jpnu = ((_Tp)0); +# 147 +} else { +# 148 +if (__nu == ((_Tp)1)) +# 149 +{ +# 150 +__Jnu = ((_Tp)0); +# 151 +__Jpnu = ((_Tp)(0.5L)); +# 152 +} else +# 154 +{ +# 155 +__Jnu = ((_Tp)0); +# 156 +__Jpnu = ((_Tp)0); +# 157 +} } +# 158 +__Nnu = (-std::template numeric_limits< _Tp> ::infinity()); +# 159 +__Npnu = std::template numeric_limits< _Tp> ::infinity(); +# 160 +return; +# 161 +} +# 163 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 168 +const _Tp __fp_min = std::sqrt(std::template numeric_limits< _Tp> ::min()); +# 169 +const int __max_iter = 15000; +# 170 +const _Tp __x_min = ((_Tp)2); +# 172 +const int __nl = (__x < __x_min) ? static_cast< int>(__nu + ((_Tp)(0.5L))) : std::max(0, static_cast< int>((__nu - __x) + ((_Tp)(1.5L)))); +# 176 +const _Tp __mu = __nu - __nl; +# 177 +const _Tp __mu2 = __mu * __mu; +# 178 +const _Tp __xi = ((_Tp)1) / __x; +# 179 +const _Tp __xi2 = ((_Tp)2) * __xi; +# 180 +_Tp __w = __xi2 / __numeric_constants< _Tp> ::__pi(); +# 181 +int __isign = 1; +# 182 +_Tp __h = __nu * __xi; +# 183 +if (__h < __fp_min) { +# 184 +__h = __fp_min; } +# 185 +_Tp __b = __xi2 * __nu; +# 186 +_Tp __d = ((_Tp)0); +# 187 +_Tp __c = __h; +# 188 +int __i; +# 189 +for (__i = 1; __i <= __max_iter; ++__i) +# 190 +{ +# 191 +__b += __xi2; +# 192 +__d = (__b - __d); +# 193 +if (std::abs(__d) < __fp_min) { +# 194 +__d = __fp_min; } +# 195 +__c = (__b - (((_Tp)1) / __c)); +# 196 +if (std::abs(__c) < __fp_min) { +# 197 +__c = __fp_min; } +# 198 +__d = (((_Tp)1) / __d); +# 199 +const _Tp __del = __c * __d; +# 200 +__h *= __del; +# 201 +if (__d < ((_Tp)0)) { +# 202 +__isign = (-__isign); } +# 203 +if (std::abs(__del - ((_Tp)1)) < __eps) { +# 204 +break; } +# 205 +} +# 206 +if (__i > __max_iter) { +# 207 +std::__throw_runtime_error("Argument x too large in __bessel_jn; try asymptotic expansion."); } +# 209 +_Tp __Jnul = __isign * __fp_min; +# 210 +_Tp __Jpnul = __h * __Jnul; +# 211 +_Tp __Jnul1 = __Jnul; +# 212 +_Tp __Jpnu1 = __Jpnul; +# 213 +_Tp __fact = __nu * __xi; +# 214 +for (int __l = __nl; __l >= 1; --__l) +# 215 +{ +# 216 +const _Tp __Jnutemp = (__fact * __Jnul) + __Jpnul; +# 217 +__fact -= __xi; +# 218 +__Jpnul = ((__fact * __Jnutemp) - __Jnul); +# 219 +__Jnul = __Jnutemp; +# 220 +} +# 221 +if (__Jnul == ((_Tp)0)) { +# 222 +__Jnul = __eps; } +# 223 +_Tp __f = __Jpnul / __Jnul; +# 224 +_Tp __Nmu, __Nnu1, __Npmu, __Jmu; +# 225 +if (__x < __x_min) +# 226 +{ +# 227 +const _Tp __x2 = __x / ((_Tp)2); +# 228 +const _Tp __pimu = __numeric_constants< _Tp> ::__pi() * __mu; +# 229 +_Tp __fact = (std::abs(__pimu) < __eps) ? (_Tp)1 : (__pimu / std::sin(__pimu)); +# 231 +_Tp __d = (-std::log(__x2)); +# 232 +_Tp __e = __mu * __d; +# 233 +_Tp __fact2 = (std::abs(__e) < __eps) ? (_Tp)1 : (std::sinh(__e) / __e); +# 235 +_Tp __gam1, __gam2, __gampl, __gammi; +# 236 +__gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); +# 237 +_Tp __ff = ((((_Tp)2) / __numeric_constants< _Tp> ::__pi()) * __fact) * ((__gam1 * std::cosh(__e)) + ((__gam2 * __fact2) * __d)); +# 239 +__e = std::exp(__e); +# 240 +_Tp __p = __e / (__numeric_constants< _Tp> ::__pi() * __gampl); +# 241 +_Tp __q = ((_Tp)1) / ((__e * __numeric_constants< _Tp> ::__pi()) * __gammi); +# 242 +const _Tp __pimu2 = __pimu / ((_Tp)2); +# 243 +_Tp __fact3 = (std::abs(__pimu2) < __eps) ? (_Tp)1 : (std::sin(__pimu2) / __pimu2); +# 245 +_Tp __r = ((__numeric_constants< _Tp> ::__pi() * __pimu2) * __fact3) * __fact3; +# 246 +_Tp __c = ((_Tp)1); +# 247 +__d = ((-__x2) * __x2); +# 248 +_Tp __sum = __ff + (__r * __q); +# 249 +_Tp __sum1 = __p; +# 250 +for (__i = 1; __i <= __max_iter; ++__i) +# 251 +{ +# 252 +__ff = ((((__i * __ff) + __p) + __q) / ((__i * __i) - __mu2)); +# 253 +__c *= (__d / ((_Tp)__i)); +# 254 +__p /= (((_Tp)__i) - __mu); +# 255 +__q /= (((_Tp)__i) + __mu); +# 256 +const _Tp __del = __c * (__ff + (__r * __q)); +# 257 +__sum += __del; +# 258 +const _Tp __del1 = (__c * __p) - (__i * __del); +# 259 +__sum1 += __del1; +# 260 +if (std::abs(__del) < (__eps * (((_Tp)1) + std::abs(__sum)))) { +# 261 +break; } +# 262 +} +# 263 +if (__i > __max_iter) { +# 264 +std::__throw_runtime_error("Bessel y series failed to converge in __bessel_jn."); } +# 266 +__Nmu = (-__sum); +# 267 +__Nnu1 = ((-__sum1) * __xi2); +# 268 +__Npmu = (((__mu * __xi) * __Nmu) - __Nnu1); +# 269 +__Jmu = (__w / (__Npmu - (__f * __Nmu))); +# 270 +} else +# 272 +{ +# 273 +_Tp __a = ((_Tp)(0.25L)) - __mu2; +# 274 +_Tp __q = ((_Tp)1); +# 275 +_Tp __p = ((-__xi) / ((_Tp)2)); +# 276 +_Tp __br = ((_Tp)2) * __x; +# 277 +_Tp __bi = ((_Tp)2); +# 278 +_Tp __fact = (__a * __xi) / ((__p * __p) + (__q * __q)); +# 279 +_Tp __cr = __br + (__q * __fact); +# 280 +_Tp __ci = __bi + (__p * __fact); +# 281 +_Tp __den = (__br * __br) + (__bi * __bi); +# 282 +_Tp __dr = __br / __den; +# 283 +_Tp __di = (-__bi) / __den; +# 284 +_Tp __dlr = (__cr * __dr) - (__ci * __di); +# 285 +_Tp __dli = (__cr * __di) + (__ci * __dr); +# 286 +_Tp __temp = (__p * __dlr) - (__q * __dli); +# 287 +__q = ((__p * __dli) + (__q * __dlr)); +# 288 +__p = __temp; +# 289 +int __i; +# 290 +for (__i = 2; __i <= __max_iter; ++__i) +# 291 +{ +# 292 +__a += ((_Tp)(2 * (__i - 1))); +# 293 +__bi += ((_Tp)2); +# 294 +__dr = ((__a * __dr) + __br); +# 295 +__di = ((__a * __di) + __bi); +# 296 +if ((std::abs(__dr) + std::abs(__di)) < __fp_min) { +# 297 +__dr = __fp_min; } +# 298 +__fact = (__a / ((__cr * __cr) + (__ci * __ci))); +# 299 +__cr = (__br + (__cr * __fact)); +# 300 +__ci = (__bi - (__ci * __fact)); +# 301 +if ((std::abs(__cr) + std::abs(__ci)) < __fp_min) { +# 302 +__cr = __fp_min; } +# 303 +__den = ((__dr * __dr) + (__di * __di)); +# 304 +__dr /= __den; +# 305 +__di /= (-__den); +# 306 +__dlr = ((__cr * __dr) - (__ci * __di)); +# 307 +__dli = ((__cr * __di) + (__ci * __dr)); +# 308 +__temp = ((__p * __dlr) - (__q * __dli)); +# 309 +__q = ((__p * __dli) + (__q * __dlr)); +# 310 +__p = __temp; +# 311 +if ((std::abs(__dlr - ((_Tp)1)) + std::abs(__dli)) < __eps) { +# 312 +break; } +# 313 +} +# 314 +if (__i > __max_iter) { +# 315 +std::__throw_runtime_error("Lentz\'s method failed in __bessel_jn."); } +# 317 +const _Tp __gam = (__p - __f) / __q; +# 318 +__Jmu = std::sqrt(__w / (((__p - __f) * __gam) + __q)); +# 320 +__Jmu = std::copysign(__Jmu, __Jnul); +# 325 +__Nmu = (__gam * __Jmu); +# 326 +__Npmu = ((__p + (__q / __gam)) * __Nmu); +# 327 +__Nnu1 = (((__mu * __xi) * __Nmu) - __Npmu); +# 328 +} +# 329 +__fact = (__Jmu / __Jnul); +# 330 +__Jnu = (__fact * __Jnul1); +# 331 +__Jpnu = (__fact * __Jpnu1); +# 332 +for (__i = 1; __i <= __nl; ++__i) +# 333 +{ +# 334 +const _Tp __Nnutemp = (((__mu + __i) * __xi2) * __Nnu1) - __Nmu; +# 335 +__Nmu = __Nnu1; +# 336 +__Nnu1 = __Nnutemp; +# 337 +} +# 338 +__Nnu = __Nmu; +# 339 +__Npnu = (((__nu * __xi) * __Nmu) - __Nnu1); +# 342 +} +# 361 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> void +# 363 +__cyl_bessel_jn_asymp(_Tp __nu, _Tp __x, _Tp &__Jnu, _Tp &__Nnu) +# 364 +{ +# 365 +const _Tp __mu = (((_Tp)4) * __nu) * __nu; +# 366 +const _Tp __8x = ((_Tp)8) * __x; +# 368 +_Tp __P = ((_Tp)0); +# 369 +_Tp __Q = ((_Tp)0); +# 371 +_Tp __k = ((_Tp)0); +# 372 +_Tp __term = ((_Tp)1); +# 374 +int __epsP = 0; +# 375 +int __epsQ = 0; +# 377 +_Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 379 +do +# 380 +{ +# 381 +__term *= ((__k == 0) ? (_Tp)1 : ((-(__mu - (((2 * __k) - 1) * ((2 * __k) - 1)))) / (__k * __8x))); +# 385 +__epsP = (std::abs(__term) < (__eps * std::abs(__P))); +# 386 +__P += __term; +# 388 +__k++; +# 390 +__term *= ((__mu - (((2 * __k) - 1) * ((2 * __k) - 1))) / (__k * __8x)); +# 391 +__epsQ = (std::abs(__term) < (__eps * std::abs(__Q))); +# 392 +__Q += __term; +# 394 +if (__epsP && __epsQ && (__k > (__nu / (2.0)))) { +# 395 +break; } +# 397 +__k++; +# 398 +} +# 399 +while (__k < 1000); +# 401 +const _Tp __chi = __x - ((__nu + ((_Tp)(0.5L))) * __numeric_constants< _Tp> ::__pi_2()); +# 404 +const _Tp __c = std::cos(__chi); +# 405 +const _Tp __s = std::sin(__chi); +# 407 +const _Tp __coef = std::sqrt(((_Tp)2) / (__numeric_constants< _Tp> ::__pi() * __x)); +# 410 +__Jnu = (__coef * ((__c * __P) - (__s * __Q))); +# 411 +__Nnu = (__coef * ((__s * __P) + (__c * __Q))); +# 414 +} +# 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 446 +__cyl_bessel_ij_series(_Tp __nu, _Tp __x, _Tp __sgn, unsigned +# 447 +__max_iter) +# 448 +{ +# 449 +if (__x == ((_Tp)0)) { +# 450 +return (__nu == ((_Tp)0)) ? (_Tp)1 : ((_Tp)0); } +# 452 +const _Tp __x2 = __x / ((_Tp)2); +# 453 +_Tp __fact = __nu * std::log(__x2); +# 455 +__fact -= std::lgamma(__nu + ((_Tp)1)); +# 459 +__fact = std::exp(__fact); +# 460 +const _Tp __xx4 = (__sgn * __x2) * __x2; +# 461 +_Tp __Jn = ((_Tp)1); +# 462 +_Tp __term = ((_Tp)1); +# 464 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 465 +{ +# 466 +__term *= (__xx4 / (((_Tp)__i) * (__nu + ((_Tp)__i)))); +# 467 +__Jn += __term; +# 468 +if (std::abs(__term / __Jn) < std::template numeric_limits< _Tp> ::epsilon()) { +# 469 +break; } +# 470 +} +# 472 +return __fact * __Jn; +# 473 +} +# 490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 492 +__cyl_bessel_j(_Tp __nu, _Tp __x) +# 493 +{ +# 494 +if ((__nu < ((_Tp)0)) || (__x < ((_Tp)0))) { +# 495 +std::__throw_domain_error("Bad argument in __cyl_bessel_j."); } else { +# 497 +if (__isnan(__nu) || __isnan(__x)) { +# 498 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 499 +if ((__x * __x) < (((_Tp)10) * (__nu + ((_Tp)1)))) { +# 500 +return __cyl_bessel_ij_series(__nu, __x, -((_Tp)1), 200); } else { +# 501 +if (__x > ((_Tp)1000)) +# 502 +{ +# 503 +_Tp __J_nu, __N_nu; +# 504 +__cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); +# 505 +return __J_nu; +# 506 +} else +# 508 +{ +# 509 +_Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; +# 510 +__bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 511 +return __J_nu; +# 512 +} } } } +# 513 +} +# 532 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 534 +__cyl_neumann_n(_Tp __nu, _Tp __x) +# 535 +{ +# 536 +if ((__nu < ((_Tp)0)) || (__x < ((_Tp)0))) { +# 537 +std::__throw_domain_error("Bad argument in __cyl_neumann_n."); } else { +# 539 +if (__isnan(__nu) || __isnan(__x)) { +# 540 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 541 +if (__x > ((_Tp)1000)) +# 542 +{ +# 543 +_Tp __J_nu, __N_nu; +# 544 +__cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); +# 545 +return __N_nu; +# 546 +} else +# 548 +{ +# 549 +_Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; +# 550 +__bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 551 +return __N_nu; +# 552 +} } } +# 553 +} +# 569 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> void +# 571 +__sph_bessel_jn(unsigned __n, _Tp __x, _Tp & +# 572 +__j_n, _Tp &__n_n, _Tp &__jp_n, _Tp &__np_n) +# 573 +{ +# 574 +const _Tp __nu = ((_Tp)__n) + ((_Tp)(0.5L)); +# 576 +_Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; +# 577 +__bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 579 +const _Tp __factor = __numeric_constants< _Tp> ::__sqrtpio2() / std::sqrt(__x); +# 582 +__j_n = (__factor * __J_nu); +# 583 +__n_n = (__factor * __N_nu); +# 584 +__jp_n = ((__factor * __Jp_nu) - (__j_n / (((_Tp)2) * __x))); +# 585 +__np_n = ((__factor * __Np_nu) - (__n_n / (((_Tp)2) * __x))); +# 588 +} +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 606 +__sph_bessel(unsigned __n, _Tp __x) +# 607 +{ +# 608 +if (__x < ((_Tp)0)) { +# 609 +std::__throw_domain_error("Bad argument in __sph_bessel."); } else { +# 611 +if (__isnan(__x)) { +# 612 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 613 +if (__x == ((_Tp)0)) +# 614 +{ +# 615 +if (__n == (0)) { +# 616 +return (_Tp)1; } else { +# 618 +return (_Tp)0; } +# 619 +} else +# 621 +{ +# 622 +_Tp __j_n, __n_n, __jp_n, __np_n; +# 623 +__sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); +# 624 +return __j_n; +# 625 +} } } +# 626 +} +# 642 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 644 +__sph_neumann(unsigned __n, _Tp __x) +# 645 +{ +# 646 +if (__x < ((_Tp)0)) { +# 647 +std::__throw_domain_error("Bad argument in __sph_neumann."); } else { +# 649 +if (__isnan(__x)) { +# 650 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 651 +if (__x == ((_Tp)0)) { +# 652 +return -std::template numeric_limits< _Tp> ::infinity(); } else +# 654 +{ +# 655 +_Tp __j_n, __n_n, __jp_n, __np_n; +# 656 +__sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); +# 657 +return __n_n; +# 658 +} } } +# 659 +} +# 660 +} +# 667 +} +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +namespace __detail { +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +template< class _Tp> _Tp +# 81 +__beta_gamma(_Tp __x, _Tp __y) +# 82 +{ +# 84 +_Tp __bet; +# 86 +if (__x > __y) +# 87 +{ +# 88 +__bet = (std::tgamma(__x) / std::tgamma(__x + __y)); +# 90 +__bet *= std::tgamma(__y); +# 91 +} else +# 93 +{ +# 94 +__bet = (std::tgamma(__y) / std::tgamma(__x + __y)); +# 96 +__bet *= std::tgamma(__x); +# 97 +} +# 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +return __bet; +# 112 +} +# 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +template< class _Tp> _Tp +# 129 +__beta_lgamma(_Tp __x, _Tp __y) +# 130 +{ +# 132 +_Tp __bet = (std::lgamma(__x) + std::lgamma(__y)) - std::lgamma(__x + __y); +# 140 +__bet = std::exp(__bet); +# 141 +return __bet; +# 142 +} +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +template< class _Tp> _Tp +# 160 +__beta_product(_Tp __x, _Tp __y) +# 161 +{ +# 163 +_Tp __bet = (__x + __y) / (__x * __y); +# 165 +unsigned __max_iter = (1000000); +# 166 +for (unsigned __k = (1); __k < __max_iter; ++__k) +# 167 +{ +# 168 +_Tp __term = (((_Tp)1) + ((__x + __y) / __k)) / ((((_Tp)1) + (__x / __k)) * (((_Tp)1) + (__y / __k))); +# 170 +__bet *= __term; +# 171 +} +# 173 +return __bet; +# 174 +} +# 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +template< class _Tp> inline _Tp +# 191 +__beta(_Tp __x, _Tp __y) +# 192 +{ +# 193 +if (__isnan(__x) || __isnan(__y)) { +# 194 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 196 +return __beta_lgamma(__x, __y); } +# 197 +} +# 198 +} +# 205 +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +namespace __detail { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 78 +__ellint_rf(_Tp __x, _Tp __y, _Tp __z) +# 79 +{ +# 80 +const _Tp __min = std::template numeric_limits< _Tp> ::min(); +# 81 +const _Tp __lolim = ((_Tp)5) * __min; +# 83 +if (((__x < ((_Tp)0)) || (__y < ((_Tp)0))) || (__z < ((_Tp)0))) { +# 84 +std::__throw_domain_error("Argument less than zero in __ellint_rf."); } else { +# 86 +if ((((__x + __y) < __lolim) || ((__x + __z) < __lolim)) || ((__y + __z) < __lolim)) { +# 88 +std::__throw_domain_error("Argument too small in __ellint_rf"); } else +# 90 +{ +# 91 +const _Tp __c0 = (((_Tp)1) / ((_Tp)4)); +# 92 +const _Tp __c1 = (((_Tp)1) / ((_Tp)24)); +# 93 +const _Tp __c2 = (((_Tp)1) / ((_Tp)10)); +# 94 +const _Tp __c3 = (((_Tp)3) / ((_Tp)44)); +# 95 +const _Tp __c4 = (((_Tp)1) / ((_Tp)14)); +# 97 +_Tp __xn = __x; +# 98 +_Tp __yn = __y; +# 99 +_Tp __zn = __z; +# 101 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 102 +const _Tp __errtol = std::pow(__eps, ((_Tp)1) / ((_Tp)6)); +# 103 +_Tp __mu; +# 104 +_Tp __xndev, __yndev, __zndev; +# 106 +const unsigned __max_iter = (100); +# 107 +for (unsigned __iter = (0); __iter < __max_iter; ++__iter) +# 108 +{ +# 109 +__mu = (((__xn + __yn) + __zn) / ((_Tp)3)); +# 110 +__xndev = (2 - ((__mu + __xn) / __mu)); +# 111 +__yndev = (2 - ((__mu + __yn) / __mu)); +# 112 +__zndev = (2 - ((__mu + __zn) / __mu)); +# 113 +_Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); +# 114 +__epsilon = std::max(__epsilon, std::abs(__zndev)); +# 115 +if (__epsilon < __errtol) { +# 116 +break; } +# 117 +const _Tp __xnroot = std::sqrt(__xn); +# 118 +const _Tp __ynroot = std::sqrt(__yn); +# 119 +const _Tp __znroot = std::sqrt(__zn); +# 120 +const _Tp __lambda = (__xnroot * (__ynroot + __znroot)) + (__ynroot * __znroot); +# 122 +__xn = (__c0 * (__xn + __lambda)); +# 123 +__yn = (__c0 * (__yn + __lambda)); +# 124 +__zn = (__c0 * (__zn + __lambda)); +# 125 +} +# 127 +const _Tp __e2 = (__xndev * __yndev) - (__zndev * __zndev); +# 128 +const _Tp __e3 = (__xndev * __yndev) * __zndev; +# 129 +const _Tp __s = (((_Tp)1) + ((((__c1 * __e2) - __c2) - (__c3 * __e3)) * __e2)) + (__c4 * __e3); +# 132 +return __s / std::sqrt(__mu); +# 133 +} } +# 134 +} +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 155 +__comp_ellint_1_series(_Tp __k) +# 156 +{ +# 158 +const _Tp __kk = __k * __k; +# 160 +_Tp __term = __kk / ((_Tp)4); +# 161 +_Tp __sum = ((_Tp)1) + __term; +# 163 +const unsigned __max_iter = (1000); +# 164 +for (unsigned __i = (2); __i < __max_iter; ++__i) +# 165 +{ +# 166 +__term *= (((((2) * __i) - (1)) * __kk) / ((2) * __i)); +# 167 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) { +# 168 +break; } +# 169 +__sum += __term; +# 170 +} +# 172 +return __numeric_constants< _Tp> ::__pi_2() * __sum; +# 173 +} +# 191 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 193 +__comp_ellint_1(_Tp __k) +# 194 +{ +# 196 +if (__isnan(__k)) { +# 197 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 198 +if (std::abs(__k) >= ((_Tp)1)) { +# 199 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 201 +return __ellint_rf((_Tp)0, ((_Tp)1) - (__k * __k), (_Tp)1); } } +# 202 +} +# 219 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 221 +__ellint_1(_Tp __k, _Tp __phi) +# 222 +{ +# 224 +if (__isnan(__k) || __isnan(__phi)) { +# 225 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 226 +if (std::abs(__k) > ((_Tp)1)) { +# 227 +std::__throw_domain_error("Bad argument in __ellint_1."); } else +# 229 +{ +# 231 +const int __n = std::floor((__phi / __numeric_constants< _Tp> ::__pi()) + ((_Tp)(0.5L))); +# 233 +const _Tp __phi_red = __phi - (__n * __numeric_constants< _Tp> ::__pi()); +# 236 +const _Tp __s = std::sin(__phi_red); +# 237 +const _Tp __c = std::cos(__phi_red); +# 239 +const _Tp __F = __s * __ellint_rf(__c * __c, ((_Tp)1) - (((__k * __k) * __s) * __s), (_Tp)1); +# 243 +if (__n == 0) { +# 244 +return __F; } else { +# 246 +return __F + ((((_Tp)2) * __n) * __comp_ellint_1(__k)); } +# 247 +} } +# 248 +} +# 266 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 268 +__comp_ellint_2_series(_Tp __k) +# 269 +{ +# 271 +const _Tp __kk = __k * __k; +# 273 +_Tp __term = __kk; +# 274 +_Tp __sum = __term; +# 276 +const unsigned __max_iter = (1000); +# 277 +for (unsigned __i = (2); __i < __max_iter; ++__i) +# 278 +{ +# 279 +const _Tp __i2m = ((2) * __i) - (1); +# 280 +const _Tp __i2 = (2) * __i; +# 281 +__term *= (((__i2m * __i2m) * __kk) / (__i2 * __i2)); +# 282 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) { +# 283 +break; } +# 284 +__sum += (__term / __i2m); +# 285 +} +# 287 +return __numeric_constants< _Tp> ::__pi_2() * (((_Tp)1) - __sum); +# 288 +} +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 316 +__ellint_rd(_Tp __x, _Tp __y, _Tp __z) +# 317 +{ +# 318 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 319 +const _Tp __errtol = std::pow(__eps / ((_Tp)8), ((_Tp)1) / ((_Tp)6)); +# 320 +const _Tp __max = std::template numeric_limits< _Tp> ::max(); +# 321 +const _Tp __lolim = ((_Tp)2) / std::pow(__max, ((_Tp)2) / ((_Tp)3)); +# 323 +if ((__x < ((_Tp)0)) || (__y < ((_Tp)0))) { +# 324 +std::__throw_domain_error("Argument less than zero in __ellint_rd."); } else { +# 326 +if (((__x + __y) < __lolim) || (__z < __lolim)) { +# 327 +std::__throw_domain_error("Argument too small in __ellint_rd."); } else +# 330 +{ +# 331 +const _Tp __c0 = (((_Tp)1) / ((_Tp)4)); +# 332 +const _Tp __c1 = (((_Tp)3) / ((_Tp)14)); +# 333 +const _Tp __c2 = (((_Tp)1) / ((_Tp)6)); +# 334 +const _Tp __c3 = (((_Tp)9) / ((_Tp)22)); +# 335 +const _Tp __c4 = (((_Tp)3) / ((_Tp)26)); +# 337 +_Tp __xn = __x; +# 338 +_Tp __yn = __y; +# 339 +_Tp __zn = __z; +# 340 +_Tp __sigma = ((_Tp)0); +# 341 +_Tp __power4 = ((_Tp)1); +# 343 +_Tp __mu; +# 344 +_Tp __xndev, __yndev, __zndev; +# 346 +const unsigned __max_iter = (100); +# 347 +for (unsigned __iter = (0); __iter < __max_iter; ++__iter) +# 348 +{ +# 349 +__mu = (((__xn + __yn) + (((_Tp)3) * __zn)) / ((_Tp)5)); +# 350 +__xndev = ((__mu - __xn) / __mu); +# 351 +__yndev = ((__mu - __yn) / __mu); +# 352 +__zndev = ((__mu - __zn) / __mu); +# 353 +_Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); +# 354 +__epsilon = std::max(__epsilon, std::abs(__zndev)); +# 355 +if (__epsilon < __errtol) { +# 356 +break; } +# 357 +_Tp __xnroot = std::sqrt(__xn); +# 358 +_Tp __ynroot = std::sqrt(__yn); +# 359 +_Tp __znroot = std::sqrt(__zn); +# 360 +_Tp __lambda = (__xnroot * (__ynroot + __znroot)) + (__ynroot * __znroot); +# 362 +__sigma += (__power4 / (__znroot * (__zn + __lambda))); +# 363 +__power4 *= __c0; +# 364 +__xn = (__c0 * (__xn + __lambda)); +# 365 +__yn = (__c0 * (__yn + __lambda)); +# 366 +__zn = (__c0 * (__zn + __lambda)); +# 367 +} +# 369 +_Tp __ea = __xndev * __yndev; +# 370 +_Tp __eb = __zndev * __zndev; +# 371 +_Tp __ec = __ea - __eb; +# 372 +_Tp __ed = __ea - (((_Tp)6) * __eb); +# 373 +_Tp __ef = (__ed + __ec) + __ec; +# 374 +_Tp __s1 = __ed * (((-__c1) + ((__c3 * __ed) / ((_Tp)3))) - ((((((_Tp)3) * __c4) * __zndev) * __ef) / ((_Tp)2))); +# 377 +_Tp __s2 = __zndev * ((__c2 * __ef) + (__zndev * ((((-__c3) * __ec) - (__zndev * __c4)) - __ea))); +# 381 +return (((_Tp)3) * __sigma) + ((__power4 * ((((_Tp)1) + __s1) + __s2)) / (__mu * std::sqrt(__mu))); +# 383 +} } +# 384 +} +# 399 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 401 +__comp_ellint_2(_Tp __k) +# 402 +{ +# 404 +if (__isnan(__k)) { +# 405 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 406 +if (std::abs(__k) == 1) { +# 407 +return (_Tp)1; } else { +# 408 +if (std::abs(__k) > ((_Tp)1)) { +# 409 +std::__throw_domain_error("Bad argument in __comp_ellint_2."); } else +# 411 +{ +# 412 +const _Tp __kk = __k * __k; +# 414 +return __ellint_rf((_Tp)0, ((_Tp)1) - __kk, (_Tp)1) - ((__kk * __ellint_rd((_Tp)0, ((_Tp)1) - __kk, (_Tp)1)) / ((_Tp)3)); +# 416 +} } } +# 417 +} +# 433 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 435 +__ellint_2(_Tp __k, _Tp __phi) +# 436 +{ +# 438 +if (__isnan(__k) || __isnan(__phi)) { +# 439 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 440 +if (std::abs(__k) > ((_Tp)1)) { +# 441 +std::__throw_domain_error("Bad argument in __ellint_2."); } else +# 443 +{ +# 445 +const int __n = std::floor((__phi / __numeric_constants< _Tp> ::__pi()) + ((_Tp)(0.5L))); +# 447 +const _Tp __phi_red = __phi - (__n * __numeric_constants< _Tp> ::__pi()); +# 450 +const _Tp __kk = __k * __k; +# 451 +const _Tp __s = std::sin(__phi_red); +# 452 +const _Tp __ss = __s * __s; +# 453 +const _Tp __sss = __ss * __s; +# 454 +const _Tp __c = std::cos(__phi_red); +# 455 +const _Tp __cc = __c * __c; +# 457 +const _Tp __E = (__s * __ellint_rf(__cc, ((_Tp)1) - (__kk * __ss), (_Tp)1)) - (((__kk * __sss) * __ellint_rd(__cc, ((_Tp)1) - (__kk * __ss), (_Tp)1)) / ((_Tp)3)); +# 463 +if (__n == 0) { +# 464 +return __E; } else { +# 466 +return __E + ((((_Tp)2) * __n) * __comp_ellint_2(__k)); } +# 467 +} } +# 468 +} +# 492 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 494 +__ellint_rc(_Tp __x, _Tp __y) +# 495 +{ +# 496 +const _Tp __min = std::template numeric_limits< _Tp> ::min(); +# 497 +const _Tp __lolim = ((_Tp)5) * __min; +# 499 +if (((__x < ((_Tp)0)) || (__y < ((_Tp)0))) || ((__x + __y) < __lolim)) { +# 500 +std::__throw_domain_error("Argument less than zero in __ellint_rc."); } else +# 503 +{ +# 504 +const _Tp __c0 = (((_Tp)1) / ((_Tp)4)); +# 505 +const _Tp __c1 = (((_Tp)1) / ((_Tp)7)); +# 506 +const _Tp __c2 = (((_Tp)9) / ((_Tp)22)); +# 507 +const _Tp __c3 = (((_Tp)3) / ((_Tp)10)); +# 508 +const _Tp __c4 = (((_Tp)3) / ((_Tp)8)); +# 510 +_Tp __xn = __x; +# 511 +_Tp __yn = __y; +# 513 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 514 +const _Tp __errtol = std::pow(__eps / ((_Tp)30), ((_Tp)1) / ((_Tp)6)); +# 515 +_Tp __mu; +# 516 +_Tp __sn; +# 518 +const unsigned __max_iter = (100); +# 519 +for (unsigned __iter = (0); __iter < __max_iter; ++__iter) +# 520 +{ +# 521 +__mu = ((__xn + (((_Tp)2) * __yn)) / ((_Tp)3)); +# 522 +__sn = (((__yn + __mu) / __mu) - ((_Tp)2)); +# 523 +if (std::abs(__sn) < __errtol) { +# 524 +break; } +# 525 +const _Tp __lambda = ((((_Tp)2) * std::sqrt(__xn)) * std::sqrt(__yn)) + __yn; +# 527 +__xn = (__c0 * (__xn + __lambda)); +# 528 +__yn = (__c0 * (__yn + __lambda)); +# 529 +} +# 531 +_Tp __s = (__sn * __sn) * (__c3 + (__sn * (__c1 + (__sn * (__c4 + (__sn * __c2)))))); +# 534 +return (((_Tp)1) + __s) / std::sqrt(__mu); +# 535 +} +# 536 +} +# 561 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 563 +__ellint_rj(_Tp __x, _Tp __y, _Tp __z, _Tp __p) +# 564 +{ +# 565 +const _Tp __min = std::template numeric_limits< _Tp> ::min(); +# 566 +const _Tp __lolim = std::pow(((_Tp)5) * __min, ((_Tp)1) / ((_Tp)3)); +# 568 +if (((__x < ((_Tp)0)) || (__y < ((_Tp)0))) || (__z < ((_Tp)0))) { +# 569 +std::__throw_domain_error("Argument less than zero in __ellint_rj."); } else { +# 571 +if (((((__x + __y) < __lolim) || ((__x + __z) < __lolim)) || ((__y + __z) < __lolim)) || (__p < __lolim)) { +# 573 +std::__throw_domain_error("Argument too small in __ellint_rj"); } else +# 576 +{ +# 577 +const _Tp __c0 = (((_Tp)1) / ((_Tp)4)); +# 578 +const _Tp __c1 = (((_Tp)3) / ((_Tp)14)); +# 579 +const _Tp __c2 = (((_Tp)1) / ((_Tp)3)); +# 580 +const _Tp __c3 = (((_Tp)3) / ((_Tp)22)); +# 581 +const _Tp __c4 = (((_Tp)3) / ((_Tp)26)); +# 583 +_Tp __xn = __x; +# 584 +_Tp __yn = __y; +# 585 +_Tp __zn = __z; +# 586 +_Tp __pn = __p; +# 587 +_Tp __sigma = ((_Tp)0); +# 588 +_Tp __power4 = ((_Tp)1); +# 590 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 591 +const _Tp __errtol = std::pow(__eps / ((_Tp)8), ((_Tp)1) / ((_Tp)6)); +# 593 +_Tp __mu; +# 594 +_Tp __xndev, __yndev, __zndev, __pndev; +# 596 +const unsigned __max_iter = (100); +# 597 +for (unsigned __iter = (0); __iter < __max_iter; ++__iter) +# 598 +{ +# 599 +__mu = ((((__xn + __yn) + __zn) + (((_Tp)2) * __pn)) / ((_Tp)5)); +# 600 +__xndev = ((__mu - __xn) / __mu); +# 601 +__yndev = ((__mu - __yn) / __mu); +# 602 +__zndev = ((__mu - __zn) / __mu); +# 603 +__pndev = ((__mu - __pn) / __mu); +# 604 +_Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); +# 605 +__epsilon = std::max(__epsilon, std::abs(__zndev)); +# 606 +__epsilon = std::max(__epsilon, std::abs(__pndev)); +# 607 +if (__epsilon < __errtol) { +# 608 +break; } +# 609 +const _Tp __xnroot = std::sqrt(__xn); +# 610 +const _Tp __ynroot = std::sqrt(__yn); +# 611 +const _Tp __znroot = std::sqrt(__zn); +# 612 +const _Tp __lambda = (__xnroot * (__ynroot + __znroot)) + (__ynroot * __znroot); +# 614 +const _Tp __alpha1 = (__pn * ((__xnroot + __ynroot) + __znroot)) + ((__xnroot * __ynroot) * __znroot); +# 616 +const _Tp __alpha2 = __alpha1 * __alpha1; +# 617 +const _Tp __beta = (__pn * (__pn + __lambda)) * (__pn + __lambda); +# 619 +__sigma += (__power4 * __ellint_rc(__alpha2, __beta)); +# 620 +__power4 *= __c0; +# 621 +__xn = (__c0 * (__xn + __lambda)); +# 622 +__yn = (__c0 * (__yn + __lambda)); +# 623 +__zn = (__c0 * (__zn + __lambda)); +# 624 +__pn = (__c0 * (__pn + __lambda)); +# 625 +} +# 627 +_Tp __ea = (__xndev * (__yndev + __zndev)) + (__yndev * __zndev); +# 628 +_Tp __eb = (__xndev * __yndev) * __zndev; +# 629 +_Tp __ec = __pndev * __pndev; +# 630 +_Tp __e2 = __ea - (((_Tp)3) * __ec); +# 631 +_Tp __e3 = __eb + ((((_Tp)2) * __pndev) * (__ea - __ec)); +# 632 +_Tp __s1 = ((_Tp)1) + (__e2 * (((-__c1) + (((((_Tp)3) * __c3) * __e2) / ((_Tp)4))) - (((((_Tp)3) * __c4) * __e3) / ((_Tp)2)))); +# 634 +_Tp __s2 = __eb * ((__c2 / ((_Tp)2)) + (__pndev * (((-__c3) - __c3) + (__pndev * __c4)))); +# 636 +_Tp __s3 = ((__pndev * __ea) * (__c2 - (__pndev * __c3))) - ((__c2 * __pndev) * __ec); +# 639 +return (((_Tp)3) * __sigma) + ((__power4 * ((__s1 + __s2) + __s3)) / (__mu * std::sqrt(__mu))); +# 641 +} } +# 642 +} +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 663 +__comp_ellint_3(_Tp __k, _Tp __nu) +# 664 +{ +# 666 +if (__isnan(__k) || __isnan(__nu)) { +# 667 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 668 +if (__nu == ((_Tp)1)) { +# 669 +return std::template numeric_limits< _Tp> ::infinity(); } else { +# 670 +if (std::abs(__k) > ((_Tp)1)) { +# 671 +std::__throw_domain_error("Bad argument in __comp_ellint_3."); } else +# 673 +{ +# 674 +const _Tp __kk = __k * __k; +# 676 +return __ellint_rf((_Tp)0, ((_Tp)1) - __kk, (_Tp)1) + ((__nu * __ellint_rj((_Tp)0, ((_Tp)1) - __kk, (_Tp)1, ((_Tp)1) - __nu)) / ((_Tp)3)); +# 680 +} } } +# 681 +} +# 701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 703 +__ellint_3(_Tp __k, _Tp __nu, _Tp __phi) +# 704 +{ +# 706 +if ((__isnan(__k) || __isnan(__nu)) || __isnan(__phi)) { +# 707 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 708 +if (std::abs(__k) > ((_Tp)1)) { +# 709 +std::__throw_domain_error("Bad argument in __ellint_3."); } else +# 711 +{ +# 713 +const int __n = std::floor((__phi / __numeric_constants< _Tp> ::__pi()) + ((_Tp)(0.5L))); +# 715 +const _Tp __phi_red = __phi - (__n * __numeric_constants< _Tp> ::__pi()); +# 718 +const _Tp __kk = __k * __k; +# 719 +const _Tp __s = std::sin(__phi_red); +# 720 +const _Tp __ss = __s * __s; +# 721 +const _Tp __sss = __ss * __s; +# 722 +const _Tp __c = std::cos(__phi_red); +# 723 +const _Tp __cc = __c * __c; +# 725 +const _Tp __Pi = (__s * __ellint_rf(__cc, ((_Tp)1) - (__kk * __ss), (_Tp)1)) + (((__nu * __sss) * __ellint_rj(__cc, ((_Tp)1) - (__kk * __ss), (_Tp)1, ((_Tp)1) - (__nu * __ss))) / ((_Tp)3)); +# 731 +if (__n == 0) { +# 732 +return __Pi; } else { +# 734 +return __Pi + ((((_Tp)2) * __n) * __comp_ellint_3(__k, __nu)); } +# 735 +} } +# 736 +} +# 737 +} +# 743 +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +namespace __detail { +# 66 +template< class _Tp> _Tp __expint_E1(_Tp); +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 83 +__expint_E1_series(_Tp __x) +# 84 +{ +# 85 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 86 +_Tp __term = ((_Tp)1); +# 87 +_Tp __esum = ((_Tp)0); +# 88 +_Tp __osum = ((_Tp)0); +# 89 +const unsigned __max_iter = (1000); +# 90 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 91 +{ +# 92 +__term *= ((-__x) / __i); +# 93 +if (std::abs(__term) < __eps) { +# 94 +break; } +# 95 +if (__term >= ((_Tp)0)) { +# 96 +__esum += (__term / __i); } else { +# 98 +__osum += (__term / __i); } +# 99 +} +# 101 +return (((-__esum) - __osum) - __numeric_constants< _Tp> ::__gamma_e()) - std::log(__x); +# 103 +} +# 118 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 120 +__expint_E1_asymp(_Tp __x) +# 121 +{ +# 122 +_Tp __term = ((_Tp)1); +# 123 +_Tp __esum = ((_Tp)1); +# 124 +_Tp __osum = ((_Tp)0); +# 125 +const unsigned __max_iter = (1000); +# 126 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 127 +{ +# 128 +_Tp __prev = __term; +# 129 +__term *= ((-__i) / __x); +# 130 +if (std::abs(__term) > std::abs(__prev)) { +# 131 +break; } +# 132 +if (__term >= ((_Tp)0)) { +# 133 +__esum += __term; } else { +# 135 +__osum += __term; } +# 136 +} +# 138 +return (std::exp(-__x) * (__esum + __osum)) / __x; +# 139 +} +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 157 +__expint_En_series(unsigned __n, _Tp __x) +# 158 +{ +# 159 +const unsigned __max_iter = (1000); +# 160 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 161 +const int __nm1 = __n - (1); +# 162 +_Tp __ans = (__nm1 != 0) ? ((_Tp)1) / __nm1 : ((-std::log(__x)) - __numeric_constants< _Tp> ::__gamma_e()); +# 165 +_Tp __fact = ((_Tp)1); +# 166 +for (int __i = 1; __i <= __max_iter; ++__i) +# 167 +{ +# 168 +__fact *= ((-__x) / ((_Tp)__i)); +# 169 +_Tp __del; +# 170 +if (__i != __nm1) { +# 171 +__del = ((-__fact) / ((_Tp)(__i - __nm1))); } else +# 173 +{ +# 174 +_Tp __psi = (-__numeric_constants< _Tp> ::gamma_e()); +# 175 +for (int __ii = 1; __ii <= __nm1; ++__ii) { +# 176 +__psi += (((_Tp)1) / ((_Tp)__ii)); } +# 177 +__del = (__fact * (__psi - std::log(__x))); +# 178 +} +# 179 +__ans += __del; +# 180 +if (std::abs(__del) < (__eps * std::abs(__ans))) { +# 181 +return __ans; } +# 182 +} +# 183 +std::__throw_runtime_error("Series summation failed in __expint_En_series."); +# 185 +} +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 203 +__expint_En_cont_frac(unsigned __n, _Tp __x) +# 204 +{ +# 205 +const unsigned __max_iter = (1000); +# 206 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 207 +const _Tp __fp_min = std::template numeric_limits< _Tp> ::min(); +# 208 +const int __nm1 = __n - (1); +# 209 +_Tp __b = __x + ((_Tp)__n); +# 210 +_Tp __c = ((_Tp)1) / __fp_min; +# 211 +_Tp __d = ((_Tp)1) / __b; +# 212 +_Tp __h = __d; +# 213 +for (unsigned __i = (1); __i <= __max_iter; ++__i) +# 214 +{ +# 215 +_Tp __a = (-((_Tp)(__i * (__nm1 + __i)))); +# 216 +__b += ((_Tp)2); +# 217 +__d = (((_Tp)1) / ((__a * __d) + __b)); +# 218 +__c = (__b + (__a / __c)); +# 219 +const _Tp __del = __c * __d; +# 220 +__h *= __del; +# 221 +if (std::abs(__del - ((_Tp)1)) < __eps) +# 222 +{ +# 223 +const _Tp __ans = __h * std::exp(-__x); +# 224 +return __ans; +# 225 +} +# 226 +} +# 227 +std::__throw_runtime_error("Continued fraction failed in __expint_En_cont_frac."); +# 229 +} +# 246 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 248 +__expint_En_recursion(unsigned __n, _Tp __x) +# 249 +{ +# 250 +_Tp __En; +# 251 +_Tp __E1 = __expint_E1(__x); +# 252 +if (__x < ((_Tp)__n)) +# 253 +{ +# 255 +__En = __E1; +# 256 +for (unsigned __j = (2); __j < __n; ++__j) { +# 257 +__En = ((std::exp(-__x) - (__x * __En)) / ((_Tp)(__j - (1)))); } +# 258 +} else +# 260 +{ +# 262 +__En = ((_Tp)1); +# 263 +const int __N = __n + (20); +# 264 +_Tp __save = ((_Tp)0); +# 265 +for (int __j = __N; __j > 0; --__j) +# 266 +{ +# 267 +__En = ((std::exp(-__x) - (__j * __En)) / __x); +# 268 +if (__j == __n) { +# 269 +__save = __En; } +# 270 +} +# 271 +_Tp __norm = __En / __E1; +# 272 +__En /= __norm; +# 273 +} +# 275 +return __En; +# 276 +} +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 292 +__expint_Ei_series(_Tp __x) +# 293 +{ +# 294 +_Tp __term = ((_Tp)1); +# 295 +_Tp __sum = ((_Tp)0); +# 296 +const unsigned __max_iter = (1000); +# 297 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 298 +{ +# 299 +__term *= (__x / __i); +# 300 +__sum += (__term / __i); +# 301 +if (__term < (std::template numeric_limits< _Tp> ::epsilon() * __sum)) { +# 302 +break; } +# 303 +} +# 305 +return (__numeric_constants< _Tp> ::__gamma_e() + __sum) + std::log(__x); +# 306 +} +# 321 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 323 +__expint_Ei_asymp(_Tp __x) +# 324 +{ +# 325 +_Tp __term = ((_Tp)1); +# 326 +_Tp __sum = ((_Tp)1); +# 327 +const unsigned __max_iter = (1000); +# 328 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 329 +{ +# 330 +_Tp __prev = __term; +# 331 +__term *= (__i / __x); +# 332 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) { +# 333 +break; } +# 334 +if (__term >= __prev) { +# 335 +break; } +# 336 +__sum += __term; +# 337 +} +# 339 +return (std::exp(__x) * __sum) / __x; +# 340 +} +# 354 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 356 +__expint_Ei(_Tp __x) +# 357 +{ +# 358 +if (__x < ((_Tp)0)) { +# 359 +return -__expint_E1(-__x); } else { +# 360 +if (__x < (-std::log(std::template numeric_limits< _Tp> ::epsilon()))) { +# 361 +return __expint_Ei_series(__x); } else { +# 363 +return __expint_Ei_asymp(__x); } } +# 364 +} +# 378 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 380 +__expint_E1(_Tp __x) +# 381 +{ +# 382 +if (__x < ((_Tp)0)) { +# 383 +return -__expint_Ei(-__x); } else { +# 384 +if (__x < ((_Tp)1)) { +# 385 +return __expint_E1_series(__x); } else { +# 386 +if (__x < ((_Tp)100)) { +# 387 +return __expint_En_cont_frac(1, __x); } else { +# 389 +return __expint_E1_asymp(__x); } } } +# 390 +} +# 408 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 410 +__expint_asymp(unsigned __n, _Tp __x) +# 411 +{ +# 412 +_Tp __term = ((_Tp)1); +# 413 +_Tp __sum = ((_Tp)1); +# 414 +for (unsigned __i = (1); __i <= __n; ++__i) +# 415 +{ +# 416 +_Tp __prev = __term; +# 417 +__term *= ((-((__n - __i) + (1))) / __x); +# 418 +if (std::abs(__term) > std::abs(__prev)) { +# 419 +break; } +# 420 +__sum += __term; +# 421 +} +# 423 +return (std::exp(-__x) * __sum) / __x; +# 424 +} +# 442 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 444 +__expint_large_n(unsigned __n, _Tp __x) +# 445 +{ +# 446 +const _Tp __xpn = __x + __n; +# 447 +const _Tp __xpn2 = __xpn * __xpn; +# 448 +_Tp __term = ((_Tp)1); +# 449 +_Tp __sum = ((_Tp)1); +# 450 +for (unsigned __i = (1); __i <= __n; ++__i) +# 451 +{ +# 452 +_Tp __prev = __term; +# 453 +__term *= ((__n - (((2) * (__i - (1))) * __x)) / __xpn2); +# 454 +if (std::abs(__term) < std::template numeric_limits< _Tp> ::epsilon()) { +# 455 +break; } +# 456 +__sum += __term; +# 457 +} +# 459 +return (std::exp(-__x) * __sum) / __xpn; +# 460 +} +# 476 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 478 +__expint(unsigned __n, _Tp __x) +# 479 +{ +# 481 +if (__isnan(__x)) { +# 482 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 483 +if ((__n <= (1)) && (__x == ((_Tp)0))) { +# 484 +return std::template numeric_limits< _Tp> ::infinity(); } else +# 486 +{ +# 487 +_Tp __E0 = std::exp(__x) / __x; +# 488 +if (__n == (0)) { +# 489 +return __E0; } +# 491 +_Tp __E1 = __expint_E1(__x); +# 492 +if (__n == (1)) { +# 493 +return __E1; } +# 495 +if (__x == ((_Tp)0)) { +# 496 +return ((_Tp)1) / (static_cast< _Tp>(__n - (1))); } +# 498 +_Tp __En = __expint_En_recursion(__n, __x); +# 500 +return __En; +# 501 +} } +# 502 +} +# 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> inline _Tp +# 518 +__expint(_Tp __x) +# 519 +{ +# 520 +if (__isnan(__x)) { +# 521 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 523 +return __expint_Ei(__x); } +# 524 +} +# 525 +} +# 531 +} +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +namespace __detail { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 85 +__conf_hyperg_series(_Tp __a, _Tp __c, _Tp __x) +# 86 +{ +# 87 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 89 +_Tp __term = ((_Tp)1); +# 90 +_Tp __Fac = ((_Tp)1); +# 91 +const unsigned __max_iter = (100000); +# 92 +unsigned __i; +# 93 +for (__i = (0); __i < __max_iter; ++__i) +# 94 +{ +# 95 +__term *= (((__a + ((_Tp)__i)) * __x) / ((__c + ((_Tp)__i)) * ((_Tp)((1) + __i)))); +# 97 +if (std::abs(__term) < __eps) +# 98 +{ +# 99 +break; +# 100 +} +# 101 +__Fac += __term; +# 102 +} +# 103 +if (__i == __max_iter) { +# 104 +std::__throw_runtime_error("Series failed to converge in __conf_hyperg_series."); } +# 107 +return __Fac; +# 108 +} +# 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 122 +__conf_hyperg_luke(_Tp __a, _Tp __c, _Tp __xin) +# 123 +{ +# 124 +const _Tp __big = std::pow(std::template numeric_limits< _Tp> ::max(), (_Tp)(0.16L)); +# 125 +const int __nmax = 20000; +# 126 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 127 +const _Tp __x = (-__xin); +# 128 +const _Tp __x3 = (__x * __x) * __x; +# 129 +const _Tp __t0 = __a / __c; +# 130 +const _Tp __t1 = (__a + ((_Tp)1)) / (((_Tp)2) * __c); +# 131 +const _Tp __t2 = (__a + ((_Tp)2)) / (((_Tp)2) * (__c + ((_Tp)1))); +# 132 +_Tp __F = ((_Tp)1); +# 133 +_Tp __prec; +# 135 +_Tp __Bnm3 = ((_Tp)1); +# 136 +_Tp __Bnm2 = ((_Tp)1) + (__t1 * __x); +# 137 +_Tp __Bnm1 = ((_Tp)1) + ((__t2 * __x) * (((_Tp)1) + ((__t1 / ((_Tp)3)) * __x))); +# 139 +_Tp __Anm3 = ((_Tp)1); +# 140 +_Tp __Anm2 = __Bnm2 - (__t0 * __x); +# 141 +_Tp __Anm1 = (__Bnm1 - ((__t0 * (((_Tp)1) + (__t2 * __x))) * __x)) + ((((__t0 * __t1) * (__c / (__c + ((_Tp)1)))) * __x) * __x); +# 144 +int __n = 3; +# 145 +while (1) +# 146 +{ +# 147 +_Tp __npam1 = ((_Tp)(__n - 1)) + __a; +# 148 +_Tp __npcm1 = ((_Tp)(__n - 1)) + __c; +# 149 +_Tp __npam2 = ((_Tp)(__n - 2)) + __a; +# 150 +_Tp __npcm2 = ((_Tp)(__n - 2)) + __c; +# 151 +_Tp __tnm1 = (_Tp)((2 * __n) - 1); +# 152 +_Tp __tnm3 = (_Tp)((2 * __n) - 3); +# 153 +_Tp __tnm5 = (_Tp)((2 * __n) - 5); +# 154 +_Tp __F1 = (((_Tp)(__n - 2)) - __a) / ((((_Tp)2) * __tnm3) * __npcm1); +# 155 +_Tp __F2 = ((((_Tp)__n) + __a) * __npam1) / ((((((_Tp)4) * __tnm1) * __tnm3) * __npcm2) * __npcm1); +# 157 +_Tp __F3 = (((-__npam2) * __npam1) * (((_Tp)(__n - 2)) - __a)) / ((((((((_Tp)8) * __tnm3) * __tnm3) * __tnm5) * (((_Tp)(__n - 3)) + __c)) * __npcm2) * __npcm1); +# 160 +_Tp __E = ((-__npam1) * (((_Tp)(__n - 1)) - __c)) / (((((_Tp)2) * __tnm3) * __npcm2) * __npcm1); +# 163 +_Tp __An = (((((_Tp)1) + (__F1 * __x)) * __Anm1) + (((__E + (__F2 * __x)) * __x) * __Anm2)) + ((__F3 * __x3) * __Anm3); +# 165 +_Tp __Bn = (((((_Tp)1) + (__F1 * __x)) * __Bnm1) + (((__E + (__F2 * __x)) * __x) * __Bnm2)) + ((__F3 * __x3) * __Bnm3); +# 167 +_Tp __r = __An / __Bn; +# 169 +__prec = std::abs((__F - __r) / __F); +# 170 +__F = __r; +# 172 +if ((__prec < __eps) || (__n > __nmax)) { +# 173 +break; } +# 175 +if ((std::abs(__An) > __big) || (std::abs(__Bn) > __big)) +# 176 +{ +# 177 +__An /= __big; +# 178 +__Bn /= __big; +# 179 +__Anm1 /= __big; +# 180 +__Bnm1 /= __big; +# 181 +__Anm2 /= __big; +# 182 +__Bnm2 /= __big; +# 183 +__Anm3 /= __big; +# 184 +__Bnm3 /= __big; +# 185 +} else { +# 186 +if ((std::abs(__An) < (((_Tp)1) / __big)) || (std::abs(__Bn) < (((_Tp)1) / __big))) +# 188 +{ +# 189 +__An *= __big; +# 190 +__Bn *= __big; +# 191 +__Anm1 *= __big; +# 192 +__Bnm1 *= __big; +# 193 +__Anm2 *= __big; +# 194 +__Bnm2 *= __big; +# 195 +__Anm3 *= __big; +# 196 +__Bnm3 *= __big; +# 197 +} } +# 199 +++__n; +# 200 +__Bnm3 = __Bnm2; +# 201 +__Bnm2 = __Bnm1; +# 202 +__Bnm1 = __Bn; +# 203 +__Anm3 = __Anm2; +# 204 +__Anm2 = __Anm1; +# 205 +__Anm1 = __An; +# 206 +} +# 208 +if (__n >= __nmax) { +# 209 +std::__throw_runtime_error("Iteration failed to converge in __conf_hyperg_luke."); } +# 212 +return __F; +# 213 +} +# 227 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 229 +__conf_hyperg(_Tp __a, _Tp __c, _Tp __x) +# 230 +{ +# 232 +const _Tp __c_nint = std::nearbyint(__c); +# 236 +if ((__isnan(__a) || __isnan(__c)) || __isnan(__x)) { +# 237 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 238 +if ((__c_nint == __c) && (__c_nint <= 0)) { +# 239 +return std::template numeric_limits< _Tp> ::infinity(); } else { +# 240 +if (__a == ((_Tp)0)) { +# 241 +return (_Tp)1; } else { +# 242 +if (__c == __a) { +# 243 +return std::exp(__x); } else { +# 244 +if (__x < ((_Tp)0)) { +# 245 +return __conf_hyperg_luke(__a, __c, __x); } else { +# 247 +return __conf_hyperg_series(__a, __c, __x); } } } } } +# 248 +} +# 271 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 273 +__hyperg_series(_Tp __a, _Tp __b, _Tp __c, _Tp __x) +# 274 +{ +# 275 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 277 +_Tp __term = ((_Tp)1); +# 278 +_Tp __Fabc = ((_Tp)1); +# 279 +const unsigned __max_iter = (100000); +# 280 +unsigned __i; +# 281 +for (__i = (0); __i < __max_iter; ++__i) +# 282 +{ +# 283 +__term *= ((((__a + ((_Tp)__i)) * (__b + ((_Tp)__i))) * __x) / ((__c + ((_Tp)__i)) * ((_Tp)((1) + __i)))); +# 285 +if (std::abs(__term) < __eps) +# 286 +{ +# 287 +break; +# 288 +} +# 289 +__Fabc += __term; +# 290 +} +# 291 +if (__i == __max_iter) { +# 292 +std::__throw_runtime_error("Series failed to converge in __hyperg_series."); } +# 295 +return __Fabc; +# 296 +} +# 304 +template< class _Tp> _Tp +# 306 +__hyperg_luke(_Tp __a, _Tp __b, _Tp __c, _Tp __xin) +# 307 +{ +# 308 +const _Tp __big = std::pow(std::template numeric_limits< _Tp> ::max(), (_Tp)(0.16L)); +# 309 +const int __nmax = 20000; +# 310 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 311 +const _Tp __x = (-__xin); +# 312 +const _Tp __x3 = (__x * __x) * __x; +# 313 +const _Tp __t0 = (__a * __b) / __c; +# 314 +const _Tp __t1 = ((__a + ((_Tp)1)) * (__b + ((_Tp)1))) / (((_Tp)2) * __c); +# 315 +const _Tp __t2 = ((__a + ((_Tp)2)) * (__b + ((_Tp)2))) / (((_Tp)2) * (__c + ((_Tp)1))); +# 318 +_Tp __F = ((_Tp)1); +# 320 +_Tp __Bnm3 = ((_Tp)1); +# 321 +_Tp __Bnm2 = ((_Tp)1) + (__t1 * __x); +# 322 +_Tp __Bnm1 = ((_Tp)1) + ((__t2 * __x) * (((_Tp)1) + ((__t1 / ((_Tp)3)) * __x))); +# 324 +_Tp __Anm3 = ((_Tp)1); +# 325 +_Tp __Anm2 = __Bnm2 - (__t0 * __x); +# 326 +_Tp __Anm1 = (__Bnm1 - ((__t0 * (((_Tp)1) + (__t2 * __x))) * __x)) + ((((__t0 * __t1) * (__c / (__c + ((_Tp)1)))) * __x) * __x); +# 329 +int __n = 3; +# 330 +while (1) +# 331 +{ +# 332 +const _Tp __npam1 = ((_Tp)(__n - 1)) + __a; +# 333 +const _Tp __npbm1 = ((_Tp)(__n - 1)) + __b; +# 334 +const _Tp __npcm1 = ((_Tp)(__n - 1)) + __c; +# 335 +const _Tp __npam2 = ((_Tp)(__n - 2)) + __a; +# 336 +const _Tp __npbm2 = ((_Tp)(__n - 2)) + __b; +# 337 +const _Tp __npcm2 = ((_Tp)(__n - 2)) + __c; +# 338 +const _Tp __tnm1 = (_Tp)((2 * __n) - 1); +# 339 +const _Tp __tnm3 = (_Tp)((2 * __n) - 3); +# 340 +const _Tp __tnm5 = (_Tp)((2 * __n) - 5); +# 341 +const _Tp __n2 = __n * __n; +# 342 +const _Tp __F1 = (((((((_Tp)3) * __n2) + (((__a + __b) - ((_Tp)6)) * __n)) + ((_Tp)2)) - (__a * __b)) - (((_Tp)2) * (__a + __b))) / ((((_Tp)2) * __tnm3) * __npcm1); +# 345 +const _Tp __F2 = (((-((((((_Tp)3) * __n2) - (((__a + __b) + ((_Tp)6)) * __n)) + ((_Tp)2)) - (__a * __b))) * __npam1) * __npbm1) / ((((((_Tp)4) * __tnm1) * __tnm3) * __npcm2) * __npcm1); +# 348 +const _Tp __F3 = (((((__npam2 * __npam1) * __npbm2) * __npbm1) * (((_Tp)(__n - 2)) - __a)) * (((_Tp)(__n - 2)) - __b)) / ((((((((_Tp)8) * __tnm3) * __tnm3) * __tnm5) * (((_Tp)(__n - 3)) + __c)) * __npcm2) * __npcm1); +# 352 +const _Tp __E = (((-__npam1) * __npbm1) * (((_Tp)(__n - 1)) - __c)) / (((((_Tp)2) * __tnm3) * __npcm2) * __npcm1); +# 355 +_Tp __An = (((((_Tp)1) + (__F1 * __x)) * __Anm1) + (((__E + (__F2 * __x)) * __x) * __Anm2)) + ((__F3 * __x3) * __Anm3); +# 357 +_Tp __Bn = (((((_Tp)1) + (__F1 * __x)) * __Bnm1) + (((__E + (__F2 * __x)) * __x) * __Bnm2)) + ((__F3 * __x3) * __Bnm3); +# 359 +const _Tp __r = __An / __Bn; +# 361 +const _Tp __prec = std::abs((__F - __r) / __F); +# 362 +__F = __r; +# 364 +if ((__prec < __eps) || (__n > __nmax)) { +# 365 +break; } +# 367 +if ((std::abs(__An) > __big) || (std::abs(__Bn) > __big)) +# 368 +{ +# 369 +__An /= __big; +# 370 +__Bn /= __big; +# 371 +__Anm1 /= __big; +# 372 +__Bnm1 /= __big; +# 373 +__Anm2 /= __big; +# 374 +__Bnm2 /= __big; +# 375 +__Anm3 /= __big; +# 376 +__Bnm3 /= __big; +# 377 +} else { +# 378 +if ((std::abs(__An) < (((_Tp)1) / __big)) || (std::abs(__Bn) < (((_Tp)1) / __big))) +# 380 +{ +# 381 +__An *= __big; +# 382 +__Bn *= __big; +# 383 +__Anm1 *= __big; +# 384 +__Bnm1 *= __big; +# 385 +__Anm2 *= __big; +# 386 +__Bnm2 *= __big; +# 387 +__Anm3 *= __big; +# 388 +__Bnm3 *= __big; +# 389 +} } +# 391 +++__n; +# 392 +__Bnm3 = __Bnm2; +# 393 +__Bnm2 = __Bnm1; +# 394 +__Bnm1 = __Bn; +# 395 +__Anm3 = __Anm2; +# 396 +__Anm2 = __Anm1; +# 397 +__Anm1 = __An; +# 398 +} +# 400 +if (__n >= __nmax) { +# 401 +std::__throw_runtime_error("Iteration failed to converge in __hyperg_luke."); } +# 404 +return __F; +# 405 +} +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 440 +__hyperg_reflect(_Tp __a, _Tp __b, _Tp __c, _Tp __x) +# 441 +{ +# 442 +const _Tp __d = (__c - __a) - __b; +# 443 +const int __intd = std::floor(__d + ((_Tp)(0.5L))); +# 444 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 445 +const _Tp __toler = ((_Tp)1000) * __eps; +# 446 +const _Tp __log_max = std::log(std::template numeric_limits< _Tp> ::max()); +# 447 +const bool __d_integer = std::abs(__d - __intd) < __toler; +# 449 +if (__d_integer) +# 450 +{ +# 451 +const _Tp __ln_omx = std::log(((_Tp)1) - __x); +# 452 +const _Tp __ad = std::abs(__d); +# 453 +_Tp __F1, __F2; +# 455 +_Tp __d1, __d2; +# 456 +if (__d >= ((_Tp)0)) +# 457 +{ +# 458 +__d1 = __d; +# 459 +__d2 = ((_Tp)0); +# 460 +} else +# 462 +{ +# 463 +__d1 = ((_Tp)0); +# 464 +__d2 = __d; +# 465 +} +# 467 +const _Tp __lng_c = __log_gamma(__c); +# 470 +if (__ad < __eps) +# 471 +{ +# 473 +__F1 = ((_Tp)0); +# 474 +} else +# 476 +{ +# 478 +bool __ok_d1 = true; +# 479 +_Tp __lng_ad, __lng_ad1, __lng_bd1; +# 480 +try +# 481 +{ +# 482 +__lng_ad = __log_gamma(__ad); +# 483 +__lng_ad1 = __log_gamma(__a + __d1); +# 484 +__lng_bd1 = __log_gamma(__b + __d1); +# 485 +} +# 486 +catch (...) +# 487 +{ +# 488 +__ok_d1 = false; +# 489 +} +# 491 +if (__ok_d1) +# 492 +{ +# 496 +_Tp __sum1 = ((_Tp)1); +# 497 +_Tp __term = ((_Tp)1); +# 498 +_Tp __ln_pre1 = (((__lng_ad + __lng_c) + (__d2 * __ln_omx)) - __lng_ad1) - __lng_bd1; +# 503 +for (int __i = 1; __i < __ad; ++__i) +# 504 +{ +# 505 +const int __j = __i - 1; +# 506 +__term *= ((((((__a + __d2) + __j) * ((__b + __d2) + __j)) / ((((_Tp)1) + __d2) + __j)) / __i) * (((_Tp)1) - __x)); +# 508 +__sum1 += __term; +# 509 +} +# 511 +if (__ln_pre1 > __log_max) { +# 512 +std::__throw_runtime_error("Overflow of gamma functions in __hyperg_luke."); } else { +# 515 +__F1 = (std::exp(__ln_pre1) * __sum1); } +# 516 +} else +# 518 +{ +# 521 +__F1 = ((_Tp)0); +# 522 +} +# 523 +} +# 526 +bool __ok_d2 = true; +# 527 +_Tp __lng_ad2, __lng_bd2; +# 528 +try +# 529 +{ +# 530 +__lng_ad2 = __log_gamma(__a + __d2); +# 531 +__lng_bd2 = __log_gamma(__b + __d2); +# 532 +} +# 533 +catch (...) +# 534 +{ +# 535 +__ok_d2 = false; +# 536 +} +# 538 +if (__ok_d2) +# 539 +{ +# 542 +const int __maxiter = 2000; +# 543 +const _Tp __psi_1 = (-__numeric_constants< _Tp> ::__gamma_e()); +# 544 +const _Tp __psi_1pd = __psi(((_Tp)1) + __ad); +# 545 +const _Tp __psi_apd1 = __psi(__a + __d1); +# 546 +const _Tp __psi_bpd1 = __psi(__b + __d1); +# 548 +_Tp __psi_term = (((__psi_1 + __psi_1pd) - __psi_apd1) - __psi_bpd1) - __ln_omx; +# 550 +_Tp __fact = ((_Tp)1); +# 551 +_Tp __sum2 = __psi_term; +# 552 +_Tp __ln_pre2 = ((__lng_c + (__d1 * __ln_omx)) - __lng_ad2) - __lng_bd2; +# 556 +int __j; +# 557 +for (__j = 1; __j < __maxiter; ++__j) +# 558 +{ +# 561 +const _Tp __term1 = (((_Tp)1) / ((_Tp)__j)) + (((_Tp)1) / (__ad + __j)); +# 563 +const _Tp __term2 = (((_Tp)1) / ((__a + __d1) + ((_Tp)(__j - 1)))) + (((_Tp)1) / ((__b + __d1) + ((_Tp)(__j - 1)))); +# 565 +__psi_term += (__term1 - __term2); +# 566 +__fact *= (((((__a + __d1) + ((_Tp)(__j - 1))) * ((__b + __d1) + ((_Tp)(__j - 1)))) / ((__ad + __j) * __j)) * (((_Tp)1) - __x)); +# 569 +const _Tp __delta = __fact * __psi_term; +# 570 +__sum2 += __delta; +# 571 +if (std::abs(__delta) < (__eps * std::abs(__sum2))) { +# 572 +break; } +# 573 +} +# 574 +if (__j == __maxiter) { +# 575 +std::__throw_runtime_error("Sum F2 failed to converge in __hyperg_reflect"); } +# 578 +if (__sum2 == ((_Tp)0)) { +# 579 +__F2 = ((_Tp)0); } else { +# 581 +__F2 = (std::exp(__ln_pre2) * __sum2); } +# 582 +} else +# 584 +{ +# 587 +__F2 = ((_Tp)0); +# 588 +} +# 590 +const _Tp __sgn_2 = (((__intd % 2) == 1) ? -((_Tp)1) : ((_Tp)1)); +# 591 +const _Tp __F = __F1 + (__sgn_2 * __F2); +# 593 +return __F; +# 594 +} else +# 596 +{ +# 601 +bool __ok1 = true; +# 602 +_Tp __sgn_g1ca = ((_Tp)0), __ln_g1ca = ((_Tp)0); +# 603 +_Tp __sgn_g1cb = ((_Tp)0), __ln_g1cb = ((_Tp)0); +# 604 +try +# 605 +{ +# 606 +__sgn_g1ca = __log_gamma_sign(__c - __a); +# 607 +__ln_g1ca = __log_gamma(__c - __a); +# 608 +__sgn_g1cb = __log_gamma_sign(__c - __b); +# 609 +__ln_g1cb = __log_gamma(__c - __b); +# 610 +} +# 611 +catch (...) +# 612 +{ +# 613 +__ok1 = false; +# 614 +} +# 616 +bool __ok2 = true; +# 617 +_Tp __sgn_g2a = ((_Tp)0), __ln_g2a = ((_Tp)0); +# 618 +_Tp __sgn_g2b = ((_Tp)0), __ln_g2b = ((_Tp)0); +# 619 +try +# 620 +{ +# 621 +__sgn_g2a = __log_gamma_sign(__a); +# 622 +__ln_g2a = __log_gamma(__a); +# 623 +__sgn_g2b = __log_gamma_sign(__b); +# 624 +__ln_g2b = __log_gamma(__b); +# 625 +} +# 626 +catch (...) +# 627 +{ +# 628 +__ok2 = false; +# 629 +} +# 631 +const _Tp __sgn_gc = __log_gamma_sign(__c); +# 632 +const _Tp __ln_gc = __log_gamma(__c); +# 633 +const _Tp __sgn_gd = __log_gamma_sign(__d); +# 634 +const _Tp __ln_gd = __log_gamma(__d); +# 635 +const _Tp __sgn_gmd = __log_gamma_sign(-__d); +# 636 +const _Tp __ln_gmd = __log_gamma(-__d); +# 638 +const _Tp __sgn1 = ((__sgn_gc * __sgn_gd) * __sgn_g1ca) * __sgn_g1cb; +# 639 +const _Tp __sgn2 = ((__sgn_gc * __sgn_gmd) * __sgn_g2a) * __sgn_g2b; +# 641 +_Tp __pre1, __pre2; +# 642 +if (__ok1 && __ok2) +# 643 +{ +# 644 +_Tp __ln_pre1 = ((__ln_gc + __ln_gd) - __ln_g1ca) - __ln_g1cb; +# 645 +_Tp __ln_pre2 = (((__ln_gc + __ln_gmd) - __ln_g2a) - __ln_g2b) + (__d * std::log(((_Tp)1) - __x)); +# 647 +if ((__ln_pre1 < __log_max) && (__ln_pre2 < __log_max)) +# 648 +{ +# 649 +__pre1 = std::exp(__ln_pre1); +# 650 +__pre2 = std::exp(__ln_pre2); +# 651 +__pre1 *= __sgn1; +# 652 +__pre2 *= __sgn2; +# 653 +} else +# 655 +{ +# 656 +std::__throw_runtime_error("Overflow of gamma functions in __hyperg_reflect"); +# 658 +} +# 659 +} else { +# 660 +if (__ok1 && (!__ok2)) +# 661 +{ +# 662 +_Tp __ln_pre1 = ((__ln_gc + __ln_gd) - __ln_g1ca) - __ln_g1cb; +# 663 +if (__ln_pre1 < __log_max) +# 664 +{ +# 665 +__pre1 = std::exp(__ln_pre1); +# 666 +__pre1 *= __sgn1; +# 667 +__pre2 = ((_Tp)0); +# 668 +} else +# 670 +{ +# 671 +std::__throw_runtime_error("Overflow of gamma functions in __hyperg_reflect"); +# 673 +} +# 674 +} else { +# 675 +if ((!__ok1) && __ok2) +# 676 +{ +# 677 +_Tp __ln_pre2 = (((__ln_gc + __ln_gmd) - __ln_g2a) - __ln_g2b) + (__d * std::log(((_Tp)1) - __x)); +# 679 +if (__ln_pre2 < __log_max) +# 680 +{ +# 681 +__pre1 = ((_Tp)0); +# 682 +__pre2 = std::exp(__ln_pre2); +# 683 +__pre2 *= __sgn2; +# 684 +} else +# 686 +{ +# 687 +std::__throw_runtime_error("Overflow of gamma functions in __hyperg_reflect"); +# 689 +} +# 690 +} else +# 692 +{ +# 693 +__pre1 = ((_Tp)0); +# 694 +__pre2 = ((_Tp)0); +# 695 +std::__throw_runtime_error("Underflow of gamma functions in __hyperg_reflect"); +# 697 +} } } +# 699 +const _Tp __F1 = __hyperg_series(__a, __b, ((_Tp)1) - __d, ((_Tp)1) - __x); +# 701 +const _Tp __F2 = __hyperg_series(__c - __a, __c - __b, ((_Tp)1) + __d, ((_Tp)1) - __x); +# 704 +const _Tp __F = (__pre1 * __F1) + (__pre2 * __F2); +# 706 +return __F; +# 707 +} +# 708 +} +# 728 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 730 +__hyperg(_Tp __a, _Tp __b, _Tp __c, _Tp __x) +# 731 +{ +# 733 +const _Tp __a_nint = std::nearbyint(__a); +# 734 +const _Tp __b_nint = std::nearbyint(__b); +# 735 +const _Tp __c_nint = std::nearbyint(__c); +# 741 +const _Tp __toler = ((_Tp)1000) * std::template numeric_limits< _Tp> ::epsilon(); +# 742 +if (std::abs(__x) >= ((_Tp)1)) { +# 743 +std::__throw_domain_error("Argument outside unit circle in __hyperg."); } else { +# 745 +if (((__isnan(__a) || __isnan(__b)) || __isnan(__c)) || __isnan(__x)) { +# 747 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 748 +if ((__c_nint == __c) && (__c_nint <= ((_Tp)0))) { +# 749 +return std::template numeric_limits< _Tp> ::infinity(); } else { +# 750 +if ((std::abs(__c - __b) < __toler) || (std::abs(__c - __a) < __toler)) { +# 751 +return std::pow(((_Tp)1) - __x, (__c - __a) - __b); } else { +# 752 +if ((__a >= ((_Tp)0)) && (__b >= ((_Tp)0)) && (__c >= ((_Tp)0)) && (__x >= ((_Tp)0)) && (__x < ((_Tp)(0.995L)))) { +# 754 +return __hyperg_series(__a, __b, __c, __x); } else { +# 755 +if ((std::abs(__a) < ((_Tp)10)) && (std::abs(__b) < ((_Tp)10))) +# 756 +{ +# 759 +if ((__a < ((_Tp)0)) && (std::abs(__a - __a_nint) < __toler)) { +# 760 +return __hyperg_series(__a_nint, __b, __c, __x); } else { +# 761 +if ((__b < ((_Tp)0)) && (std::abs(__b - __b_nint) < __toler)) { +# 762 +return __hyperg_series(__a, __b_nint, __c, __x); } else { +# 763 +if (__x < (-((_Tp)(0.25L)))) { +# 764 +return __hyperg_luke(__a, __b, __c, __x); } else { +# 765 +if (__x < ((_Tp)(0.5L))) { +# 766 +return __hyperg_series(__a, __b, __c, __x); } else { +# 768 +if (std::abs(__c) > ((_Tp)10)) { +# 769 +return __hyperg_series(__a, __b, __c, __x); } else { +# 771 +return __hyperg_reflect(__a, __b, __c, __x); } } } } } +# 772 +} else { +# 774 +return __hyperg_luke(__a, __b, __c, __x); } } } } } } +# 775 +} +# 776 +} +# 783 +} +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +namespace __detail { +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +template< class _Tp> _Tp +# 82 +__poly_legendre_p(unsigned __l, _Tp __x) +# 83 +{ +# 85 +if (__isnan(__x)) { +# 86 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 87 +if (__x == (+((_Tp)1))) { +# 88 +return +((_Tp)1); } else { +# 89 +if (__x == (-((_Tp)1))) { +# 90 +return (((__l % (2)) == (1)) ? -((_Tp)1) : (+((_Tp)1))); } else +# 92 +{ +# 93 +_Tp __p_lm2 = ((_Tp)1); +# 94 +if (__l == (0)) { +# 95 +return __p_lm2; } +# 97 +_Tp __p_lm1 = __x; +# 98 +if (__l == (1)) { +# 99 +return __p_lm1; } +# 101 +_Tp __p_l = (0); +# 102 +for (unsigned __ll = (2); __ll <= __l; ++__ll) +# 103 +{ +# 106 +__p_l = ((((((_Tp)2) * __x) * __p_lm1) - __p_lm2) - (((__x * __p_lm1) - __p_lm2) / ((_Tp)__ll))); +# 108 +__p_lm2 = __p_lm1; +# 109 +__p_lm1 = __p_l; +# 110 +} +# 112 +return __p_l; +# 113 +} } } +# 114 +} +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +template< class _Tp> _Tp +# 138 +__assoc_legendre_p(unsigned __l, unsigned __m, _Tp __x, _Tp +# 139 +__phase = (_Tp)(+1)) +# 140 +{ +# 142 +if (__m > __l) { +# 143 +return (_Tp)0; } else { +# 144 +if (__isnan(__x)) { +# 145 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 146 +if (__m == (0)) { +# 147 +return __poly_legendre_p(__l, __x); } else +# 149 +{ +# 150 +_Tp __p_mm = ((_Tp)1); +# 151 +if (__m > (0)) +# 152 +{ +# 155 +_Tp __root = std::sqrt(((_Tp)1) - __x) * std::sqrt(((_Tp)1) + __x); +# 156 +_Tp __fact = ((_Tp)1); +# 157 +for (unsigned __i = (1); __i <= __m; ++__i) +# 158 +{ +# 159 +__p_mm *= ((__phase * __fact) * __root); +# 160 +__fact += ((_Tp)2); +# 161 +} +# 162 +} +# 163 +if (__l == __m) { +# 164 +return __p_mm; } +# 166 +_Tp __p_mp1m = (((_Tp)(((2) * __m) + (1))) * __x) * __p_mm; +# 167 +if (__l == (__m + (1))) { +# 168 +return __p_mp1m; } +# 170 +_Tp __p_lm2m = __p_mm; +# 171 +_Tp __P_lm1m = __p_mp1m; +# 172 +_Tp __p_lm = ((_Tp)0); +# 173 +for (unsigned __j = __m + (2); __j <= __l; ++__j) +# 174 +{ +# 175 +__p_lm = ((((((_Tp)(((2) * __j) - (1))) * __x) * __P_lm1m) - (((_Tp)((__j + __m) - (1))) * __p_lm2m)) / ((_Tp)(__j - __m))); +# 177 +__p_lm2m = __P_lm1m; +# 178 +__P_lm1m = __p_lm; +# 179 +} +# 181 +return __p_lm; +# 182 +} } } +# 183 +} +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +template< class _Tp> _Tp +# 216 +__sph_legendre(unsigned __l, unsigned __m, _Tp __theta) +# 217 +{ +# 218 +if (__isnan(__theta)) { +# 219 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } +# 221 +const _Tp __x = std::cos(__theta); +# 223 +if (__m > __l) { +# 224 +return (_Tp)0; } else { +# 225 +if (__m == (0)) +# 226 +{ +# 227 +_Tp __P = __poly_legendre_p(__l, __x); +# 228 +_Tp __fact = std::sqrt(((_Tp)(((2) * __l) + (1))) / (((_Tp)4) * __numeric_constants< _Tp> ::__pi())); +# 230 +__P *= __fact; +# 231 +return __P; +# 232 +} else { +# 233 +if ((__x == ((_Tp)1)) || (__x == (-((_Tp)1)))) +# 234 +{ +# 236 +return (_Tp)0; +# 237 +} else +# 239 +{ +# 245 +const _Tp __sgn = ((__m % (2)) == (1)) ? -((_Tp)1) : ((_Tp)1); +# 246 +const _Tp __y_mp1m_factor = __x * std::sqrt((_Tp)(((2) * __m) + (3))); +# 248 +const _Tp __lncirc = std::log1p((-__x) * __x); +# 254 +const _Tp __lnpoch = std::lgamma((_Tp)(__m + ((_Tp)(0.5L)))) - std::lgamma((_Tp)__m); +# 260 +const _Tp __lnpre_val = ((-((_Tp)(0.25L))) * __numeric_constants< _Tp> ::__lnpi()) + (((_Tp)(0.5L)) * (__lnpoch + (__m * __lncirc))); +# 263 +const _Tp __sr = std::sqrt((((_Tp)2) + (((_Tp)1) / __m)) / (((_Tp)4) * __numeric_constants< _Tp> ::__pi())); +# 265 +_Tp __y_mm = (__sgn * __sr) * std::exp(__lnpre_val); +# 266 +_Tp __y_mp1m = __y_mp1m_factor * __y_mm; +# 268 +if (__l == __m) { +# 269 +return __y_mm; } else { +# 270 +if (__l == (__m + (1))) { +# 271 +return __y_mp1m; } else +# 273 +{ +# 274 +_Tp __y_lm = ((_Tp)0); +# 277 +for (unsigned __ll = __m + (2); __ll <= __l; ++__ll) +# 278 +{ +# 279 +const _Tp __rat1 = ((_Tp)(__ll - __m)) / ((_Tp)(__ll + __m)); +# 280 +const _Tp __rat2 = ((_Tp)((__ll - __m) - (1))) / ((_Tp)((__ll + __m) - (1))); +# 281 +const _Tp __fact1 = std::sqrt((__rat1 * ((_Tp)(((2) * __ll) + (1)))) * ((_Tp)(((2) * __ll) - (1)))); +# 283 +const _Tp __fact2 = std::sqrt(((__rat1 * __rat2) * ((_Tp)(((2) * __ll) + (1)))) / ((_Tp)(((2) * __ll) - (3)))); +# 285 +__y_lm = ((((__x * __y_mp1m) * __fact1) - ((((__ll + __m) - (1)) * __y_mm) * __fact2)) / ((_Tp)(__ll - __m))); +# 287 +__y_mm = __y_mp1m; +# 288 +__y_mp1m = __y_lm; +# 289 +} +# 291 +return __y_lm; +# 292 +} } +# 293 +} } } +# 294 +} +# 295 +} +# 302 +} +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +namespace __detail { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> void +# 85 +__bessel_ik(_Tp __nu, _Tp __x, _Tp & +# 86 +__Inu, _Tp &__Knu, _Tp &__Ipnu, _Tp &__Kpnu) +# 87 +{ +# 88 +if (__x == ((_Tp)0)) +# 89 +{ +# 90 +if (__nu == ((_Tp)0)) +# 91 +{ +# 92 +__Inu = ((_Tp)1); +# 93 +__Ipnu = ((_Tp)0); +# 94 +} else { +# 95 +if (__nu == ((_Tp)1)) +# 96 +{ +# 97 +__Inu = ((_Tp)0); +# 98 +__Ipnu = ((_Tp)(0.5L)); +# 99 +} else +# 101 +{ +# 102 +__Inu = ((_Tp)0); +# 103 +__Ipnu = ((_Tp)0); +# 104 +} } +# 105 +__Knu = std::template numeric_limits< _Tp> ::infinity(); +# 106 +__Kpnu = (-std::template numeric_limits< _Tp> ::infinity()); +# 107 +return; +# 108 +} +# 110 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 111 +const _Tp __fp_min = ((_Tp)10) * std::template numeric_limits< _Tp> ::epsilon(); +# 112 +const int __max_iter = 15000; +# 113 +const _Tp __x_min = ((_Tp)2); +# 115 +const int __nl = static_cast< int>(__nu + ((_Tp)(0.5L))); +# 117 +const _Tp __mu = __nu - __nl; +# 118 +const _Tp __mu2 = __mu * __mu; +# 119 +const _Tp __xi = ((_Tp)1) / __x; +# 120 +const _Tp __xi2 = ((_Tp)2) * __xi; +# 121 +_Tp __h = __nu * __xi; +# 122 +if (__h < __fp_min) { +# 123 +__h = __fp_min; } +# 124 +_Tp __b = __xi2 * __nu; +# 125 +_Tp __d = ((_Tp)0); +# 126 +_Tp __c = __h; +# 127 +int __i; +# 128 +for (__i = 1; __i <= __max_iter; ++__i) +# 129 +{ +# 130 +__b += __xi2; +# 131 +__d = (((_Tp)1) / (__b + __d)); +# 132 +__c = (__b + (((_Tp)1) / __c)); +# 133 +const _Tp __del = __c * __d; +# 134 +__h *= __del; +# 135 +if (std::abs(__del - ((_Tp)1)) < __eps) { +# 136 +break; } +# 137 +} +# 138 +if (__i > __max_iter) { +# 139 +std::__throw_runtime_error("Argument x too large in __bessel_ik; try asymptotic expansion."); } +# 142 +_Tp __Inul = __fp_min; +# 143 +_Tp __Ipnul = __h * __Inul; +# 144 +_Tp __Inul1 = __Inul; +# 145 +_Tp __Ipnu1 = __Ipnul; +# 146 +_Tp __fact = __nu * __xi; +# 147 +for (int __l = __nl; __l >= 1; --__l) +# 148 +{ +# 149 +const _Tp __Inutemp = (__fact * __Inul) + __Ipnul; +# 150 +__fact -= __xi; +# 151 +__Ipnul = ((__fact * __Inutemp) + __Inul); +# 152 +__Inul = __Inutemp; +# 153 +} +# 154 +_Tp __f = __Ipnul / __Inul; +# 155 +_Tp __Kmu, __Knu1; +# 156 +if (__x < __x_min) +# 157 +{ +# 158 +const _Tp __x2 = __x / ((_Tp)2); +# 159 +const _Tp __pimu = __numeric_constants< _Tp> ::__pi() * __mu; +# 160 +const _Tp __fact = (std::abs(__pimu) < __eps) ? (_Tp)1 : (__pimu / std::sin(__pimu)); +# 162 +_Tp __d = (-std::log(__x2)); +# 163 +_Tp __e = __mu * __d; +# 164 +const _Tp __fact2 = (std::abs(__e) < __eps) ? (_Tp)1 : (std::sinh(__e) / __e); +# 166 +_Tp __gam1, __gam2, __gampl, __gammi; +# 167 +__gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); +# 168 +_Tp __ff = __fact * ((__gam1 * std::cosh(__e)) + ((__gam2 * __fact2) * __d)); +# 170 +_Tp __sum = __ff; +# 171 +__e = std::exp(__e); +# 172 +_Tp __p = __e / (((_Tp)2) * __gampl); +# 173 +_Tp __q = ((_Tp)1) / ((((_Tp)2) * __e) * __gammi); +# 174 +_Tp __c = ((_Tp)1); +# 175 +__d = (__x2 * __x2); +# 176 +_Tp __sum1 = __p; +# 177 +int __i; +# 178 +for (__i = 1; __i <= __max_iter; ++__i) +# 179 +{ +# 180 +__ff = ((((__i * __ff) + __p) + __q) / ((__i * __i) - __mu2)); +# 181 +__c *= (__d / __i); +# 182 +__p /= (__i - __mu); +# 183 +__q /= (__i + __mu); +# 184 +const _Tp __del = __c * __ff; +# 185 +__sum += __del; +# 186 +const _Tp __del1 = __c * (__p - (__i * __ff)); +# 187 +__sum1 += __del1; +# 188 +if (std::abs(__del) < (__eps * std::abs(__sum))) { +# 189 +break; } +# 190 +} +# 191 +if (__i > __max_iter) { +# 192 +std::__throw_runtime_error("Bessel k series failed to converge in __bessel_ik."); } +# 194 +__Kmu = __sum; +# 195 +__Knu1 = (__sum1 * __xi2); +# 196 +} else +# 198 +{ +# 199 +_Tp __b = ((_Tp)2) * (((_Tp)1) + __x); +# 200 +_Tp __d = ((_Tp)1) / __b; +# 201 +_Tp __delh = __d; +# 202 +_Tp __h = __delh; +# 203 +_Tp __q1 = ((_Tp)0); +# 204 +_Tp __q2 = ((_Tp)1); +# 205 +_Tp __a1 = ((_Tp)(0.25L)) - __mu2; +# 206 +_Tp __q = __c = __a1; +# 207 +_Tp __a = (-__a1); +# 208 +_Tp __s = ((_Tp)1) + (__q * __delh); +# 209 +int __i; +# 210 +for (__i = 2; __i <= __max_iter; ++__i) +# 211 +{ +# 212 +__a -= (2 * (__i - 1)); +# 213 +__c = (((-__a) * __c) / __i); +# 214 +const _Tp __qnew = (__q1 - (__b * __q2)) / __a; +# 215 +__q1 = __q2; +# 216 +__q2 = __qnew; +# 217 +__q += (__c * __qnew); +# 218 +__b += ((_Tp)2); +# 219 +__d = (((_Tp)1) / (__b + (__a * __d))); +# 220 +__delh = (((__b * __d) - ((_Tp)1)) * __delh); +# 221 +__h += __delh; +# 222 +const _Tp __dels = __q * __delh; +# 223 +__s += __dels; +# 224 +if (std::abs(__dels / __s) < __eps) { +# 225 +break; } +# 226 +} +# 227 +if (__i > __max_iter) { +# 228 +std::__throw_runtime_error("Steed\'s method failed in __bessel_ik."); } +# 230 +__h = (__a1 * __h); +# 231 +__Kmu = ((std::sqrt(__numeric_constants< _Tp> ::__pi() / (((_Tp)2) * __x)) * std::exp(-__x)) / __s); +# 233 +__Knu1 = ((__Kmu * (((__mu + __x) + ((_Tp)(0.5L))) - __h)) * __xi); +# 234 +} +# 236 +_Tp __Kpmu = ((__mu * __xi) * __Kmu) - __Knu1; +# 237 +_Tp __Inumu = __xi / ((__f * __Kmu) - __Kpmu); +# 238 +__Inu = ((__Inumu * __Inul1) / __Inul); +# 239 +__Ipnu = ((__Inumu * __Ipnu1) / __Inul); +# 240 +for (__i = 1; __i <= __nl; ++__i) +# 241 +{ +# 242 +const _Tp __Knutemp = (((__mu + __i) * __xi2) * __Knu1) + __Kmu; +# 243 +__Kmu = __Knu1; +# 244 +__Knu1 = __Knutemp; +# 245 +} +# 246 +__Knu = __Kmu; +# 247 +__Kpnu = (((__nu * __xi) * __Kmu) - __Knu1); +# 250 +} +# 267 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> _Tp +# 269 +__cyl_bessel_i(_Tp __nu, _Tp __x) +# 270 +{ +# 271 +if ((__nu < ((_Tp)0)) || (__x < ((_Tp)0))) { +# 272 +std::__throw_domain_error("Bad argument in __cyl_bessel_i."); } else { +# 274 +if (__isnan(__nu) || __isnan(__x)) { +# 275 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 276 +if ((__x * __x) < (((_Tp)10) * (__nu + ((_Tp)1)))) { +# 277 +return __cyl_bessel_ij_series(__nu, __x, +((_Tp)1), 200); } else +# 279 +{ +# 280 +_Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; +# 281 +__bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 282 +return __I_nu; +# 283 +} } } +# 284 +} +# 303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> _Tp +# 305 +__cyl_bessel_k(_Tp __nu, _Tp __x) +# 306 +{ +# 307 +if ((__nu < ((_Tp)0)) || (__x < ((_Tp)0))) { +# 308 +std::__throw_domain_error("Bad argument in __cyl_bessel_k."); } else { +# 310 +if (__isnan(__nu) || __isnan(__x)) { +# 311 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else +# 313 +{ +# 314 +_Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; +# 315 +__bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 316 +return __K_nu; +# 317 +} } +# 318 +} +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> void +# 339 +__sph_bessel_ik(unsigned __n, _Tp __x, _Tp & +# 340 +__i_n, _Tp &__k_n, _Tp &__ip_n, _Tp &__kp_n) +# 341 +{ +# 342 +const _Tp __nu = ((_Tp)__n) + ((_Tp)(0.5L)); +# 344 +_Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; +# 345 +__bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 347 +const _Tp __factor = __numeric_constants< _Tp> ::__sqrtpio2() / std::sqrt(__x); +# 350 +__i_n = (__factor * __I_nu); +# 351 +__k_n = (__factor * __K_nu); +# 352 +__ip_n = ((__factor * __Ip_nu) - (__i_n / (((_Tp)2) * __x))); +# 353 +__kp_n = ((__factor * __Kp_nu) - (__k_n / (((_Tp)2) * __x))); +# 356 +} +# 373 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> void +# 375 +__airy(_Tp __x, _Tp &__Ai, _Tp &__Bi, _Tp &__Aip, _Tp &__Bip) +# 376 +{ +# 377 +const _Tp __absx = std::abs(__x); +# 378 +const _Tp __rootx = std::sqrt(__absx); +# 379 +const _Tp __z = ((((_Tp)2) * __absx) * __rootx) / ((_Tp)3); +# 380 +const _Tp _S_inf = std::template numeric_limits< _Tp> ::infinity(); +# 382 +if (__isnan(__x)) { +# 383 +__Bip = (__Aip = (__Bi = (__Ai = std::template numeric_limits< _Tp> ::quiet_NaN()))); } else { +# 384 +if (__z == _S_inf) +# 385 +{ +# 386 +__Aip = (__Ai = ((_Tp)0)); +# 387 +__Bip = (__Bi = _S_inf); +# 388 +} else { +# 389 +if (__z == (-_S_inf)) { +# 390 +__Bip = (__Aip = (__Bi = (__Ai = ((_Tp)0)))); } else { +# 391 +if (__x > ((_Tp)0)) +# 392 +{ +# 393 +_Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; +# 395 +__bessel_ik(((_Tp)1) / ((_Tp)3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 396 +__Ai = ((__rootx * __K_nu) / (__numeric_constants< _Tp> ::__sqrt3() * __numeric_constants< _Tp> ::__pi())); +# 399 +__Bi = (__rootx * ((__K_nu / __numeric_constants< _Tp> ::__pi()) + ((((_Tp)2) * __I_nu) / __numeric_constants< _Tp> ::__sqrt3()))); +# 402 +__bessel_ik(((_Tp)2) / ((_Tp)3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 403 +__Aip = (((-__x) * __K_nu) / (__numeric_constants< _Tp> ::__sqrt3() * __numeric_constants< _Tp> ::__pi())); +# 406 +__Bip = (__x * ((__K_nu / __numeric_constants< _Tp> ::__pi()) + ((((_Tp)2) * __I_nu) / __numeric_constants< _Tp> ::__sqrt3()))); +# 409 +} else { +# 410 +if (__x < ((_Tp)0)) +# 411 +{ +# 412 +_Tp __J_nu, __Jp_nu, __N_nu, __Np_nu; +# 414 +__bessel_jn(((_Tp)1) / ((_Tp)3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 415 +__Ai = ((__rootx * (__J_nu - (__N_nu / __numeric_constants< _Tp> ::__sqrt3()))) / ((_Tp)2)); +# 417 +__Bi = (((-__rootx) * (__N_nu + (__J_nu / __numeric_constants< _Tp> ::__sqrt3()))) / ((_Tp)2)); +# 420 +__bessel_jn(((_Tp)2) / ((_Tp)3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 421 +__Aip = ((__absx * ((__N_nu / __numeric_constants< _Tp> ::__sqrt3()) + __J_nu)) / ((_Tp)2)); +# 423 +__Bip = ((__absx * ((__J_nu / __numeric_constants< _Tp> ::__sqrt3()) - __N_nu)) / ((_Tp)2)); +# 425 +} else +# 427 +{ +# 431 +__Ai = ((_Tp)(0.35502805388781723926L)); +# 432 +__Bi = (__Ai * __numeric_constants< _Tp> ::__sqrt3()); +# 437 +__Aip = (-((_Tp)(0.2588194037928067984L))); +# 438 +__Bip = ((-__Aip) * __numeric_constants< _Tp> ::__sqrt3()); +# 439 +} } } } } +# 442 +} +# 443 +} +# 449 +} +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +namespace __detail { +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +template< class _Tp> _Tp +# 74 +__poly_hermite_recursion(unsigned __n, _Tp __x) +# 75 +{ +# 77 +_Tp __H_0 = (1); +# 78 +if (__n == (0)) { +# 79 +return __H_0; } +# 82 +_Tp __H_1 = 2 * __x; +# 83 +if (__n == (1)) { +# 84 +return __H_1; } +# 87 +_Tp __H_n, __H_nm1, __H_nm2; +# 88 +unsigned __i; +# 89 +for (((__H_nm2 = __H_0), (__H_nm1 = __H_1)), (__i = (2)); __i <= __n; ++__i) +# 90 +{ +# 91 +__H_n = (2 * ((__x * __H_nm1) - ((__i - (1)) * __H_nm2))); +# 92 +__H_nm2 = __H_nm1; +# 93 +__H_nm1 = __H_n; +# 94 +} +# 96 +return __H_n; +# 97 +} +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +template< class _Tp> inline _Tp +# 116 +__poly_hermite(unsigned __n, _Tp __x) +# 117 +{ +# 118 +if (__isnan(__x)) { +# 119 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 121 +return __poly_hermite_recursion(__n, __x); } +# 122 +} +# 123 +} +# 129 +} +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +namespace __detail { +# 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tpa, class _Tp> _Tp +# 77 +__poly_laguerre_large_n(unsigned __n, _Tpa __alpha1, _Tp __x) +# 78 +{ +# 79 +const _Tp __a = (-((_Tp)__n)); +# 80 +const _Tp __b = ((_Tp)__alpha1) + ((_Tp)1); +# 81 +const _Tp __eta = (((_Tp)2) * __b) - (((_Tp)4) * __a); +# 82 +const _Tp __cos2th = __x / __eta; +# 83 +const _Tp __sin2th = ((_Tp)1) - __cos2th; +# 84 +const _Tp __th = std::acos(std::sqrt(__cos2th)); +# 85 +const _Tp __pre_h = ((((__numeric_constants< _Tp> ::__pi_2() * __numeric_constants< _Tp> ::__pi_2()) * __eta) * __eta) * __cos2th) * __sin2th; +# 90 +const _Tp __lg_b = std::lgamma(((_Tp)__n) + __b); +# 91 +const _Tp __lnfact = std::lgamma((_Tp)(__n + (1))); +# 97 +_Tp __pre_term1 = (((_Tp)(0.5L)) * (((_Tp)1) - __b)) * std::log((((_Tp)(0.25L)) * __x) * __eta); +# 99 +_Tp __pre_term2 = ((_Tp)(0.25L)) * std::log(__pre_h); +# 100 +_Tp __lnpre = (((__lg_b - __lnfact) + (((_Tp)(0.5L)) * __x)) + __pre_term1) - __pre_term2; +# 102 +_Tp __ser_term1 = std::sin(__a * __numeric_constants< _Tp> ::__pi()); +# 103 +_Tp __ser_term2 = std::sin(((((_Tp)(0.25L)) * __eta) * ((((_Tp)2) * __th) - std::sin(((_Tp)2) * __th))) + __numeric_constants< _Tp> ::__pi_4()); +# 107 +_Tp __ser = __ser_term1 + __ser_term2; +# 109 +return std::exp(__lnpre) * __ser; +# 110 +} +# 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tpa, class _Tp> _Tp +# 131 +__poly_laguerre_hyperg(unsigned __n, _Tpa __alpha1, _Tp __x) +# 132 +{ +# 133 +const _Tp __b = ((_Tp)__alpha1) + ((_Tp)1); +# 134 +const _Tp __mx = (-__x); +# 135 +const _Tp __tc_sgn = (__x < ((_Tp)0)) ? (_Tp)1 : (((__n % (2)) == (1)) ? -((_Tp)1) : ((_Tp)1)); +# 138 +_Tp __tc = ((_Tp)1); +# 139 +const _Tp __ax = std::abs(__x); +# 140 +for (unsigned __k = (1); __k <= __n; ++__k) { +# 141 +__tc *= (__ax / __k); } +# 143 +_Tp __term = __tc * __tc_sgn; +# 144 +_Tp __sum = __term; +# 145 +for (int __k = ((int)__n) - 1; __k >= 0; --__k) +# 146 +{ +# 147 +__term *= ((((__b + ((_Tp)__k)) / ((_Tp)(((int)__n) - __k))) * ((_Tp)(__k + 1))) / __mx); +# 149 +__sum += __term; +# 150 +} +# 152 +return __sum; +# 153 +} +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tpa, class _Tp> _Tp +# 187 +__poly_laguerre_recursion(unsigned __n, _Tpa __alpha1, _Tp __x) +# 188 +{ +# 190 +_Tp __l_0 = ((_Tp)1); +# 191 +if (__n == (0)) { +# 192 +return __l_0; } +# 195 +_Tp __l_1 = ((-__x) + ((_Tp)1)) + ((_Tp)__alpha1); +# 196 +if (__n == (1)) { +# 197 +return __l_1; } +# 200 +_Tp __l_n2 = __l_0; +# 201 +_Tp __l_n1 = __l_1; +# 202 +_Tp __l_n = ((_Tp)0); +# 203 +for (unsigned __nn = (2); __nn <= __n; ++__nn) +# 204 +{ +# 205 +__l_n = (((((((_Tp)(((2) * __nn) - (1))) + ((_Tp)__alpha1)) - __x) * __l_n1) / ((_Tp)__nn)) - (((((_Tp)(__nn - (1))) + ((_Tp)__alpha1)) * __l_n2) / ((_Tp)__nn))); +# 208 +__l_n2 = __l_n1; +# 209 +__l_n1 = __l_n; +# 210 +} +# 212 +return __l_n; +# 213 +} +# 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tpa, class _Tp> _Tp +# 246 +__poly_laguerre(unsigned __n, _Tpa __alpha1, _Tp __x) +# 247 +{ +# 248 +if (__x < ((_Tp)0)) { +# 249 +std::__throw_domain_error("Negative argument in __poly_laguerre."); } else { +# 252 +if (__isnan(__x)) { +# 253 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 254 +if (__n == (0)) { +# 255 +return (_Tp)1; } else { +# 256 +if (__n == (1)) { +# 257 +return (((_Tp)1) + ((_Tp)__alpha1)) - __x; } else { +# 258 +if (__x == ((_Tp)0)) +# 259 +{ +# 260 +_Tp __prod = ((_Tp)__alpha1) + ((_Tp)1); +# 261 +for (unsigned __k = (2); __k <= __n; ++__k) { +# 262 +__prod *= ((((_Tp)__alpha1) + ((_Tp)__k)) / ((_Tp)__k)); } +# 263 +return __prod; +# 264 +} else { +# 265 +if ((__n > (10000000)) && (((_Tp)__alpha1) > (-((_Tp)1))) && (__x < ((((_Tp)2) * (((_Tp)__alpha1) + ((_Tp)1))) + ((_Tp)((4) * __n))))) { +# 267 +return __poly_laguerre_large_n(__n, __alpha1, __x); } else { +# 268 +if ((((_Tp)__alpha1) >= ((_Tp)0)) || ((__x > ((_Tp)0)) && (((_Tp)__alpha1) < (-((_Tp)(__n + (1))))))) { +# 270 +return __poly_laguerre_recursion(__n, __alpha1, __x); } else { +# 272 +return __poly_laguerre_hyperg(__n, __alpha1, __x); } } } } } } } +# 273 +} +# 296 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tp> inline _Tp +# 298 +__assoc_laguerre(unsigned __n, unsigned __m, _Tp __x) +# 299 +{ return __poly_laguerre< unsigned, _Tp> (__n, __m, __x); } +# 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tp> inline _Tp +# 318 +__laguerre(unsigned __n, _Tp __x) +# 319 +{ return __poly_laguerre< unsigned, _Tp> (__n, 0, __x); } +# 320 +} +# 327 +} +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +namespace __detail { +# 78 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 80 +__riemann_zeta_sum(_Tp __s) +# 81 +{ +# 83 +if (__s < ((_Tp)1)) { +# 84 +std::__throw_domain_error("Bad argument in zeta sum."); } +# 86 +const unsigned max_iter = (10000); +# 87 +_Tp __zeta = ((_Tp)0); +# 88 +for (unsigned __k = (1); __k < max_iter; ++__k) +# 89 +{ +# 90 +_Tp __term = std::pow(static_cast< _Tp>(__k), -__s); +# 91 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) +# 92 +{ +# 93 +break; +# 94 +} +# 95 +__zeta += __term; +# 96 +} +# 98 +return __zeta; +# 99 +} +# 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 117 +__riemann_zeta_alt(_Tp __s) +# 118 +{ +# 119 +_Tp __sgn = ((_Tp)1); +# 120 +_Tp __zeta = ((_Tp)0); +# 121 +for (unsigned __i = (1); __i < (10000000); ++__i) +# 122 +{ +# 123 +_Tp __term = __sgn / std::pow(__i, __s); +# 124 +if (std::abs(__term) < std::template numeric_limits< _Tp> ::epsilon()) { +# 125 +break; } +# 126 +__zeta += __term; +# 127 +__sgn *= ((_Tp)(-1)); +# 128 +} +# 129 +__zeta /= (((_Tp)1) - std::pow((_Tp)2, ((_Tp)1) - __s)); +# 131 +return __zeta; +# 132 +} +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 159 +__riemann_zeta_glob(_Tp __s) +# 160 +{ +# 161 +_Tp __zeta = ((_Tp)0); +# 163 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 165 +const _Tp __max_bincoeff = (std::template numeric_limits< _Tp> ::max_exponent10 * std::log((_Tp)10)) - ((_Tp)1); +# 170 +if (__s < ((_Tp)0)) +# 171 +{ +# 173 +if (std::fmod(__s, (_Tp)2) == ((_Tp)0)) { +# 174 +return (_Tp)0; } else +# 177 +{ +# 178 +_Tp __zeta = __riemann_zeta_glob(((_Tp)1) - __s); +# 179 +__zeta *= (((std::pow(((_Tp)2) * __numeric_constants< _Tp> ::__pi(), __s) * std::sin(__numeric_constants< _Tp> ::__pi_2() * __s)) * std::exp(std::lgamma(((_Tp)1) - __s))) / __numeric_constants< _Tp> ::__pi()); +# 188 +return __zeta; +# 189 +} +# 190 +} +# 192 +_Tp __num = ((_Tp)(0.5L)); +# 193 +const unsigned __maxit = (10000); +# 194 +for (unsigned __i = (0); __i < __maxit; ++__i) +# 195 +{ +# 196 +bool __punt = false; +# 197 +_Tp __sgn = ((_Tp)1); +# 198 +_Tp __term = ((_Tp)0); +# 199 +for (unsigned __j = (0); __j <= __i; ++__j) +# 200 +{ +# 202 +_Tp __bincoeff = (std::lgamma((_Tp)((1) + __i)) - std::lgamma((_Tp)((1) + __j))) - std::lgamma((_Tp)(((1) + __i) - __j)); +# 210 +if (__bincoeff > __max_bincoeff) +# 211 +{ +# 213 +__punt = true; +# 214 +break; +# 215 +} +# 216 +__bincoeff = std::exp(__bincoeff); +# 217 +__term += ((__sgn * __bincoeff) * std::pow((_Tp)((1) + __j), -__s)); +# 218 +__sgn *= ((_Tp)(-1)); +# 219 +} +# 220 +if (__punt) { +# 221 +break; } +# 222 +__term *= __num; +# 223 +__zeta += __term; +# 224 +if (std::abs(__term / __zeta) < __eps) { +# 225 +break; } +# 226 +__num *= ((_Tp)(0.5L)); +# 227 +} +# 229 +__zeta /= (((_Tp)1) - std::pow((_Tp)2, ((_Tp)1) - __s)); +# 231 +return __zeta; +# 232 +} +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 254 +__riemann_zeta_product(_Tp __s) +# 255 +{ +# 256 +static const _Tp __prime[] = {((_Tp)2), ((_Tp)3), ((_Tp)5), ((_Tp)7), ((_Tp)11), ((_Tp)13), ((_Tp)17), ((_Tp)19), ((_Tp)23), ((_Tp)29), ((_Tp)31), ((_Tp)37), ((_Tp)41), ((_Tp)43), ((_Tp)47), ((_Tp)53), ((_Tp)59), ((_Tp)61), ((_Tp)67), ((_Tp)71), ((_Tp)73), ((_Tp)79), ((_Tp)83), ((_Tp)89), ((_Tp)97), ((_Tp)101), ((_Tp)103), ((_Tp)107), ((_Tp)109)}; +# 262 +static const unsigned __num_primes = (sizeof(__prime) / sizeof(_Tp)); +# 264 +_Tp __zeta = ((_Tp)1); +# 265 +for (unsigned __i = (0); __i < __num_primes; ++__i) +# 266 +{ +# 267 +const _Tp __fact = ((_Tp)1) - std::pow(__prime[__i], -__s); +# 268 +__zeta *= __fact; +# 269 +if ((((_Tp)1) - __fact) < std::template numeric_limits< _Tp> ::epsilon()) { +# 270 +break; } +# 271 +} +# 273 +__zeta = (((_Tp)1) / __zeta); +# 275 +return __zeta; +# 276 +} +# 293 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 295 +__riemann_zeta(_Tp __s) +# 296 +{ +# 297 +if (__isnan(__s)) { +# 298 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 299 +if (__s == ((_Tp)1)) { +# 300 +return std::template numeric_limits< _Tp> ::infinity(); } else { +# 301 +if (__s < (-((_Tp)19))) +# 302 +{ +# 303 +_Tp __zeta = __riemann_zeta_product(((_Tp)1) - __s); +# 304 +__zeta *= (((std::pow(((_Tp)2) * __numeric_constants< _Tp> ::__pi(), __s) * std::sin(__numeric_constants< _Tp> ::__pi_2() * __s)) * std::exp(std::lgamma(((_Tp)1) - __s))) / __numeric_constants< _Tp> ::__pi()); +# 312 +return __zeta; +# 313 +} else { +# 314 +if (__s < ((_Tp)20)) +# 315 +{ +# 317 +bool __glob = true; +# 318 +if (__glob) { +# 319 +return __riemann_zeta_glob(__s); } else +# 321 +{ +# 322 +if (__s > ((_Tp)1)) { +# 323 +return __riemann_zeta_sum(__s); } else +# 325 +{ +# 326 +_Tp __zeta = ((std::pow(((_Tp)2) * __numeric_constants< _Tp> ::__pi(), __s) * std::sin(__numeric_constants< _Tp> ::__pi_2() * __s)) * std::tgamma(((_Tp)1) - __s)) * __riemann_zeta_sum(((_Tp)1) - __s); +# 335 +return __zeta; +# 336 +} +# 337 +} +# 338 +} else { +# 340 +return __riemann_zeta_product(__s); } } } } +# 341 +} +# 365 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 367 +__hurwitz_zeta_glob(_Tp __a, _Tp __s) +# 368 +{ +# 369 +_Tp __zeta = ((_Tp)0); +# 371 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 373 +const _Tp __max_bincoeff = (std::template numeric_limits< _Tp> ::max_exponent10 * std::log((_Tp)10)) - ((_Tp)1); +# 376 +const unsigned __maxit = (10000); +# 377 +for (unsigned __i = (0); __i < __maxit; ++__i) +# 378 +{ +# 379 +bool __punt = false; +# 380 +_Tp __sgn = ((_Tp)1); +# 381 +_Tp __term = ((_Tp)0); +# 382 +for (unsigned __j = (0); __j <= __i; ++__j) +# 383 +{ +# 385 +_Tp __bincoeff = (std::lgamma((_Tp)((1) + __i)) - std::lgamma((_Tp)((1) + __j))) - std::lgamma((_Tp)(((1) + __i) - __j)); +# 393 +if (__bincoeff > __max_bincoeff) +# 394 +{ +# 396 +__punt = true; +# 397 +break; +# 398 +} +# 399 +__bincoeff = std::exp(__bincoeff); +# 400 +__term += ((__sgn * __bincoeff) * std::pow((_Tp)(__a + __j), -__s)); +# 401 +__sgn *= ((_Tp)(-1)); +# 402 +} +# 403 +if (__punt) { +# 404 +break; } +# 405 +__term /= ((_Tp)(__i + (1))); +# 406 +if (std::abs(__term / __zeta) < __eps) { +# 407 +break; } +# 408 +__zeta += __term; +# 409 +} +# 411 +__zeta /= (__s - ((_Tp)1)); +# 413 +return __zeta; +# 414 +} +# 430 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> inline _Tp +# 432 +__hurwitz_zeta(_Tp __a, _Tp __s) +# 433 +{ return __hurwitz_zeta_glob(__a, __s); } +# 434 +} +# 441 +} +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 204 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float assoc_laguerref(unsigned __n, unsigned __m, float __x) +# 205 +{ return __detail::__assoc_laguerre< float> (__n, __m, __x); } +# 214 +inline long double assoc_laguerrel(unsigned __n, unsigned __m, long double __x) +# 215 +{ return __detail::__assoc_laguerre< long double> (__n, __m, __x); } +# 248 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 250 +assoc_laguerre(unsigned __n, unsigned __m, _Tp __x) +# 251 +{ +# 252 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 253 +return __detail::__assoc_laguerre< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __m, __x); +# 254 +} +# 265 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float assoc_legendref(unsigned __l, unsigned __m, float __x) +# 266 +{ return __detail::__assoc_legendre_p< float> (__l, __m, __x); } +# 274 +inline long double assoc_legendrel(unsigned __l, unsigned __m, long double __x) +# 275 +{ return __detail::__assoc_legendre_p< long double> (__l, __m, __x); } +# 294 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 296 +assoc_legendre(unsigned __l, unsigned __m, _Tp __x) +# 297 +{ +# 298 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 299 +return __detail::__assoc_legendre_p< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __m, __x); +# 300 +} +# 310 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float betaf(float __a, float __b) +# 311 +{ return __detail::__beta< float> (__a, __b); } +# 320 +inline long double betal(long double __a, long double __b) +# 321 +{ return __detail::__beta< long double> (__a, __b); } +# 339 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpa, class _Tpb> inline typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type +# 341 +beta(_Tpa __a, _Tpb __b) +# 342 +{ +# 343 +typedef typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type __type; +# 344 +return __detail::__beta< typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type> (__a, __b); +# 345 +} +# 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float comp_ellint_1f(float __k) +# 357 +{ return __detail::__comp_ellint_1< float> (__k); } +# 366 +inline long double comp_ellint_1l(long double __k) +# 367 +{ return __detail::__comp_ellint_1< long double> (__k); } +# 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 389 +comp_ellint_1(_Tp __k) +# 390 +{ +# 391 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 392 +return __detail::__comp_ellint_1< typename __gnu_cxx::__promote< _Tp> ::__type> (__k); +# 393 +} +# 404 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float comp_ellint_2f(float __k) +# 405 +{ return __detail::__comp_ellint_2< float> (__k); } +# 414 +inline long double comp_ellint_2l(long double __k) +# 415 +{ return __detail::__comp_ellint_2< long double> (__k); } +# 434 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 436 +comp_ellint_2(_Tp __k) +# 437 +{ +# 438 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 439 +return __detail::__comp_ellint_2< typename __gnu_cxx::__promote< _Tp> ::__type> (__k); +# 440 +} +# 451 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float comp_ellint_3f(float __k, float __nu) +# 452 +{ return __detail::__comp_ellint_3< float> (__k, __nu); } +# 461 +inline long double comp_ellint_3l(long double __k, long double __nu) +# 462 +{ return __detail::__comp_ellint_3< long double> (__k, __nu); } +# 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp, class _Tpn> inline typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type +# 487 +comp_ellint_3(_Tp __k, _Tpn __nu) +# 488 +{ +# 489 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type __type; +# 490 +return __detail::__comp_ellint_3< typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type> (__k, __nu); +# 491 +} +# 502 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float cyl_bessel_if(float __nu, float __x) +# 503 +{ return __detail::__cyl_bessel_i< float> (__nu, __x); } +# 512 +inline long double cyl_bessel_il(long double __nu, long double __x) +# 513 +{ return __detail::__cyl_bessel_i< long double> (__nu, __x); } +# 531 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 533 +cyl_bessel_i(_Tpnu __nu, _Tp __x) +# 534 +{ +# 535 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 536 +return __detail::__cyl_bessel_i< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 537 +} +# 548 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float cyl_bessel_jf(float __nu, float __x) +# 549 +{ return __detail::__cyl_bessel_j< float> (__nu, __x); } +# 558 +inline long double cyl_bessel_jl(long double __nu, long double __x) +# 559 +{ return __detail::__cyl_bessel_j< long double> (__nu, __x); } +# 577 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 579 +cyl_bessel_j(_Tpnu __nu, _Tp __x) +# 580 +{ +# 581 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 582 +return __detail::__cyl_bessel_j< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 583 +} +# 594 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float cyl_bessel_kf(float __nu, float __x) +# 595 +{ return __detail::__cyl_bessel_k< float> (__nu, __x); } +# 604 +inline long double cyl_bessel_kl(long double __nu, long double __x) +# 605 +{ return __detail::__cyl_bessel_k< long double> (__nu, __x); } +# 629 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 631 +cyl_bessel_k(_Tpnu __nu, _Tp __x) +# 632 +{ +# 633 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 634 +return __detail::__cyl_bessel_k< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 635 +} +# 646 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float cyl_neumannf(float __nu, float __x) +# 647 +{ return __detail::__cyl_neumann_n< float> (__nu, __x); } +# 656 +inline long double cyl_neumannl(long double __nu, long double __x) +# 657 +{ return __detail::__cyl_neumann_n< long double> (__nu, __x); } +# 677 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 679 +cyl_neumann(_Tpnu __nu, _Tp __x) +# 680 +{ +# 681 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 682 +return __detail::__cyl_neumann_n< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 683 +} +# 694 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float ellint_1f(float __k, float __phi) +# 695 +{ return __detail::__ellint_1< float> (__k, __phi); } +# 704 +inline long double ellint_1l(long double __k, long double __phi) +# 705 +{ return __detail::__ellint_1< long double> (__k, __phi); } +# 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp, class _Tpp> inline typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type +# 727 +ellint_1(_Tp __k, _Tpp __phi) +# 728 +{ +# 729 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type __type; +# 730 +return __detail::__ellint_1< typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type> (__k, __phi); +# 731 +} +# 742 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float ellint_2f(float __k, float __phi) +# 743 +{ return __detail::__ellint_2< float> (__k, __phi); } +# 752 +inline long double ellint_2l(long double __k, long double __phi) +# 753 +{ return __detail::__ellint_2< long double> (__k, __phi); } +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp, class _Tpp> inline typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type +# 775 +ellint_2(_Tp __k, _Tpp __phi) +# 776 +{ +# 777 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type __type; +# 778 +return __detail::__ellint_2< typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type> (__k, __phi); +# 779 +} +# 790 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float ellint_3f(float __k, float __nu, float __phi) +# 791 +{ return __detail::__ellint_3< float> (__k, __nu, __phi); } +# 800 +inline long double ellint_3l(long double __k, long double __nu, long double __phi) +# 801 +{ return __detail::__ellint_3< long double> (__k, __nu, __phi); } +# 826 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp, class _Tpn, class _Tpp> inline typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type +# 828 +ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) +# 829 +{ +# 830 +typedef typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type __type; +# 831 +return __detail::__ellint_3< typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type> (__k, __nu, __phi); +# 832 +} +# 842 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float expintf(float __x) +# 843 +{ return __detail::__expint< float> (__x); } +# 852 +inline long double expintl(long double __x) +# 853 +{ return __detail::__expint< long double> (__x); } +# 866 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 868 +expint(_Tp __x) +# 869 +{ +# 870 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 871 +return __detail::__expint< typename __gnu_cxx::__promote< _Tp> ::__type> (__x); +# 872 +} +# 883 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float hermitef(unsigned __n, float __x) +# 884 +{ return __detail::__poly_hermite< float> (__n, __x); } +# 893 +inline long double hermitel(unsigned __n, long double __x) +# 894 +{ return __detail::__poly_hermite< long double> (__n, __x); } +# 914 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 916 +hermite(unsigned __n, _Tp __x) +# 917 +{ +# 918 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 919 +return __detail::__poly_hermite< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 920 +} +# 931 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float laguerref(unsigned __n, float __x) +# 932 +{ return __detail::__laguerre< float> (__n, __x); } +# 941 +inline long double laguerrel(unsigned __n, long double __x) +# 942 +{ return __detail::__laguerre< long double> (__n, __x); } +# 958 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 960 +laguerre(unsigned __n, _Tp __x) +# 961 +{ +# 962 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 963 +return __detail::__laguerre< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 964 +} +# 975 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float legendref(unsigned __l, float __x) +# 976 +{ return __detail::__poly_legendre_p< float> (__l, __x); } +# 985 +inline long double legendrel(unsigned __l, long double __x) +# 986 +{ return __detail::__poly_legendre_p< long double> (__l, __x); } +# 1003 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1005 +legendre(unsigned __l, _Tp __x) +# 1006 +{ +# 1007 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1008 +return __detail::__poly_legendre_p< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __x); +# 1009 +} +# 1020 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float riemann_zetaf(float __s) +# 1021 +{ return __detail::__riemann_zeta< float> (__s); } +# 1030 +inline long double riemann_zetal(long double __s) +# 1031 +{ return __detail::__riemann_zeta< long double> (__s); } +# 1054 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1056 +riemann_zeta(_Tp __s) +# 1057 +{ +# 1058 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1059 +return __detail::__riemann_zeta< typename __gnu_cxx::__promote< _Tp> ::__type> (__s); +# 1060 +} +# 1071 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float sph_besself(unsigned __n, float __x) +# 1072 +{ return __detail::__sph_bessel< float> (__n, __x); } +# 1081 +inline long double sph_bessell(unsigned __n, long double __x) +# 1082 +{ return __detail::__sph_bessel< long double> (__n, __x); } +# 1098 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1100 +sph_bessel(unsigned __n, _Tp __x) +# 1101 +{ +# 1102 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1103 +return __detail::__sph_bessel< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 1104 +} +# 1115 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float sph_legendref(unsigned __l, unsigned __m, float __theta) +# 1116 +{ return __detail::__sph_legendre< float> (__l, __m, __theta); } +# 1126 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline long double sph_legendrel(unsigned __l, unsigned __m, long double __theta) +# 1127 +{ return __detail::__sph_legendre< long double> (__l, __m, __theta); } +# 1145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1147 +sph_legendre(unsigned __l, unsigned __m, _Tp __theta) +# 1148 +{ +# 1149 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1150 +return __detail::__sph_legendre< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __m, __theta); +# 1151 +} +# 1162 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float sph_neumannf(unsigned __n, float __x) +# 1163 +{ return __detail::__sph_neumann< float> (__n, __x); } +# 1172 +inline long double sph_neumannl(unsigned __n, long double __x) +# 1173 +{ return __detail::__sph_neumann< long double> (__n, __x); } +# 1189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1191 +sph_neumann(unsigned __n, _Tp __x) +# 1192 +{ +# 1193 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1194 +return __detail::__sph_neumann< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 1195 +} +# 1200 +} +# 1203 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 1217 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float airy_aif(float __x) +# 1218 +{ +# 1219 +float __Ai, __Bi, __Aip, __Bip; +# 1220 +std::__detail::__airy< float> (__x, __Ai, __Bi, __Aip, __Bip); +# 1221 +return __Ai; +# 1222 +} +# 1228 +inline long double airy_ail(long double __x) +# 1229 +{ +# 1230 +long double __Ai, __Bi, __Aip, __Bip; +# 1231 +std::__detail::__airy< long double> (__x, __Ai, __Bi, __Aip, __Bip); +# 1232 +return __Ai; +# 1233 +} +# 1238 +template< class _Tp> inline typename __promote< _Tp> ::__type +# 1240 +airy_ai(_Tp __x) +# 1241 +{ +# 1242 +typedef typename __promote< _Tp> ::__type __type; +# 1243 +__type __Ai, __Bi, __Aip, __Bip; +# 1244 +std::__detail::__airy< typename __promote< _Tp> ::__type> (__x, __Ai, __Bi, __Aip, __Bip); +# 1245 +return __Ai; +# 1246 +} +# 1252 +inline float airy_bif(float __x) +# 1253 +{ +# 1254 +float __Ai, __Bi, __Aip, __Bip; +# 1255 +std::__detail::__airy< float> (__x, __Ai, __Bi, __Aip, __Bip); +# 1256 +return __Bi; +# 1257 +} +# 1263 +inline long double airy_bil(long double __x) +# 1264 +{ +# 1265 +long double __Ai, __Bi, __Aip, __Bip; +# 1266 +std::__detail::__airy< long double> (__x, __Ai, __Bi, __Aip, __Bip); +# 1267 +return __Bi; +# 1268 +} +# 1273 +template< class _Tp> inline typename __promote< _Tp> ::__type +# 1275 +airy_bi(_Tp __x) +# 1276 +{ +# 1277 +typedef typename __promote< _Tp> ::__type __type; +# 1278 +__type __Ai, __Bi, __Aip, __Bip; +# 1279 +std::__detail::__airy< typename __promote< _Tp> ::__type> (__x, __Ai, __Bi, __Aip, __Bip); +# 1280 +return __Bi; +# 1281 +} +# 1293 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float conf_hypergf(float __a, float __c, float __x) +# 1294 +{ return std::__detail::__conf_hyperg< float> (__a, __c, __x); } +# 1304 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline long double conf_hypergl(long double __a, long double __c, long double __x) +# 1305 +{ return std::__detail::__conf_hyperg< long double> (__a, __c, __x); } +# 1323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpa, class _Tpc, class _Tp> inline typename __promote_3< _Tpa, _Tpc, _Tp> ::__type +# 1325 +conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x) +# 1326 +{ +# 1327 +typedef typename __promote_3< _Tpa, _Tpc, _Tp> ::__type __type; +# 1328 +return std::__detail::__conf_hyperg< typename __promote_3< _Tpa, _Tpc, _Tp> ::__type> (__a, __c, __x); +# 1329 +} +# 1341 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float hypergf(float __a, float __b, float __c, float __x) +# 1342 +{ return std::__detail::__hyperg< float> (__a, __b, __c, __x); } +# 1352 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline long double hypergl(long double __a, long double __b, long double __c, long double __x) +# 1353 +{ return std::__detail::__hyperg< long double> (__a, __b, __c, __x); } +# 1372 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpa, class _Tpb, class _Tpc, class _Tp> inline typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type +# 1374 +hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) +# 1375 +{ +# 1377 +typedef typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type __type; +# 1378 +return std::__detail::__hyperg< typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type> (__a, __b, __c, __x); +# 1379 +} +# 1383 +} +# 3909 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +} +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 3 +using std::abs; +# 39 +using std::acos; +# 40 +using std::asin; +# 41 +using std::atan; +# 42 +using std::atan2; +# 43 +using std::cos; +# 44 +using std::sin; +# 45 +using std::tan; +# 46 +using std::cosh; +# 47 +using std::sinh; +# 48 +using std::tanh; +# 49 +using std::exp; +# 50 +using std::frexp; +# 51 +using std::ldexp; +# 52 +using std::log; +# 53 +using std::log10; +# 54 +using std::modf; +# 55 +using std::pow; +# 56 +using std::sqrt; +# 57 +using std::ceil; +# 58 +using std::fabs; +# 59 +using std::floor; +# 60 +using std::fmod; +# 63 +using std::fpclassify; +# 64 +using std::isfinite; +# 65 +using std::isinf; +# 66 +using std::isnan; +# 67 +using std::isnormal; +# 68 +using std::signbit; +# 69 +using std::isgreater; +# 70 +using std::isgreaterequal; +# 71 +using std::isless; +# 72 +using std::islessequal; +# 73 +using std::islessgreater; +# 74 +using std::isunordered; +# 78 +using std::acosh; +# 79 +using std::asinh; +# 80 +using std::atanh; +# 81 +using std::cbrt; +# 82 +using std::copysign; +# 83 +using std::erf; +# 84 +using std::erfc; +# 85 +using std::exp2; +# 86 +using std::expm1; +# 87 +using std::fdim; +# 88 +using std::fma; +# 89 +using std::fmax; +# 90 +using std::fmin; +# 91 +using std::hypot; +# 92 +using std::ilogb; +# 93 +using std::lgamma; +# 94 +using std::llrint; +# 95 +using std::llround; +# 96 +using std::log1p; +# 97 +using std::log2; +# 98 +using std::logb; +# 99 +using std::lrint; +# 100 +using std::lround; +# 101 +using std::nearbyint; +# 102 +using std::nextafter; +# 103 +using std::nexttoward; +# 104 +using std::remainder; +# 105 +using std::remquo; +# 106 +using std::rint; +# 107 +using std::round; +# 108 +using std::scalbln; +# 109 +using std::scalbn; +# 110 +using std::tgamma; +# 111 +using std::trunc; +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 4654 +constexpr bool signbit(float x); +# 4655 +constexpr bool signbit(double x); +# 4656 +constexpr bool signbit(long double x); +# 4657 +constexpr bool isfinite(float x); +# 4658 +constexpr bool isfinite(double x); +# 4659 +constexpr bool isfinite(long double x); +# 4660 +constexpr bool isnan(float x); +# 4665 +constexpr bool isnan(double x); +# 4667 +constexpr bool isnan(long double x); +# 4668 +constexpr bool isinf(float x); +# 4673 +constexpr bool isinf(double x); +# 4675 +constexpr bool isinf(long double x); +# 4676 +} +# 4832 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 4834 +template< class T> extern T __pow_helper(T, int); +# 4835 +template< class T> extern T __cmath_power(T, unsigned); +# 4836 +} +# 4838 +using std::abs; +# 4839 +using std::fabs; +# 4840 +using std::ceil; +# 4841 +using std::floor; +# 4842 +using std::sqrt; +# 4844 +using std::pow; +# 4846 +using std::log; +# 4847 +using std::log10; +# 4848 +using std::fmod; +# 4849 +using std::modf; +# 4850 +using std::exp; +# 4851 +using std::frexp; +# 4852 +using std::ldexp; +# 4853 +using std::asin; +# 4854 +using std::sin; +# 4855 +using std::sinh; +# 4856 +using std::acos; +# 4857 +using std::cos; +# 4858 +using std::cosh; +# 4859 +using std::atan; +# 4860 +using std::atan2; +# 4861 +using std::tan; +# 4862 +using std::tanh; +# 5243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 5252 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern inline long long abs(long long); +# 5272 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern inline long abs(long a); +# 5273 +extern constexpr float abs(float); +# 5274 +extern constexpr double abs(double); +# 5275 +extern constexpr float fabs(float); +# 5276 +extern constexpr float ceil(float); +# 5277 +extern constexpr float floor(float); +# 5278 +extern constexpr float sqrt(float); +# 5279 +extern constexpr float pow(float, float); +# 5284 +template< class _Tp, class _Up> extern constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type pow(_Tp, _Up); +# 5294 +extern constexpr float log(float); +# 5295 +extern constexpr float log10(float); +# 5296 +extern constexpr float fmod(float, float); +# 5297 +extern inline float modf(float, float *); +# 5298 +extern constexpr float exp(float); +# 5299 +extern inline float frexp(float, int *); +# 5300 +extern constexpr float ldexp(float, int); +# 5301 +extern constexpr float asin(float); +# 5302 +extern constexpr float sin(float); +# 5303 +extern constexpr float sinh(float); +# 5304 +extern constexpr float acos(float); +# 5305 +extern constexpr float cos(float); +# 5306 +extern constexpr float cosh(float); +# 5307 +extern constexpr float atan(float); +# 5308 +extern constexpr float atan2(float, float); +# 5309 +extern constexpr float tan(float); +# 5310 +extern constexpr float tanh(float); +# 5399 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 5505 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 5506 +constexpr float logb(float a); +# 5507 +constexpr int ilogb(float a); +# 5508 +constexpr float scalbn(float a, int b); +# 5509 +constexpr float scalbln(float a, long b); +# 5510 +constexpr float exp2(float a); +# 5511 +constexpr float expm1(float a); +# 5512 +constexpr float log2(float a); +# 5513 +constexpr float log1p(float a); +# 5514 +constexpr float acosh(float a); +# 5515 +constexpr float asinh(float a); +# 5516 +constexpr float atanh(float a); +# 5517 +constexpr float hypot(float a, float b); +# 5518 +constexpr float cbrt(float a); +# 5519 +constexpr float erf(float a); +# 5520 +constexpr float erfc(float a); +# 5521 +constexpr float lgamma(float a); +# 5522 +constexpr float tgamma(float a); +# 5523 +constexpr float copysign(float a, float b); +# 5524 +constexpr float nextafter(float a, float b); +# 5525 +constexpr float remainder(float a, float b); +# 5526 +inline float remquo(float a, float b, int * quo); +# 5527 +constexpr float round(float a); +# 5528 +constexpr long lround(float a); +# 5529 +constexpr long long llround(float a); +# 5530 +constexpr float trunc(float a); +# 5531 +constexpr float rint(float a); +# 5532 +constexpr long lrint(float a); +# 5533 +constexpr long long llrint(float a); +# 5534 +constexpr float nearbyint(float a); +# 5535 +constexpr float fdim(float a, float b); +# 5536 +constexpr float fma(float a, float b, float c); +# 5537 +constexpr float fmax(float a, float b); +# 5538 +constexpr float fmin(float a, float b); +# 5539 +} +# 5644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline float exp10(const float a); +# 5646 +static inline float rsqrt(const float a); +# 5648 +static inline float rcbrt(const float a); +# 5650 +static inline float sinpi(const float a); +# 5652 +static inline float cospi(const float a); +# 5654 +static inline void sincospi(const float a, float *const sptr, float *const cptr); +# 5656 +static inline void sincos(const float a, float *const sptr, float *const cptr); +# 5658 +static inline float j0(const float a); +# 5660 +static inline float j1(const float a); +# 5662 +static inline float jn(const int n, const float a); +# 5664 +static inline float y0(const float a); +# 5666 +static inline float y1(const float a); +# 5668 +static inline float yn(const int n, const float a); +# 5670 +__attribute__((unused)) static inline float cyl_bessel_i0(const float a); +# 5672 +__attribute__((unused)) static inline float cyl_bessel_i1(const float a); +# 5674 +static inline float erfinv(const float a); +# 5676 +static inline float erfcinv(const float a); +# 5678 +static inline float normcdfinv(const float a); +# 5680 +static inline float normcdf(const float a); +# 5682 +static inline float erfcx(const float a); +# 5684 +static inline double copysign(const double a, const float b); +# 5686 +static inline double copysign(const float a, const double b); +# 5694 +static inline unsigned min(const unsigned a, const unsigned b); +# 5702 +static inline unsigned min(const int a, const unsigned b); +# 5710 +static inline unsigned min(const unsigned a, const int b); +# 5718 +static inline long min(const long a, const long b); +# 5726 +static inline unsigned long min(const unsigned long a, const unsigned long b); +# 5734 +static inline unsigned long min(const long a, const unsigned long b); +# 5742 +static inline unsigned long min(const unsigned long a, const long b); +# 5750 +static inline long long min(const long long a, const long long b); +# 5758 +static inline unsigned long long min(const unsigned long long a, const unsigned long long b); +# 5766 +static inline unsigned long long min(const long long a, const unsigned long long b); +# 5774 +static inline unsigned long long min(const unsigned long long a, const long long b); +# 5785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline float min(const float a, const float b); +# 5796 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double min(const double a, const double b); +# 5806 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double min(const float a, const double b); +# 5816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double min(const double a, const float b); +# 5824 +static inline unsigned max(const unsigned a, const unsigned b); +# 5832 +static inline unsigned max(const int a, const unsigned b); +# 5840 +static inline unsigned max(const unsigned a, const int b); +# 5848 +static inline long max(const long a, const long b); +# 5856 +static inline unsigned long max(const unsigned long a, const unsigned long b); +# 5864 +static inline unsigned long max(const long a, const unsigned long b); +# 5872 +static inline unsigned long max(const unsigned long a, const long b); +# 5880 +static inline long long max(const long long a, const long long b); +# 5888 +static inline unsigned long long max(const unsigned long long a, const unsigned long long b); +# 5896 +static inline unsigned long long max(const long long a, const unsigned long long b); +# 5904 +static inline unsigned long long max(const unsigned long long a, const long long b); +# 5915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline float max(const float a, const float b); +# 5926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double max(const double a, const double b); +# 5936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double max(const float a, const double b); +# 5946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double max(const double a, const float b); +# 5958 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C" { +# 5959 +__attribute__((unused)) inline void *__nv_aligned_device_malloc(size_t size, size_t align) +# 5960 +{int volatile ___ = 1;(void)size;(void)align; +# 5963 +::exit(___);} +#if 0 +# 5960 +{ +# 5961 +__attribute__((unused)) void *__nv_aligned_device_malloc_impl(size_t, size_t); +# 5962 +return __nv_aligned_device_malloc_impl(size, align); +# 5963 +} +#endif +# 5964 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 758 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +static inline float exp10(const float a) +# 759 +{ +# 760 +return exp10f(a); +# 761 +} +# 763 +static inline float rsqrt(const float a) +# 764 +{ +# 765 +return rsqrtf(a); +# 766 +} +# 768 +static inline float rcbrt(const float a) +# 769 +{ +# 770 +return rcbrtf(a); +# 771 +} +# 773 +static inline float sinpi(const float a) +# 774 +{ +# 775 +return sinpif(a); +# 776 +} +# 778 +static inline float cospi(const float a) +# 779 +{ +# 780 +return cospif(a); +# 781 +} +# 783 +static inline void sincospi(const float a, float *const sptr, float *const cptr) +# 784 +{ +# 785 +sincospif(a, sptr, cptr); +# 786 +} +# 788 +static inline void sincos(const float a, float *const sptr, float *const cptr) +# 789 +{ +# 790 +sincosf(a, sptr, cptr); +# 791 +} +# 793 +static inline float j0(const float a) +# 794 +{ +# 795 +return j0f(a); +# 796 +} +# 798 +static inline float j1(const float a) +# 799 +{ +# 800 +return j1f(a); +# 801 +} +# 803 +static inline float jn(const int n, const float a) +# 804 +{ +# 805 +return jnf(n, a); +# 806 +} +# 808 +static inline float y0(const float a) +# 809 +{ +# 810 +return y0f(a); +# 811 +} +# 813 +static inline float y1(const float a) +# 814 +{ +# 815 +return y1f(a); +# 816 +} +# 818 +static inline float yn(const int n, const float a) +# 819 +{ +# 820 +return ynf(n, a); +# 821 +} +# 823 +__attribute__((unused)) static inline float cyl_bessel_i0(const float a) +# 824 +{int volatile ___ = 1;(void)a; +# 826 +::exit(___);} +#if 0 +# 824 +{ +# 825 +return cyl_bessel_i0f(a); +# 826 +} +#endif +# 828 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +__attribute__((unused)) static inline float cyl_bessel_i1(const float a) +# 829 +{int volatile ___ = 1;(void)a; +# 831 +::exit(___);} +#if 0 +# 829 +{ +# 830 +return cyl_bessel_i1f(a); +# 831 +} +#endif +# 833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +static inline float erfinv(const float a) +# 834 +{ +# 835 +return erfinvf(a); +# 836 +} +# 838 +static inline float erfcinv(const float a) +# 839 +{ +# 840 +return erfcinvf(a); +# 841 +} +# 843 +static inline float normcdfinv(const float a) +# 844 +{ +# 845 +return normcdfinvf(a); +# 846 +} +# 848 +static inline float normcdf(const float a) +# 849 +{ +# 850 +return normcdff(a); +# 851 +} +# 853 +static inline float erfcx(const float a) +# 854 +{ +# 855 +return erfcxf(a); +# 856 +} +# 858 +static inline double copysign(const double a, const float b) +# 859 +{ +# 860 +return copysign(a, static_cast< double>(b)); +# 861 +} +# 863 +static inline double copysign(const float a, const double b) +# 864 +{ +# 865 +return copysign(static_cast< double>(a), b); +# 866 +} +# 868 +static inline unsigned min(const unsigned a, const unsigned b) +# 869 +{ +# 870 +return umin(a, b); +# 871 +} +# 873 +static inline unsigned min(const int a, const unsigned b) +# 874 +{ +# 875 +return umin(static_cast< unsigned>(a), b); +# 876 +} +# 878 +static inline unsigned min(const unsigned a, const int b) +# 879 +{ +# 880 +return umin(a, static_cast< unsigned>(b)); +# 881 +} +# 883 +static inline long min(const long a, const long b) +# 884 +{ +# 885 +long retval; +# 892 +if (sizeof(long) == sizeof(int)) { +# 896 +retval = (static_cast< long>(min(static_cast< int>(a), static_cast< int>(b)))); +# 897 +} else { +# 898 +retval = (static_cast< long>(llmin(static_cast< long long>(a), static_cast< long long>(b)))); +# 899 +} +# 900 +return retval; +# 901 +} +# 903 +static inline unsigned long min(const unsigned long a, const unsigned long b) +# 904 +{ +# 905 +unsigned long retval; +# 910 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 914 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 915 +} else { +# 916 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 917 +} +# 918 +return retval; +# 919 +} +# 921 +static inline unsigned long min(const long a, const unsigned long b) +# 922 +{ +# 923 +unsigned long retval; +# 928 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 932 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 933 +} else { +# 934 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 935 +} +# 936 +return retval; +# 937 +} +# 939 +static inline unsigned long min(const unsigned long a, const long b) +# 940 +{ +# 941 +unsigned long retval; +# 946 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 950 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 951 +} else { +# 952 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 953 +} +# 954 +return retval; +# 955 +} +# 957 +static inline long long min(const long long a, const long long b) +# 958 +{ +# 959 +return llmin(a, b); +# 960 +} +# 962 +static inline unsigned long long min(const unsigned long long a, const unsigned long long b) +# 963 +{ +# 964 +return ullmin(a, b); +# 965 +} +# 967 +static inline unsigned long long min(const long long a, const unsigned long long b) +# 968 +{ +# 969 +return ullmin(static_cast< unsigned long long>(a), b); +# 970 +} +# 972 +static inline unsigned long long min(const unsigned long long a, const long long b) +# 973 +{ +# 974 +return ullmin(a, static_cast< unsigned long long>(b)); +# 975 +} +# 977 +static inline float min(const float a, const float b) +# 978 +{ +# 979 +return fminf(a, b); +# 980 +} +# 982 +static inline double min(const double a, const double b) +# 983 +{ +# 984 +return fmin(a, b); +# 985 +} +# 987 +static inline double min(const float a, const double b) +# 988 +{ +# 989 +return fmin(static_cast< double>(a), b); +# 990 +} +# 992 +static inline double min(const double a, const float b) +# 993 +{ +# 994 +return fmin(a, static_cast< double>(b)); +# 995 +} +# 997 +static inline unsigned max(const unsigned a, const unsigned b) +# 998 +{ +# 999 +return umax(a, b); +# 1000 +} +# 1002 +static inline unsigned max(const int a, const unsigned b) +# 1003 +{ +# 1004 +return umax(static_cast< unsigned>(a), b); +# 1005 +} +# 1007 +static inline unsigned max(const unsigned a, const int b) +# 1008 +{ +# 1009 +return umax(a, static_cast< unsigned>(b)); +# 1010 +} +# 1012 +static inline long max(const long a, const long b) +# 1013 +{ +# 1014 +long retval; +# 1020 +if (sizeof(long) == sizeof(int)) { +# 1024 +retval = (static_cast< long>(max(static_cast< int>(a), static_cast< int>(b)))); +# 1025 +} else { +# 1026 +retval = (static_cast< long>(llmax(static_cast< long long>(a), static_cast< long long>(b)))); +# 1027 +} +# 1028 +return retval; +# 1029 +} +# 1031 +static inline unsigned long max(const unsigned long a, const unsigned long b) +# 1032 +{ +# 1033 +unsigned long retval; +# 1038 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1042 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1043 +} else { +# 1044 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1045 +} +# 1046 +return retval; +# 1047 +} +# 1049 +static inline unsigned long max(const long a, const unsigned long b) +# 1050 +{ +# 1051 +unsigned long retval; +# 1056 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1060 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1061 +} else { +# 1062 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1063 +} +# 1064 +return retval; +# 1065 +} +# 1067 +static inline unsigned long max(const unsigned long a, const long b) +# 1068 +{ +# 1069 +unsigned long retval; +# 1074 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1078 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1079 +} else { +# 1080 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1081 +} +# 1082 +return retval; +# 1083 +} +# 1085 +static inline long long max(const long long a, const long long b) +# 1086 +{ +# 1087 +return llmax(a, b); +# 1088 +} +# 1090 +static inline unsigned long long max(const unsigned long long a, const unsigned long long b) +# 1091 +{ +# 1092 +return ullmax(a, b); +# 1093 +} +# 1095 +static inline unsigned long long max(const long long a, const unsigned long long b) +# 1096 +{ +# 1097 +return ullmax(static_cast< unsigned long long>(a), b); +# 1098 +} +# 1100 +static inline unsigned long long max(const unsigned long long a, const long long b) +# 1101 +{ +# 1102 +return ullmax(a, static_cast< unsigned long long>(b)); +# 1103 +} +# 1105 +static inline float max(const float a, const float b) +# 1106 +{ +# 1107 +return fmaxf(a, b); +# 1108 +} +# 1110 +static inline double max(const double a, const double b) +# 1111 +{ +# 1112 +return fmax(a, b); +# 1113 +} +# 1115 +static inline double max(const float a, const double b) +# 1116 +{ +# 1117 +return fmax(static_cast< double>(a), b); +# 1118 +} +# 1120 +static inline double max(const double a, const float b) +# 1121 +{ +# 1122 +return fmax(a, static_cast< double>(b)); +# 1123 +} +# 1135 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +inline int min(const int a, const int b) +# 1136 +{ +# 1137 +return (a < b) ? a : b; +# 1138 +} +# 1140 +inline unsigned umin(const unsigned a, const unsigned b) +# 1141 +{ +# 1142 +return (a < b) ? a : b; +# 1143 +} +# 1145 +inline long long llmin(const long long a, const long long b) +# 1146 +{ +# 1147 +return (a < b) ? a : b; +# 1148 +} +# 1150 +inline unsigned long long ullmin(const unsigned long long a, const unsigned long long +# 1151 +b) +# 1152 +{ +# 1153 +return (a < b) ? a : b; +# 1154 +} +# 1156 +inline int max(const int a, const int b) +# 1157 +{ +# 1158 +return (a > b) ? a : b; +# 1159 +} +# 1161 +inline unsigned umax(const unsigned a, const unsigned b) +# 1162 +{ +# 1163 +return (a > b) ? a : b; +# 1164 +} +# 1166 +inline long long llmax(const long long a, const long long b) +# 1167 +{ +# 1168 +return (a > b) ? a : b; +# 1169 +} +# 1171 +inline unsigned long long ullmax(const unsigned long long a, const unsigned long long +# 1172 +b) +# 1173 +{ +# 1174 +return (a > b) ? a : b; +# 1175 +} +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +extern "C" { +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimax_s32_relu(const int a, const int b); +# 2509 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax_s16x2_relu(const unsigned a, const unsigned b); +# 2518 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimin_s32_relu(const int a, const int b); +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin_s16x2_relu(const unsigned a, const unsigned b); +# 2539 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimax3_s32(const int a, const int b, const int c); +# 2551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax3_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax3_u32(const unsigned a, const unsigned b, const unsigned c); +# 2572 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax3_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 2581 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimin3_s32(const int a, const int b, const int c); +# 2593 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin3_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 2602 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin3_u32(const unsigned a, const unsigned b, const unsigned c); +# 2614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin3_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimax3_s32_relu(const int a, const int b, const int c); +# 2635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 2644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimin3_s32_relu(const int a, const int b, const int c); +# 2656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 2665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __viaddmax_s32(const int a, const int b, const int c); +# 2677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmax_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 2686 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmax_u32(const unsigned a, const unsigned b, const unsigned c); +# 2698 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmax_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 2707 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __viaddmin_s32(const int a, const int b, const int c); +# 2719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmin_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 2728 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmin_u32(const unsigned a, const unsigned b, const unsigned c); +# 2740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmin_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 2750 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __viaddmax_s32_relu(const int a, const int b, const int c); +# 2762 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmax_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 2772 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __viaddmin_s32_relu(const int a, const int b, const int c); +# 2784 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmin_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 2793 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vibmax_s32(const int a, const int b, bool *const pred); +# 2802 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmax_u32(const unsigned a, const unsigned b, bool *const pred); +# 2811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vibmin_s32(const int a, const int b, bool *const pred); +# 2820 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmin_u32(const unsigned a, const unsigned b, bool *const pred); +# 2834 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmax_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 2848 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmax_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 2862 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmin_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 2876 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmin_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 2883 +} +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +static short __internal_cast_u2s(unsigned short x) +# 117 +{ +# 118 +short res; +# 120 +(void)memcpy(&res, &x, sizeof x); +# 124 +return res; +# 125 +} +# 127 +static inline int __vimax_s32_relu(const int a, const int b) { +# 134 +int ans = max(a, b); +# 136 +return (ans > 0) ? ans : 0; +# 138 +} +# 140 +static inline unsigned __vimax_s16x2_relu(const unsigned a, const unsigned b) { +# 141 +unsigned res; +# 149 +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 150 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 152 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 153 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 156 +short aS_lo = __internal_cast_u2s(aU_lo); +# 157 +short aS_hi = __internal_cast_u2s(aU_hi); +# 159 +short bS_lo = __internal_cast_u2s(bU_lo); +# 160 +short bS_hi = __internal_cast_u2s(bU_hi); +# 163 +int ansI_lo = max(aS_lo, bS_lo); +# 164 +int ansI_hi = max(aS_hi, bS_hi); +# 167 +if (ansI_lo < 0) { ansI_lo = 0; } +# 168 +if (ansI_hi < 0) { ansI_hi = 0; } +# 171 +unsigned ansU_lo = (unsigned)ansI_lo; +# 172 +unsigned ansU_hi = (unsigned)ansI_hi; +# 175 +res = (ansU_lo | (ansU_hi << 16)); +# 178 +return res; +# 179 +} +# 181 +static inline int __vimin_s32_relu(const int a, const int b) { +# 188 +int ans = min(a, b); +# 190 +return (ans > 0) ? ans : 0; +# 192 +} +# 194 +static inline unsigned __vimin_s16x2_relu(const unsigned a, const unsigned b) { +# 195 +unsigned res; +# 203 +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 204 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 206 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 207 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 210 +short aS_lo = __internal_cast_u2s(aU_lo); +# 211 +short aS_hi = __internal_cast_u2s(aU_hi); +# 213 +short bS_lo = __internal_cast_u2s(bU_lo); +# 214 +short bS_hi = __internal_cast_u2s(bU_hi); +# 217 +int ansI_lo = min(aS_lo, bS_lo); +# 218 +int ansI_hi = min(aS_hi, bS_hi); +# 221 +if (ansI_lo < 0) { ansI_lo = 0; } +# 222 +if (ansI_hi < 0) { ansI_hi = 0; } +# 225 +unsigned ansU_lo = (unsigned)ansI_lo; +# 226 +unsigned ansU_hi = (unsigned)ansI_hi; +# 229 +res = (ansU_lo | (ansU_hi << 16)); +# 232 +return res; +# 233 +} +# 235 +static inline int __vimax3_s32(const int a, const int b, const int c) { +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return max(max(a, b), c); +# 247 +} +# 249 +static inline unsigned __vimax3_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 250 +unsigned res; +# 262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 263 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 265 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 266 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 268 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 269 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 272 +short aS_lo = __internal_cast_u2s(aU_lo); +# 273 +short aS_hi = __internal_cast_u2s(aU_hi); +# 275 +short bS_lo = __internal_cast_u2s(bU_lo); +# 276 +short bS_hi = __internal_cast_u2s(bU_hi); +# 278 +short cS_lo = __internal_cast_u2s(cU_lo); +# 279 +short cS_hi = __internal_cast_u2s(cU_hi); +# 282 +unsigned ansU_lo = (unsigned)max(max(aS_lo, bS_lo), cS_lo); +# 283 +unsigned ansU_hi = (unsigned)max(max(aS_hi, bS_hi), cS_hi); +# 286 +res = ((ansU_lo & 65535U) | (ansU_hi << 16)); +# 288 +return res; +# 289 +} +# 291 +static inline unsigned __vimax3_u32(const unsigned a, const unsigned b, const unsigned c) { +# 301 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return max(max(a, b), c); +# 303 +} +# 305 +static inline unsigned __vimax3_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 306 +unsigned res; +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 318 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 320 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 321 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 323 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 324 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 327 +unsigned short ansU_lo = (unsigned short)max(max(aU_lo, bU_lo), cU_lo); +# 328 +unsigned short ansU_hi = (unsigned short)max(max(aU_hi, bU_hi), cU_hi); +# 331 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 334 +return res; +# 335 +} +# 337 +static inline int __vimin3_s32(const int a, const int b, const int c) { +# 347 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return min(min(a, b), c); +# 349 +} +# 351 +static inline unsigned __vimin3_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 352 +unsigned res; +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 364 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 366 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 367 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 369 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 370 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 373 +short aS_lo = __internal_cast_u2s(aU_lo); +# 374 +short aS_hi = __internal_cast_u2s(aU_hi); +# 376 +short bS_lo = __internal_cast_u2s(bU_lo); +# 377 +short bS_hi = __internal_cast_u2s(bU_hi); +# 379 +short cS_lo = __internal_cast_u2s(cU_lo); +# 380 +short cS_hi = __internal_cast_u2s(cU_hi); +# 383 +unsigned ansU_lo = (unsigned)min(min(aS_lo, bS_lo), cS_lo); +# 384 +unsigned ansU_hi = (unsigned)min(min(aS_hi, bS_hi), cS_hi); +# 387 +res = ((ansU_lo & 65535U) | (ansU_hi << 16)); +# 390 +return res; +# 391 +} +# 393 +static inline unsigned __vimin3_u32(const unsigned a, const unsigned b, const unsigned c) { +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return min(min(a, b), c); +# 405 +} +# 407 +static inline unsigned __vimin3_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 408 +unsigned res; +# 419 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 420 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 422 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 423 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 425 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 426 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 429 +unsigned short ansU_lo = (unsigned short)min(min(aU_lo, bU_lo), cU_lo); +# 430 +unsigned short ansU_hi = (unsigned short)min(min(aU_hi, bU_hi), cU_hi); +# 433 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 436 +return res; +# 437 +} +# 439 +static inline int __vimax3_s32_relu(const int a, const int b, const int c) { +# 449 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = max(max(a, b), c); +# 451 +return (ans > 0) ? ans : 0; +# 453 +} +# 455 +static inline unsigned __vimax3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 456 +unsigned res; +# 467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 468 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 470 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 471 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 473 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 474 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 477 +short aS_lo = __internal_cast_u2s(aU_lo); +# 478 +short aS_hi = __internal_cast_u2s(aU_hi); +# 480 +short bS_lo = __internal_cast_u2s(bU_lo); +# 481 +short bS_hi = __internal_cast_u2s(bU_hi); +# 483 +short cS_lo = __internal_cast_u2s(cU_lo); +# 484 +short cS_hi = __internal_cast_u2s(cU_hi); +# 487 +unsigned ansU_lo = (unsigned)max(0, max(max(aS_lo, bS_lo), cS_lo)); +# 488 +unsigned ansU_hi = (unsigned)max(0, max(max(aS_hi, bS_hi), cS_hi)); +# 491 +res = (ansU_lo | (ansU_hi << 16)); +# 494 +return res; +# 495 +} +# 497 +static inline int __vimin3_s32_relu(const int a, const int b, const int c) { +# 507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = min(min(a, b), c); +# 509 +return (ans > 0) ? ans : 0; +# 511 +} +# 513 +static inline unsigned __vimin3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 514 +unsigned res; +# 525 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 526 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 528 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 529 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 531 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 532 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 535 +short aS_lo = __internal_cast_u2s(aU_lo); +# 536 +short aS_hi = __internal_cast_u2s(aU_hi); +# 538 +short bS_lo = __internal_cast_u2s(bU_lo); +# 539 +short bS_hi = __internal_cast_u2s(bU_hi); +# 541 +short cS_lo = __internal_cast_u2s(cU_lo); +# 542 +short cS_hi = __internal_cast_u2s(cU_hi); +# 545 +unsigned ansU_lo = (unsigned)max(0, min(min(aS_lo, bS_lo), cS_lo)); +# 546 +unsigned ansU_hi = (unsigned)max(0, min(min(aS_hi, bS_hi), cS_hi)); +# 549 +res = (ansU_lo | (ansU_hi << 16)); +# 553 +return res; +# 554 +} +# 556 +static inline int __viaddmax_s32(const int a, const int b, const int c) { +# 566 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return max(a + b, c); +# 568 +} +# 570 +static inline unsigned __viaddmax_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 571 +unsigned res; +# 582 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 583 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 585 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 586 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 588 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 589 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 591 +aU_lo += bU_lo; +# 592 +aU_hi += bU_hi; +# 595 +short sS_lo = __internal_cast_u2s(aU_lo); +# 596 +short sS_hi = __internal_cast_u2s(aU_hi); +# 598 +short cS_lo = __internal_cast_u2s(cU_lo); +# 599 +short cS_hi = __internal_cast_u2s(cU_hi); +# 602 +unsigned ansU_lo = (unsigned)max(sS_lo, cS_lo); +# 603 +unsigned ansU_hi = (unsigned)max(sS_hi, cS_hi); +# 606 +res = ((ansU_lo & 65535U) | (ansU_hi << 16)); +# 609 +return res; +# 610 +} +# 612 +static inline unsigned __viaddmax_u32(const unsigned a, const unsigned b, const unsigned c) { +# 622 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return max(a + b, c); +# 624 +} +# 626 +static inline unsigned __viaddmax_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 627 +unsigned res; +# 638 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 639 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 641 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 642 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 644 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 645 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 648 +unsigned short ansU_lo = (unsigned short)max((unsigned short)(aU_lo + bU_lo), cU_lo); +# 649 +unsigned short ansU_hi = (unsigned short)max((unsigned short)(aU_hi + bU_hi), cU_hi); +# 652 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 655 +return res; +# 656 +} +# 658 +static inline int __viaddmin_s32(const int a, const int b, const int c) { +# 668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return min(a + b, c); +# 670 +} +# 672 +static inline unsigned __viaddmin_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 673 +unsigned res; +# 684 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 685 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 687 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 688 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 690 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 691 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 693 +aU_lo += bU_lo; +# 694 +aU_hi += bU_hi; +# 697 +short sS_lo = __internal_cast_u2s(aU_lo); +# 698 +short sS_hi = __internal_cast_u2s(aU_hi); +# 700 +short cS_lo = __internal_cast_u2s(cU_lo); +# 701 +short cS_hi = __internal_cast_u2s(cU_hi); +# 704 +unsigned ansU_lo = (unsigned)min(sS_lo, cS_lo); +# 705 +unsigned ansU_hi = (unsigned)min(sS_hi, cS_hi); +# 708 +res = ((ansU_lo & 65535U) | (ansU_hi << 16)); +# 711 +return res; +# 712 +} +# 714 +static inline unsigned __viaddmin_u32(const unsigned a, const unsigned b, const unsigned c) { +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return min(a + b, c); +# 726 +} +# 728 +static inline unsigned __viaddmin_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 729 +unsigned res; +# 740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 741 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 743 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 744 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 746 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 747 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 750 +unsigned short ansU_lo = (unsigned short)min((unsigned short)(aU_lo + bU_lo), cU_lo); +# 751 +unsigned short ansU_hi = (unsigned short)min((unsigned short)(aU_hi + bU_hi), cU_hi); +# 754 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 757 +return res; +# 758 +} +# 760 +static inline int __viaddmax_s32_relu(const int a, const int b, const int c) { +# 770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = max(a + b, c); +# 772 +return (ans > 0) ? ans : 0; +# 774 +} +# 776 +static inline unsigned __viaddmax_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 777 +unsigned res; +# 788 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 789 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 791 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 792 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 794 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 795 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 797 +aU_lo += bU_lo; +# 798 +aU_hi += bU_hi; +# 801 +short sS_lo = __internal_cast_u2s(aU_lo); +# 802 +short sS_hi = __internal_cast_u2s(aU_hi); +# 804 +short cS_lo = __internal_cast_u2s(cU_lo); +# 805 +short cS_hi = __internal_cast_u2s(cU_hi); +# 808 +unsigned ansU_lo = (unsigned)max(0, max(sS_lo, cS_lo)); +# 809 +unsigned ansU_hi = (unsigned)max(0, max(sS_hi, cS_hi)); +# 812 +res = (ansU_lo | (ansU_hi << 16)); +# 815 +return res; +# 816 +} +# 818 +static inline int __viaddmin_s32_relu(const int a, const int b, const int c) { +# 828 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = min(a + b, c); +# 830 +return (ans > 0) ? ans : 0; +# 832 +} +# 834 +static inline unsigned __viaddmin_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 835 +unsigned res; +# 846 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 847 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 849 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 850 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 852 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 853 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 855 +aU_lo += bU_lo; +# 856 +aU_hi += bU_hi; +# 859 +short sS_lo = __internal_cast_u2s(aU_lo); +# 860 +short sS_hi = __internal_cast_u2s(aU_hi); +# 862 +short cS_lo = __internal_cast_u2s(cU_lo); +# 863 +short cS_hi = __internal_cast_u2s(cU_hi); +# 866 +unsigned ansU_lo = (unsigned)max(0, min(sS_lo, cS_lo)); +# 867 +unsigned ansU_hi = (unsigned)max(0, min(sS_hi, cS_hi)); +# 870 +res = (ansU_lo | (ansU_hi << 16)); +# 873 +return res; +# 874 +} +# 878 +static inline int __vibmax_s32(const int a, const int b, bool *const pred) { +# 892 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = max(a, b); +# 894 +(*pred) = (a >= b); +# 895 +return ans; +# 897 +} +# 899 +static inline unsigned __vibmax_u32(const unsigned a, const unsigned b, bool *const pred) { +# 913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned ans = max(a, b); +# 915 +(*pred) = (a >= b); +# 916 +return ans; +# 918 +} +# 921 +static inline int __vibmin_s32(const int a, const int b, bool *const pred) { +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = min(a, b); +# 937 +(*pred) = (a <= b); +# 938 +return ans; +# 940 +} +# 943 +static inline unsigned __vibmin_u32(const unsigned a, const unsigned b, bool *const pred) { +# 957 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned ans = min(a, b); +# 959 +(*pred) = (a <= b); +# 960 +return ans; +# 962 +} +# 964 +static inline unsigned __vibmax_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 986 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 987 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 989 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 990 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 993 +short aS_lo = __internal_cast_u2s(aU_lo); +# 994 +short aS_hi = __internal_cast_u2s(aU_hi); +# 996 +short bS_lo = __internal_cast_u2s(bU_lo); +# 997 +short bS_hi = __internal_cast_u2s(bU_hi); +# 1000 +unsigned ansU_lo = (unsigned)max(aS_lo, bS_lo); +# 1001 +unsigned ansU_hi = (unsigned)max(aS_hi, bS_hi); +# 1003 +(*pred_hi) = (aS_hi >= bS_hi); +# 1004 +(*pred_lo) = (aS_lo >= bS_lo); +# 1007 +unsigned ans = (ansU_lo & 65535U) | (ansU_hi << 16); +# 1009 +return ans; +# 1011 +} +# 1013 +static inline unsigned __vibmax_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1036 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1038 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1039 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1042 +unsigned short ansU_lo = (unsigned short)max(aU_lo, bU_lo); +# 1043 +unsigned short ansU_hi = (unsigned short)max(aU_hi, bU_hi); +# 1045 +(*pred_hi) = (aU_hi >= bU_hi); +# 1046 +(*pred_lo) = (aU_lo >= bU_lo); +# 1049 +unsigned ans = ((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16); +# 1051 +return ans; +# 1053 +} +# 1055 +static inline unsigned __vibmin_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1078 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1080 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1081 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1084 +short aS_lo = __internal_cast_u2s(aU_lo); +# 1085 +short aS_hi = __internal_cast_u2s(aU_hi); +# 1087 +short bS_lo = __internal_cast_u2s(bU_lo); +# 1088 +short bS_hi = __internal_cast_u2s(bU_hi); +# 1091 +unsigned ansU_lo = (unsigned)min(aS_lo, bS_lo); +# 1092 +unsigned ansU_hi = (unsigned)min(aS_hi, bS_hi); +# 1094 +(*pred_hi) = (aS_hi <= bS_hi); +# 1095 +(*pred_lo) = (aS_lo <= bS_lo); +# 1098 +unsigned ans = (ansU_lo & 65535U) | (ansU_hi << 16); +# 1100 +return ans; +# 1102 +} +# 1104 +static inline unsigned __vibmin_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1127 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1129 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1130 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1133 +unsigned short ansU_lo = (unsigned short)min(aU_lo, bU_lo); +# 1134 +unsigned short ansU_hi = (unsigned short)min(aU_hi, bU_hi); +# 1136 +(*pred_hi) = (aU_hi <= bU_hi); +# 1137 +(*pred_lo) = (aU_lo <= bU_lo); +# 1140 +unsigned ans = ((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16); +# 1142 +return ans; +# 1144 +} +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicAdd(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 89 +{ } +#endif +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAdd(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 91 +{ } +#endif +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicSub(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicSub(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicExch(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicExch(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline float atomicExch(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicMin(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMin(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicMax(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMax(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicInc(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicDec(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicAnd(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 115 +{ } +#endif +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAnd(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 117 +{ } +#endif +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicOr(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 119 +{ } +#endif +# 121 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicOr(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 121 +{ } +#endif +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicXor(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicXor(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 125 +{ } +#endif +# 127 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicCAS(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 127 +{ } +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicCAS(unsigned *address, unsigned compare, unsigned val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +extern "C" { +# 160 +} +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAdd(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 169 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicExch(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicCAS(unsigned long long *address, unsigned long long compare, unsigned long long val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute((deprecated("__any() is deprecated in favor of __any_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppr" "ess this warning)."))) __attribute__((unused)) static inline bool any(bool cond) {int volatile ___ = 1;(void)cond;::exit(___);} +#if 0 +# 175 +{ } +#endif +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute((deprecated("__all() is deprecated in favor of __all_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppr" "ess this warning)."))) __attribute__((unused)) static inline bool all(bool cond) {int volatile ___ = 1;(void)cond;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 90 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern "C" { +# 1142 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +} +# 1150 +__attribute__((unused)) static inline double fma(double a, double b, double c, cudaRoundMode mode); +# 1154 +__attribute__((unused)) static inline double dmul(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1156 +__attribute__((unused)) static inline double dadd(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1158 +__attribute__((unused)) static inline double dsub(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1160 +__attribute__((unused)) static inline int double2int(double a, cudaRoundMode mode = cudaRoundZero); +# 1162 +__attribute__((unused)) static inline unsigned double2uint(double a, cudaRoundMode mode = cudaRoundZero); +# 1164 +__attribute__((unused)) static inline long long double2ll(double a, cudaRoundMode mode = cudaRoundZero); +# 1166 +__attribute__((unused)) static inline unsigned long long double2ull(double a, cudaRoundMode mode = cudaRoundZero); +# 1168 +__attribute__((unused)) static inline double ll2double(long long a, cudaRoundMode mode = cudaRoundNearest); +# 1170 +__attribute__((unused)) static inline double ull2double(unsigned long long a, cudaRoundMode mode = cudaRoundNearest); +# 1172 +__attribute__((unused)) static inline double int2double(int a, cudaRoundMode mode = cudaRoundNearest); +# 1174 +__attribute__((unused)) static inline double uint2double(unsigned a, cudaRoundMode mode = cudaRoundNearest); +# 1176 +__attribute__((unused)) static inline double float2double(float a, cudaRoundMode mode = cudaRoundNearest); +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double fma(double a, double b, double c, cudaRoundMode mode) +# 94 +{int volatile ___ = 1;(void)a;(void)b;(void)c;(void)mode; +# 99 +::exit(___);} +#if 0 +# 94 +{ +# 95 +return (mode == (cudaRoundZero)) ? __fma_rz(a, b, c) : ((mode == (cudaRoundPosInf)) ? __fma_ru(a, b, c) : ((mode == (cudaRoundMinInf)) ? __fma_rd(a, b, c) : __fma_rn(a, b, c))); +# 99 +} +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double dmul(double a, double b, cudaRoundMode mode) +# 102 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 107 +::exit(___);} +#if 0 +# 102 +{ +# 103 +return (mode == (cudaRoundZero)) ? __dmul_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dmul_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dmul_rd(a, b) : __dmul_rn(a, b))); +# 107 +} +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double dadd(double a, double b, cudaRoundMode mode) +# 110 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 115 +::exit(___);} +#if 0 +# 110 +{ +# 111 +return (mode == (cudaRoundZero)) ? __dadd_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dadd_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dadd_rd(a, b) : __dadd_rn(a, b))); +# 115 +} +#endif +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double dsub(double a, double b, cudaRoundMode mode) +# 118 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 123 +::exit(___);} +#if 0 +# 118 +{ +# 119 +return (mode == (cudaRoundZero)) ? __dsub_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dsub_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dsub_rd(a, b) : __dsub_rn(a, b))); +# 123 +} +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline int double2int(double a, cudaRoundMode mode) +# 126 +{int volatile ___ = 1;(void)a;(void)mode; +# 131 +::exit(___);} +#if 0 +# 126 +{ +# 127 +return (mode == (cudaRoundNearest)) ? __double2int_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2int_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2int_rd(a) : __double2int_rz(a))); +# 131 +} +#endif +# 133 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline unsigned double2uint(double a, cudaRoundMode mode) +# 134 +{int volatile ___ = 1;(void)a;(void)mode; +# 139 +::exit(___);} +#if 0 +# 134 +{ +# 135 +return (mode == (cudaRoundNearest)) ? __double2uint_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2uint_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2uint_rd(a) : __double2uint_rz(a))); +# 139 +} +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline long long double2ll(double a, cudaRoundMode mode) +# 142 +{int volatile ___ = 1;(void)a;(void)mode; +# 147 +::exit(___);} +#if 0 +# 142 +{ +# 143 +return (mode == (cudaRoundNearest)) ? __double2ll_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2ll_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2ll_rd(a) : __double2ll_rz(a))); +# 147 +} +#endif +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline unsigned long long double2ull(double a, cudaRoundMode mode) +# 150 +{int volatile ___ = 1;(void)a;(void)mode; +# 155 +::exit(___);} +#if 0 +# 150 +{ +# 151 +return (mode == (cudaRoundNearest)) ? __double2ull_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2ull_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2ull_rd(a) : __double2ull_rz(a))); +# 155 +} +#endif +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double ll2double(long long a, cudaRoundMode mode) +# 158 +{int volatile ___ = 1;(void)a;(void)mode; +# 163 +::exit(___);} +#if 0 +# 158 +{ +# 159 +return (mode == (cudaRoundZero)) ? __ll2double_rz(a) : ((mode == (cudaRoundPosInf)) ? __ll2double_ru(a) : ((mode == (cudaRoundMinInf)) ? __ll2double_rd(a) : __ll2double_rn(a))); +# 163 +} +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double ull2double(unsigned long long a, cudaRoundMode mode) +# 166 +{int volatile ___ = 1;(void)a;(void)mode; +# 171 +::exit(___);} +#if 0 +# 166 +{ +# 167 +return (mode == (cudaRoundZero)) ? __ull2double_rz(a) : ((mode == (cudaRoundPosInf)) ? __ull2double_ru(a) : ((mode == (cudaRoundMinInf)) ? __ull2double_rd(a) : __ull2double_rn(a))); +# 171 +} +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double int2double(int a, cudaRoundMode mode) +# 174 +{int volatile ___ = 1;(void)a;(void)mode; +# 176 +::exit(___);} +#if 0 +# 174 +{ +# 175 +return (double)a; +# 176 +} +#endif +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double uint2double(unsigned a, cudaRoundMode mode) +# 179 +{int volatile ___ = 1;(void)a;(void)mode; +# 181 +::exit(___);} +#if 0 +# 179 +{ +# 180 +return (double)a; +# 181 +} +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double float2double(float a, cudaRoundMode mode) +# 184 +{int volatile ___ = 1;(void)a;(void)mode; +# 186 +::exit(___);} +#if 0 +# 184 +{ +# 185 +return (double)a; +# 186 +} +#endif +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" +__attribute__((unused)) static inline float atomicAdd(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 88 +{ } +#endif +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMin(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 89 +{ } +#endif +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMax(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 91 +{ } +#endif +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicAnd(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicOr(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicXor(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMin(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMax(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicOr(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicXor(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline double atomicAdd(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicAdd_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicAdd_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAdd_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAdd_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 108 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAdd_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAdd_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline float atomicAdd_block(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline float atomicAdd_system(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 117 +{ } +#endif +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline double atomicAdd_block(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 120 +{ } +#endif +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline double atomicAdd_system(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicSub_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 126 +{ } +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicSub_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicSub_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 132 +{ } +#endif +# 135 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicSub_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 135 +{ } +#endif +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicExch_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 138 +{ } +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicExch_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 141 +{ } +#endif +# 144 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicExch_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicExch_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 147 +{ } +#endif +# 150 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicExch_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 150 +{ } +#endif +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicExch_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 153 +{ } +#endif +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline float atomicExch_block(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 156 +{ } +#endif +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline float atomicExch_system(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 162 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicMin_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 162 +{ } +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicMin_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 165 +{ } +#endif +# 168 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMin_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 168 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMin_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMin_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 174 +{ } +#endif +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMin_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 180 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMin_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 180 +{ } +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMin_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 183 +{ } +#endif +# 186 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicMax_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 186 +{ } +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicMax_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 192 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMax_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 192 +{ } +#endif +# 195 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMax_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 195 +{ } +#endif +# 198 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMax_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 198 +{ } +#endif +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMax_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 201 +{ } +#endif +# 204 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMax_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 204 +{ } +#endif +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMax_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 207 +{ } +#endif +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicInc_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 210 +{ } +#endif +# 213 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicInc_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 213 +{ } +#endif +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicDec_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 216 +{ } +#endif +# 219 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicDec_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 219 +{ } +#endif +# 222 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicCAS_block(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 222 +{ } +#endif +# 225 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicCAS_system(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 225 +{ } +#endif +# 228 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicCAS_block(unsigned *address, unsigned compare, unsigned +# 229 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 229 +{ } +#endif +# 232 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicCAS_system(unsigned *address, unsigned compare, unsigned +# 233 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 233 +{ } +#endif +# 236 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicCAS_block(unsigned long long *address, unsigned long long +# 237 +compare, unsigned long long +# 238 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 238 +{ } +#endif +# 241 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicCAS_system(unsigned long long *address, unsigned long long +# 242 +compare, unsigned long long +# 243 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 243 +{ } +#endif +# 246 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicAnd_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 246 +{ } +#endif +# 249 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicAnd_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 249 +{ } +#endif +# 252 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicAnd_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 252 +{ } +#endif +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicAnd_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 255 +{ } +#endif +# 258 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAnd_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 258 +{ } +#endif +# 261 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAnd_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 261 +{ } +#endif +# 264 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAnd_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 264 +{ } +#endif +# 267 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAnd_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 267 +{ } +#endif +# 270 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicOr_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 270 +{ } +#endif +# 273 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicOr_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 273 +{ } +#endif +# 276 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicOr_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 276 +{ } +#endif +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicOr_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 279 +{ } +#endif +# 282 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicOr_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 282 +{ } +#endif +# 285 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicOr_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 285 +{ } +#endif +# 288 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicOr_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 288 +{ } +#endif +# 291 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicOr_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 291 +{ } +#endif +# 294 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicXor_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 294 +{ } +#endif +# 297 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicXor_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 297 +{ } +#endif +# 300 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicXor_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 300 +{ } +#endif +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicXor_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 303 +{ } +#endif +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicXor_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 306 +{ } +#endif +# 309 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicXor_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 309 +{ } +#endif +# 312 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicXor_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 312 +{ } +#endif +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicXor_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 315 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern "C" { +# 1038 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +} +# 1045 +__attribute((deprecated("__ballot() is deprecated in favor of __ballot_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to" " suppress this warning)."))) __attribute__((unused)) static inline unsigned ballot(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1045 +{ } +#endif +# 1047 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline int syncthreads_count(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1047 +{ } +#endif +# 1049 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline bool syncthreads_and(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1049 +{ } +#endif +# 1051 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline bool syncthreads_or(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1051 +{ } +#endif +# 1056 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isGlobal(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1056 +{ } +#endif +# 1057 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1057 +{ } +#endif +# 1058 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isConstant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1058 +{ } +#endif +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isLocal(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1059 +{ } +#endif +# 1061 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isGridConstant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1061 +{ } +#endif +# 1063 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_global(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1063 +{ } +#endif +# 1064 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_shared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1064 +{ } +#endif +# 1065 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_constant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1065 +{ } +#endif +# 1066 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_local(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1066 +{ } +#endif +# 1068 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_grid_constant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1068 +{ } +#endif +# 1071 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_global_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1071 +{ } +#endif +# 1072 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_shared_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1072 +{ } +#endif +# 1073 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_constant_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1073 +{ } +#endif +# 1074 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_local_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1074 +{ } +#endif +# 1076 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_grid_constant_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1076 +{ } +#endif +# 1090 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static inline unsigned short __nv_bswap16(unsigned short x) { +# 1092 +return __builtin_bswap16(x); +# 1098 +} +# 1109 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static inline unsigned __nv_bswap32(unsigned x) { +# 1111 +return __builtin_bswap32(x); +# 1118 +} +# 1129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static inline unsigned long long __nv_bswap64(unsigned long long x) { +# 1131 +return __builtin_bswap64(x); +# 1138 +} +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __fns(unsigned mask, unsigned base, int offset) {int volatile ___ = 1;(void)mask;(void)base;(void)offset;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 124 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline void __barrier_sync(unsigned id) {int volatile ___ = 1;(void)id;::exit(___);} +#if 0 +# 124 +{ } +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline void __barrier_sync_count(unsigned id, unsigned cnt) {int volatile ___ = 1;(void)id;(void)cnt;::exit(___);} +#if 0 +# 125 +{ } +#endif +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline void __syncwarp(unsigned mask = 4294967295U) {int volatile ___ = 1;(void)mask;::exit(___);} +#if 0 +# 126 +{ } +#endif +# 127 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __all_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 127 +{ } +#endif +# 128 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __any_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 128 +{ } +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __uni_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 130 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __ballot_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 130 +{ } +#endif +# 131 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __activemask() {int volatile ___ = 1;::exit(___);} +#if 0 +# 131 +{ } +#endif +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline int __shfl(int var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 140 +{ } +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned __shfl(unsigned var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 141 +{ } +#endif +# 142 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_up(int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 142 +{ } +#endif +# 143 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_up(unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 143 +{ } +#endif +# 144 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_down(int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_down(unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 145 +{ } +#endif +# 146 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_xor(int var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 146 +{ } +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_xor(unsigned var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 147 +{ } +#endif +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline float __shfl(float var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 148 +{ } +#endif +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_up(float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 149 +{ } +#endif +# 150 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_down(float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 150 +{ } +#endif +# 151 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_xor(float var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 151 +{ } +#endif +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __shfl_sync(unsigned mask, int var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 154 +{ } +#endif +# 155 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __shfl_sync(unsigned mask, unsigned var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 155 +{ } +#endif +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __shfl_up_sync(unsigned mask, int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 156 +{ } +#endif +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __shfl_up_sync(unsigned mask, unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 157 +{ } +#endif +# 158 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __shfl_down_sync(unsigned mask, int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 158 +{ } +#endif +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __shfl_down_sync(unsigned mask, unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 160 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 160 +{ } +#endif +# 161 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __shfl_xor_sync(unsigned mask, unsigned var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 161 +{ } +#endif +# 162 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline float __shfl_sync(unsigned mask, float var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 162 +{ } +#endif +# 163 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline float __shfl_up_sync(unsigned mask, float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 163 +{ } +#endif +# 164 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline float __shfl_down_sync(unsigned mask, float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 164 +{ } +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 165 +{ } +#endif +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl(unsigned long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 169 +{ } +#endif +# 170 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline long long __shfl(long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 170 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_up(long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 172 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_up(unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 172 +{ } +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_down(long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_down(unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 174 +{ } +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_xor(long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 175 +{ } +#endif +# 176 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 176 +{ } +#endif +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline double __shfl(double var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_up(double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 178 +{ } +#endif +# 179 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_down(double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 179 +{ } +#endif +# 180 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_xor(double var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 180 +{ } +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long long __shfl_sync(unsigned mask, long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 183 +{ } +#endif +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 184 +{ } +#endif +# 185 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long long __shfl_up_sync(unsigned mask, long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 185 +{ } +#endif +# 186 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 186 +{ } +#endif +# 187 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long long __shfl_down_sync(unsigned mask, long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 187 +{ } +#endif +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 188 +{ } +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 190 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 190 +{ } +#endif +# 191 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline double __shfl_sync(unsigned mask, double var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 191 +{ } +#endif +# 192 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline double __shfl_up_sync(unsigned mask, double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 192 +{ } +#endif +# 193 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline double __shfl_down_sync(unsigned mask, double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 193 +{ } +#endif +# 194 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 194 +{ } +#endif +# 198 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline long __shfl(long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 198 +{ } +#endif +# 199 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned long __shfl(unsigned long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 199 +{ } +#endif +# 200 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_up(long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 200 +{ } +#endif +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_up(unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 201 +{ } +#endif +# 202 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_down(long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 202 +{ } +#endif +# 203 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_down(unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 203 +{ } +#endif +# 204 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_xor(long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 204 +{ } +#endif +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_xor(unsigned long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 205 +{ } +#endif +# 208 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long __shfl_sync(unsigned mask, long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 208 +{ } +#endif +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 209 +{ } +#endif +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long __shfl_up_sync(unsigned mask, long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 210 +{ } +#endif +# 211 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 211 +{ } +#endif +# 212 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long __shfl_down_sync(unsigned mask, long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 212 +{ } +#endif +# 213 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 213 +{ } +#endif +# 214 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 214 +{ } +#endif +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 215 +{ } +#endif +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldg(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 91 +{ } +#endif +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldg(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 92 +{ } +#endif +# 94 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldg(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 94 +{ } +#endif +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldg(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldg(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldg(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldg(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldg(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldg(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldg(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldg(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldg(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldg(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldg(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldg(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 108 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldg(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldg(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldg(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldg(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldg(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldg(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldg(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldg(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 115 +{ } +#endif +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldg(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 116 +{ } +#endif +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldg(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 117 +{ } +#endif +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldg(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 119 +{ } +#endif +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldg(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 120 +{ } +#endif +# 121 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldg(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 121 +{ } +#endif +# 122 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldg(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 122 +{ } +#endif +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldg(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 128 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldcg(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 128 +{ } +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldcg(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 131 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldcg(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 131 +{ } +#endif +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldcg(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 132 +{ } +#endif +# 133 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldcg(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 133 +{ } +#endif +# 134 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldcg(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 134 +{ } +#endif +# 135 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldcg(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 135 +{ } +#endif +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldcg(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 137 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldcg(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 137 +{ } +#endif +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldcg(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 138 +{ } +#endif +# 139 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldcg(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 139 +{ } +#endif +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldcg(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 140 +{ } +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldcg(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 141 +{ } +#endif +# 142 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldcg(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 142 +{ } +#endif +# 144 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldcg(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldcg(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 145 +{ } +#endif +# 146 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldcg(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 146 +{ } +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldcg(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 147 +{ } +#endif +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldcg(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 148 +{ } +#endif +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldcg(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 149 +{ } +#endif +# 150 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldcg(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 150 +{ } +#endif +# 151 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldcg(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 151 +{ } +#endif +# 152 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldcg(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 152 +{ } +#endif +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldcg(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 153 +{ } +#endif +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldcg(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 154 +{ } +#endif +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldcg(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 156 +{ } +#endif +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldcg(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 157 +{ } +#endif +# 158 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldcg(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 158 +{ } +#endif +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldcg(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 160 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldcg(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 160 +{ } +#endif +# 164 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldca(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 164 +{ } +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldca(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 165 +{ } +#endif +# 167 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldca(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 167 +{ } +#endif +# 168 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldca(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 168 +{ } +#endif +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldca(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 169 +{ } +#endif +# 170 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldca(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 170 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldca(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 172 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldca(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 172 +{ } +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldca(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldca(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 174 +{ } +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldca(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 175 +{ } +#endif +# 176 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldca(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 176 +{ } +#endif +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldca(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldca(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 178 +{ } +#endif +# 180 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldca(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 180 +{ } +#endif +# 181 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldca(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 181 +{ } +#endif +# 182 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldca(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 182 +{ } +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldca(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 183 +{ } +#endif +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldca(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 184 +{ } +#endif +# 185 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldca(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 185 +{ } +#endif +# 186 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldca(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 186 +{ } +#endif +# 187 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldca(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 187 +{ } +#endif +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldca(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 188 +{ } +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldca(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 190 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldca(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 190 +{ } +#endif +# 192 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldca(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 192 +{ } +#endif +# 193 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldca(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 193 +{ } +#endif +# 194 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldca(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 194 +{ } +#endif +# 195 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldca(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 195 +{ } +#endif +# 196 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldca(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 196 +{ } +#endif +# 200 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldcs(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 200 +{ } +#endif +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldcs(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 201 +{ } +#endif +# 203 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldcs(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 203 +{ } +#endif +# 204 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldcs(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 204 +{ } +#endif +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldcs(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 205 +{ } +#endif +# 206 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldcs(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 206 +{ } +#endif +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldcs(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 207 +{ } +#endif +# 208 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldcs(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 208 +{ } +#endif +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldcs(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 209 +{ } +#endif +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldcs(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 210 +{ } +#endif +# 211 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldcs(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 211 +{ } +#endif +# 212 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldcs(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 212 +{ } +#endif +# 213 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldcs(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 213 +{ } +#endif +# 214 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldcs(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 214 +{ } +#endif +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldcs(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 216 +{ } +#endif +# 217 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldcs(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 217 +{ } +#endif +# 218 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldcs(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 218 +{ } +#endif +# 219 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldcs(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 219 +{ } +#endif +# 220 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldcs(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 220 +{ } +#endif +# 221 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldcs(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 221 +{ } +#endif +# 222 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldcs(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 222 +{ } +#endif +# 223 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldcs(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 223 +{ } +#endif +# 224 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldcs(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 224 +{ } +#endif +# 225 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldcs(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 225 +{ } +#endif +# 226 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldcs(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 226 +{ } +#endif +# 228 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldcs(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 228 +{ } +#endif +# 229 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldcs(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 229 +{ } +#endif +# 230 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldcs(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 230 +{ } +#endif +# 231 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldcs(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 231 +{ } +#endif +# 232 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldcs(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 232 +{ } +#endif +# 236 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldlu(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 236 +{ } +#endif +# 237 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldlu(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 237 +{ } +#endif +# 239 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldlu(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 239 +{ } +#endif +# 240 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldlu(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 240 +{ } +#endif +# 241 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldlu(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 241 +{ } +#endif +# 242 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldlu(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 242 +{ } +#endif +# 243 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldlu(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 243 +{ } +#endif +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldlu(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 244 +{ } +#endif +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldlu(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 245 +{ } +#endif +# 246 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldlu(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 246 +{ } +#endif +# 247 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldlu(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 247 +{ } +#endif +# 248 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldlu(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 248 +{ } +#endif +# 249 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldlu(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 249 +{ } +#endif +# 250 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldlu(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 250 +{ } +#endif +# 252 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldlu(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 252 +{ } +#endif +# 253 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldlu(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 253 +{ } +#endif +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldlu(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 254 +{ } +#endif +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldlu(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 255 +{ } +#endif +# 256 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldlu(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 256 +{ } +#endif +# 257 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldlu(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 257 +{ } +#endif +# 258 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldlu(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 258 +{ } +#endif +# 259 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldlu(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 259 +{ } +#endif +# 260 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldlu(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 260 +{ } +#endif +# 261 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldlu(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 261 +{ } +#endif +# 262 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldlu(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 262 +{ } +#endif +# 264 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldlu(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 264 +{ } +#endif +# 265 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldlu(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 265 +{ } +#endif +# 266 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldlu(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 266 +{ } +#endif +# 267 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldlu(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 267 +{ } +#endif +# 268 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldlu(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 268 +{ } +#endif +# 272 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldcv(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 272 +{ } +#endif +# 273 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldcv(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 273 +{ } +#endif +# 275 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldcv(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 275 +{ } +#endif +# 276 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldcv(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 276 +{ } +#endif +# 277 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldcv(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 277 +{ } +#endif +# 278 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldcv(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 278 +{ } +#endif +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldcv(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 279 +{ } +#endif +# 280 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldcv(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 280 +{ } +#endif +# 281 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldcv(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 281 +{ } +#endif +# 282 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldcv(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 282 +{ } +#endif +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldcv(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 283 +{ } +#endif +# 284 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldcv(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 284 +{ } +#endif +# 285 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldcv(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 285 +{ } +#endif +# 286 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldcv(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 286 +{ } +#endif +# 288 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldcv(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 288 +{ } +#endif +# 289 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldcv(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 289 +{ } +#endif +# 290 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldcv(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 290 +{ } +#endif +# 291 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldcv(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 291 +{ } +#endif +# 292 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldcv(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 292 +{ } +#endif +# 293 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldcv(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 293 +{ } +#endif +# 294 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldcv(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 294 +{ } +#endif +# 295 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldcv(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 295 +{ } +#endif +# 296 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldcv(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 296 +{ } +#endif +# 297 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldcv(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 297 +{ } +#endif +# 298 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldcv(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 298 +{ } +#endif +# 300 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldcv(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 300 +{ } +#endif +# 301 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldcv(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 301 +{ } +#endif +# 302 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldcv(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 302 +{ } +#endif +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldcv(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 303 +{ } +#endif +# 304 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldcv(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 304 +{ } +#endif +# 308 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 308 +{ } +#endif +# 309 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 309 +{ } +#endif +# 311 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 311 +{ } +#endif +# 312 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 312 +{ } +#endif +# 313 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 313 +{ } +#endif +# 314 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 314 +{ } +#endif +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 315 +{ } +#endif +# 316 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 316 +{ } +#endif +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 317 +{ } +#endif +# 318 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 318 +{ } +#endif +# 319 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 319 +{ } +#endif +# 320 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 320 +{ } +#endif +# 321 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 321 +{ } +#endif +# 322 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 322 +{ } +#endif +# 324 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 324 +{ } +#endif +# 325 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 325 +{ } +#endif +# 326 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 326 +{ } +#endif +# 327 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 327 +{ } +#endif +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 328 +{ } +#endif +# 329 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 329 +{ } +#endif +# 330 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 330 +{ } +#endif +# 331 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 331 +{ } +#endif +# 332 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 332 +{ } +#endif +# 333 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 333 +{ } +#endif +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 334 +{ } +#endif +# 336 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 336 +{ } +#endif +# 337 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 337 +{ } +#endif +# 338 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 338 +{ } +#endif +# 339 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 339 +{ } +#endif +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 340 +{ } +#endif +# 344 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 344 +{ } +#endif +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 345 +{ } +#endif +# 347 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 347 +{ } +#endif +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 348 +{ } +#endif +# 349 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 349 +{ } +#endif +# 350 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 350 +{ } +#endif +# 351 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 351 +{ } +#endif +# 352 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 352 +{ } +#endif +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 353 +{ } +#endif +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 354 +{ } +#endif +# 355 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 355 +{ } +#endif +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 356 +{ } +#endif +# 357 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 357 +{ } +#endif +# 358 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 358 +{ } +#endif +# 360 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 360 +{ } +#endif +# 361 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 361 +{ } +#endif +# 362 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 362 +{ } +#endif +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 363 +{ } +#endif +# 364 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 364 +{ } +#endif +# 365 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 365 +{ } +#endif +# 366 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 366 +{ } +#endif +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 367 +{ } +#endif +# 368 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 368 +{ } +#endif +# 369 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 369 +{ } +#endif +# 370 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 370 +{ } +#endif +# 372 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 372 +{ } +#endif +# 373 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 373 +{ } +#endif +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 374 +{ } +#endif +# 375 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 375 +{ } +#endif +# 376 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 376 +{ } +#endif +# 380 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 380 +{ } +#endif +# 381 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 381 +{ } +#endif +# 383 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 383 +{ } +#endif +# 384 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 384 +{ } +#endif +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 385 +{ } +#endif +# 386 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 386 +{ } +#endif +# 387 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 387 +{ } +#endif +# 388 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 388 +{ } +#endif +# 389 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 389 +{ } +#endif +# 390 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 390 +{ } +#endif +# 391 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 391 +{ } +#endif +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 392 +{ } +#endif +# 393 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 393 +{ } +#endif +# 394 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 394 +{ } +#endif +# 396 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 396 +{ } +#endif +# 397 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 397 +{ } +#endif +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 398 +{ } +#endif +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 399 +{ } +#endif +# 400 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 400 +{ } +#endif +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 401 +{ } +#endif +# 402 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 402 +{ } +#endif +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 403 +{ } +#endif +# 404 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 404 +{ } +#endif +# 405 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 405 +{ } +#endif +# 406 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 406 +{ } +#endif +# 408 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 408 +{ } +#endif +# 409 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 409 +{ } +#endif +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 410 +{ } +#endif +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 411 +{ } +#endif +# 412 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 412 +{ } +#endif +# 416 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 416 +{ } +#endif +# 417 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 417 +{ } +#endif +# 419 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 419 +{ } +#endif +# 420 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 420 +{ } +#endif +# 421 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 421 +{ } +#endif +# 422 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 422 +{ } +#endif +# 423 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 423 +{ } +#endif +# 424 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 424 +{ } +#endif +# 425 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 425 +{ } +#endif +# 426 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 426 +{ } +#endif +# 427 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 427 +{ } +#endif +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 428 +{ } +#endif +# 429 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 429 +{ } +#endif +# 430 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 430 +{ } +#endif +# 432 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 432 +{ } +#endif +# 433 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 433 +{ } +#endif +# 434 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 434 +{ } +#endif +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 435 +{ } +#endif +# 436 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 436 +{ } +#endif +# 437 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 437 +{ } +#endif +# 438 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 438 +{ } +#endif +# 439 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 439 +{ } +#endif +# 440 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 440 +{ } +#endif +# 441 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 441 +{ } +#endif +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 442 +{ } +#endif +# 444 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 444 +{ } +#endif +# 445 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 445 +{ } +#endif +# 446 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 446 +{ } +#endif +# 447 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 447 +{ } +#endif +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 448 +{ } +#endif +# 465 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __funnelshift_l(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 465 +{ } +#endif +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __funnelshift_lc(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 477 +{ } +#endif +# 490 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __funnelshift_r(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 490 +{ } +#endif +# 502 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __funnelshift_rc(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 502 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp2a_lo(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp2a_lo(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp2a_lo(short2 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 125 +{ } +#endif +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp2a_lo(ushort2 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp2a_hi(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 148 +{ } +#endif +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp2a_hi(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp2a_hi(short2 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 182 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp2a_hi(ushort2 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 182 +{ } +#endif +# 197 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp4a(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 197 +{ } +#endif +# 206 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp4a(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 206 +{ } +#endif +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp4a(char4 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 216 +{ } +#endif +# 225 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp4a(uchar4 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 225 +{ } +#endif +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned long long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, long long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, float value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, double value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 108 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, int value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned long long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, long long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, float value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, double value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline void __nanosleep(unsigned ns) {int volatile ___ = 1;(void)ns;::exit(___);} +#if 0 +# 116 +{ } +#endif +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned short atomicCAS(unsigned short *address, unsigned short compare, unsigned short val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 118 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_add_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_min_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_max_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline int __reduce_add_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline int __reduce_min_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline int __reduce_max_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_and_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_or_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_xor_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +extern "C" { +# 113 +__attribute__((unused)) inline void *__nv_associate_access_property(const void *ptr, unsigned long long +# 114 +property) {int volatile ___ = 1;(void)ptr;(void)property; +# 118 +::exit(___);} +#if 0 +# 114 +{ +# 115 +__attribute__((unused)) extern void *__nv_associate_access_property_impl(const void *, unsigned long long); +# 117 +return __nv_associate_access_property_impl(ptr, property); +# 118 +} +#endif +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_4(void *dst, const void * +# 121 +src, unsigned +# 122 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 127 +::exit(___);} +#if 0 +# 122 +{ +# 123 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_4_impl(void *, const void *, unsigned); +# 126 +__nv_memcpy_async_shared_global_4_impl(dst, src, src_size); +# 127 +} +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_8(void *dst, const void * +# 130 +src, unsigned +# 131 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 136 +::exit(___);} +#if 0 +# 131 +{ +# 132 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_8_impl(void *, const void *, unsigned); +# 135 +__nv_memcpy_async_shared_global_8_impl(dst, src, src_size); +# 136 +} +#endif +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_16(void *dst, const void * +# 139 +src, unsigned +# 140 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 145 +::exit(___);} +#if 0 +# 140 +{ +# 141 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_16_impl(void *, const void *, unsigned); +# 144 +__nv_memcpy_async_shared_global_16_impl(dst, src, src_size); +# 145 +} +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +} +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __isCtaShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 92 +{ } +#endif +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __isClusterShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 94 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void *__cluster_map_shared_rank(const void *ptr, unsigned target_block_rank) {int volatile ___ = 1;(void)ptr;(void)target_block_rank;::exit(___);} +#if 0 +# 94 +{ } +#endif +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __cluster_query_shared_rank(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline uint2 __cluster_map_shared_multicast(const void *ptr, unsigned cluster_cta_mask) {int volatile ___ = 1;(void)ptr;(void)cluster_cta_mask;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterDimIsSpecified() {int volatile ___ = 1;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterDim() {int volatile ___ = 1;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterRelativeBlockIdx() {int volatile ___ = 1;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterGridDimInClusters() {int volatile ___ = 1;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterIdx() {int volatile ___ = 1;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterRelativeBlockRank() {int volatile ___ = 1;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterSizeInBlocks() {int volatile ___ = 1;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_arrive() {int volatile ___ = 1;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_arrive_relaxed() {int volatile ___ = 1;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_wait() {int volatile ___ = 1;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __threadfence_cluster() {int volatile ___ = 1;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float2 atomicAdd(float2 *__address, float2 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float2 atomicAdd_block(float2 *__address, float2 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float2 atomicAdd_system(float2 *__address, float2 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float4 atomicAdd(float4 *__address, float4 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float4 atomicAdd_block(float4 *__address, float4 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float4 atomicAdd_system(float4 *__address, float4 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +extern "C" { +# 132 +} +# 139 +template< bool __b, class _T> +# 140 +struct __nv_atomic_enable_if { }; +# 142 +template< class _T> +# 143 +struct __nv_atomic_enable_if< true, _T> { typedef _T __type; }; +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> +# 154 +struct __nv_atomic_triv_cp_helper { +# 161 +static const bool __val = __is_trivially_copyable(_T); +# 166 +}; +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 203 +atomicCAS(_T *__address, _T __compare, _T __val) {int volatile ___ = 1;(void)__address;(void)__compare;(void)__val; +# 210 +::exit(___);} +#if 0 +# 203 +{ +# 204 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 204 +{ } +#endif +# 204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 205 +__u128AtomicCAS((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__compare)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 209 +return __u.__ret; +# 210 +} +#endif +# 212 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 214 +atomicCAS_block(_T *__address, _T __compare, _T __val) {int volatile ___ = 1;(void)__address;(void)__compare;(void)__val; +# 221 +::exit(___);} +#if 0 +# 214 +{ +# 215 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 215 +{ } +#endif +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 216 +__u128AtomicCAS_block((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__compare)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 220 +return __u.__ret; +# 221 +} +#endif +# 223 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 225 +atomicCAS_system(_T *__address, _T __compare, _T __val) {int volatile ___ = 1;(void)__address;(void)__compare;(void)__val; +# 232 +::exit(___);} +#if 0 +# 225 +{ +# 226 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 226 +{ } +#endif +# 226 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 227 +__u128AtomicCAS_system((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__compare)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 231 +return __u.__ret; +# 232 +} +#endif +# 234 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 236 +atomicExch(_T *__address, _T __val) {int volatile ___ = 1;(void)__address;(void)__val; +# 242 +::exit(___);} +#if 0 +# 236 +{ +# 237 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 237 +{ } +#endif +# 237 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 238 +__u128AtomicExch((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 241 +return __u.__ret; +# 242 +} +#endif +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 246 +atomicExch_block(_T *__address, _T __val) {int volatile ___ = 1;(void)__address;(void)__val; +# 252 +::exit(___);} +#if 0 +# 246 +{ +# 247 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 247 +{ } +#endif +# 247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 248 +__u128AtomicExch_block((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 251 +return __u.__ret; +# 252 +} +#endif +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 256 +atomicExch_system(_T *__address, _T __val) {int volatile ___ = 1;(void)__address;(void)__val; +# 262 +::exit(___);} +#if 0 +# 256 +{ +# 257 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 257 +{ } +#endif +# 257 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 258 +__u128AtomicExch_system((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 261 +return __u.__ret; +# 262 +} +#endif +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __ffma2_rn(float2 x, float2 y, float2 z) {int volatile ___ = 1;(void)x;(void)y;(void)z;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __ffma2_rz(float2 x, float2 y, float2 z) {int volatile ___ = 1;(void)x;(void)y;(void)z;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 124 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __ffma2_rd(float2 x, float2 y, float2 z) {int volatile ___ = 1;(void)x;(void)y;(void)z;::exit(___);} +#if 0 +# 124 +{ } +#endif +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __ffma2_ru(float2 x, float2 y, float2 z) {int volatile ___ = 1;(void)x;(void)y;(void)z;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fadd2_rn(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 149 +{ } +#endif +# 161 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fadd2_rz(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 161 +{ } +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fadd2_rd(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 185 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fadd2_ru(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 185 +{ } +#endif +# 198 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fmul2_rn(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 198 +{ } +#endif +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fmul2_rz(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 210 +{ } +#endif +# 222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fmul2_rd(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 222 +{ } +#endif +# 234 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fmul2_ru(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 234 +{ } +#endif +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> struct __nv_itex_trait { }; +# 66 +template<> struct __nv_itex_trait< char> { typedef void type; }; +# 67 +template<> struct __nv_itex_trait< signed char> { typedef void type; }; +# 68 +template<> struct __nv_itex_trait< char1> { typedef void type; }; +# 69 +template<> struct __nv_itex_trait< char2> { typedef void type; }; +# 70 +template<> struct __nv_itex_trait< char4> { typedef void type; }; +# 71 +template<> struct __nv_itex_trait< unsigned char> { typedef void type; }; +# 72 +template<> struct __nv_itex_trait< uchar1> { typedef void type; }; +# 73 +template<> struct __nv_itex_trait< uchar2> { typedef void type; }; +# 74 +template<> struct __nv_itex_trait< uchar4> { typedef void type; }; +# 75 +template<> struct __nv_itex_trait< short> { typedef void type; }; +# 76 +template<> struct __nv_itex_trait< short1> { typedef void type; }; +# 77 +template<> struct __nv_itex_trait< short2> { typedef void type; }; +# 78 +template<> struct __nv_itex_trait< short4> { typedef void type; }; +# 79 +template<> struct __nv_itex_trait< unsigned short> { typedef void type; }; +# 80 +template<> struct __nv_itex_trait< ushort1> { typedef void type; }; +# 81 +template<> struct __nv_itex_trait< ushort2> { typedef void type; }; +# 82 +template<> struct __nv_itex_trait< ushort4> { typedef void type; }; +# 83 +template<> struct __nv_itex_trait< int> { typedef void type; }; +# 84 +template<> struct __nv_itex_trait< int1> { typedef void type; }; +# 85 +template<> struct __nv_itex_trait< int2> { typedef void type; }; +# 86 +template<> struct __nv_itex_trait< int4> { typedef void type; }; +# 87 +template<> struct __nv_itex_trait< unsigned> { typedef void type; }; +# 88 +template<> struct __nv_itex_trait< uint1> { typedef void type; }; +# 89 +template<> struct __nv_itex_trait< uint2> { typedef void type; }; +# 90 +template<> struct __nv_itex_trait< uint4> { typedef void type; }; +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template<> struct __nv_itex_trait< float> { typedef void type; }; +# 102 +template<> struct __nv_itex_trait< float1> { typedef void type; }; +# 103 +template<> struct __nv_itex_trait< float2> { typedef void type; }; +# 104 +template<> struct __nv_itex_trait< float4> { typedef void type; }; +# 108 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 109 +tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +# 110 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x; +# 112 +::exit(___);} +#if 0 +# 110 +{ +# 111 +__nv_tex_surf_handler("__itex1Dfetch", ptr, obj, x); +# 112 +} +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 115 +tex1Dfetch(cudaTextureObject_t texObject, int x) +# 116 +{int volatile ___ = 1;(void)texObject;(void)x; +# 120 +::exit(___);} +#if 0 +# 116 +{ +# 117 +T ret; +# 118 +tex1Dfetch(&ret, texObject, x); +# 119 +return ret; +# 120 +} +#endif +# 122 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 123 +tex1D(T *ptr, cudaTextureObject_t obj, float x) +# 124 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x; +# 126 +::exit(___);} +#if 0 +# 124 +{ +# 125 +__nv_tex_surf_handler("__itex1D", ptr, obj, x); +# 126 +} +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 130 +tex1D(cudaTextureObject_t texObject, float x) +# 131 +{int volatile ___ = 1;(void)texObject;(void)x; +# 135 +::exit(___);} +#if 0 +# 131 +{ +# 132 +T ret; +# 133 +tex1D(&ret, texObject, x); +# 134 +return ret; +# 135 +} +#endif +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 139 +tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +# 140 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y; +# 142 +::exit(___);} +#if 0 +# 140 +{ +# 141 +__nv_tex_surf_handler("__itex2D", ptr, obj, x, y); +# 142 +} +#endif +# 144 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 145 +tex2D(cudaTextureObject_t texObject, float x, float y) +# 146 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y; +# 150 +::exit(___);} +#if 0 +# 146 +{ +# 147 +T ret; +# 148 +tex2D(&ret, texObject, x, y); +# 149 +return ret; +# 150 +} +#endif +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 154 +tex2D(T *ptr, cudaTextureObject_t obj, float x, float y, bool * +# 155 +isResident) +# 156 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)isResident; +# 160 +::exit(___);} +#if 0 +# 156 +{ +# 157 +unsigned char res; +# 158 +__nv_tex_surf_handler("__itex2D_sparse", ptr, obj, x, y, &res); +# 159 +(*isResident) = (res != 0); +# 160 +} +#endif +# 162 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 163 +tex2D(cudaTextureObject_t texObject, float x, float y, bool *isResident) +# 164 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)isResident; +# 168 +::exit(___);} +#if 0 +# 164 +{ +# 165 +T ret; +# 166 +tex2D(&ret, texObject, x, y, isResident); +# 167 +return ret; +# 168 +} +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 174 +tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +# 175 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z; +# 177 +::exit(___);} +#if 0 +# 175 +{ +# 176 +__nv_tex_surf_handler("__itex3D", ptr, obj, x, y, z); +# 177 +} +#endif +# 179 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 180 +tex3D(cudaTextureObject_t texObject, float x, float y, float z) +# 181 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z; +# 185 +::exit(___);} +#if 0 +# 181 +{ +# 182 +T ret; +# 183 +tex3D(&ret, texObject, x, y, z); +# 184 +return ret; +# 185 +} +#endif +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 189 +tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z, bool * +# 190 +isResident) +# 191 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)isResident; +# 195 +::exit(___);} +#if 0 +# 191 +{ +# 192 +unsigned char res; +# 193 +__nv_tex_surf_handler("__itex3D_sparse", ptr, obj, x, y, z, &res); +# 194 +(*isResident) = (res != 0); +# 195 +} +#endif +# 197 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 198 +tex3D(cudaTextureObject_t texObject, float x, float y, float z, bool *isResident) +# 199 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)isResident; +# 203 +::exit(___);} +#if 0 +# 199 +{ +# 200 +T ret; +# 201 +tex3D(&ret, texObject, x, y, z, isResident); +# 202 +return ret; +# 203 +} +#endif +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 208 +tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +# 209 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer; +# 211 +::exit(___);} +#if 0 +# 209 +{ +# 210 +__nv_tex_surf_handler("__itex1DLayered", ptr, obj, x, layer); +# 211 +} +#endif +# 213 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 214 +tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +# 215 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer; +# 219 +::exit(___);} +#if 0 +# 215 +{ +# 216 +T ret; +# 217 +tex1DLayered(&ret, texObject, x, layer); +# 218 +return ret; +# 219 +} +#endif +# 221 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 222 +tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +# 223 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer; +# 225 +::exit(___);} +#if 0 +# 223 +{ +# 224 +__nv_tex_surf_handler("__itex2DLayered", ptr, obj, x, y, layer); +# 225 +} +#endif +# 227 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 228 +tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +# 229 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer; +# 233 +::exit(___);} +#if 0 +# 229 +{ +# 230 +T ret; +# 231 +tex2DLayered(&ret, texObject, x, y, layer); +# 232 +return ret; +# 233 +} +#endif +# 236 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 237 +tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, bool *isResident) +# 238 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)isResident; +# 242 +::exit(___);} +#if 0 +# 238 +{ +# 239 +unsigned char res; +# 240 +__nv_tex_surf_handler("__itex2DLayered_sparse", ptr, obj, x, y, layer, &res); +# 241 +(*isResident) = (res != 0); +# 242 +} +#endif +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 245 +tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer, bool *isResident) +# 246 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)isResident; +# 250 +::exit(___);} +#if 0 +# 246 +{ +# 247 +T ret; +# 248 +tex2DLayered(&ret, texObject, x, y, layer, isResident); +# 249 +return ret; +# 250 +} +#endif +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 255 +texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +# 256 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z; +# 258 +::exit(___);} +#if 0 +# 256 +{ +# 257 +__nv_tex_surf_handler("__itexCubemap", ptr, obj, x, y, z); +# 258 +} +#endif +# 261 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 262 +texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +# 263 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z; +# 267 +::exit(___);} +#if 0 +# 263 +{ +# 264 +T ret; +# 265 +texCubemap(&ret, texObject, x, y, z); +# 266 +return ret; +# 267 +} +#endif +# 270 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 271 +texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +# 272 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer; +# 274 +::exit(___);} +#if 0 +# 272 +{ +# 273 +__nv_tex_surf_handler("__itexCubemapLayered", ptr, obj, x, y, z, layer); +# 274 +} +#endif +# 276 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 277 +texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +# 278 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer; +# 282 +::exit(___);} +#if 0 +# 278 +{ +# 279 +T ret; +# 280 +texCubemapLayered(&ret, texObject, x, y, z, layer); +# 281 +return ret; +# 282 +} +#endif +# 284 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 285 +tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +# 286 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)comp; +# 288 +::exit(___);} +#if 0 +# 286 +{ +# 287 +__nv_tex_surf_handler("__itex2Dgather", ptr, obj, x, y, comp); +# 288 +} +#endif +# 290 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 291 +tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +# 292 +{int volatile ___ = 1;(void)to;(void)x;(void)y;(void)comp; +# 296 +::exit(___);} +#if 0 +# 292 +{ +# 293 +T ret; +# 294 +tex2Dgather(&ret, to, x, y, comp); +# 295 +return ret; +# 296 +} +#endif +# 299 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 300 +tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, bool *isResident, int comp = 0) +# 301 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)isResident;(void)comp; +# 305 +::exit(___);} +#if 0 +# 301 +{ +# 302 +unsigned char res; +# 303 +__nv_tex_surf_handler("__itex2Dgather_sparse", ptr, obj, x, y, comp, &res); +# 304 +(*isResident) = (res != 0); +# 305 +} +#endif +# 307 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 308 +tex2Dgather(cudaTextureObject_t to, float x, float y, bool *isResident, int comp = 0) +# 309 +{int volatile ___ = 1;(void)to;(void)x;(void)y;(void)isResident;(void)comp; +# 313 +::exit(___);} +#if 0 +# 309 +{ +# 310 +T ret; +# 311 +tex2Dgather(&ret, to, x, y, isResident, comp); +# 312 +return ret; +# 313 +} +#endif +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 318 +tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +# 319 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)level; +# 321 +::exit(___);} +#if 0 +# 319 +{ +# 320 +__nv_tex_surf_handler("__itex1DLod", ptr, obj, x, level); +# 321 +} +#endif +# 323 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 324 +tex1DLod(cudaTextureObject_t texObject, float x, float level) +# 325 +{int volatile ___ = 1;(void)texObject;(void)x;(void)level; +# 329 +::exit(___);} +#if 0 +# 325 +{ +# 326 +T ret; +# 327 +tex1DLod(&ret, texObject, x, level); +# 328 +return ret; +# 329 +} +#endif +# 332 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 333 +tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +# 334 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)level; +# 336 +::exit(___);} +#if 0 +# 334 +{ +# 335 +__nv_tex_surf_handler("__itex2DLod", ptr, obj, x, y, level); +# 336 +} +#endif +# 338 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 339 +tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +# 340 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)level; +# 344 +::exit(___);} +#if 0 +# 340 +{ +# 341 +T ret; +# 342 +tex2DLod(&ret, texObject, x, y, level); +# 343 +return ret; +# 344 +} +#endif +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 349 +tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level, bool *isResident) +# 350 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)level;(void)isResident; +# 354 +::exit(___);} +#if 0 +# 350 +{ +# 351 +unsigned char res; +# 352 +__nv_tex_surf_handler("__itex2DLod_sparse", ptr, obj, x, y, level, &res); +# 353 +(*isResident) = (res != 0); +# 354 +} +#endif +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 357 +tex2DLod(cudaTextureObject_t texObject, float x, float y, float level, bool *isResident) +# 358 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)level;(void)isResident; +# 362 +::exit(___);} +#if 0 +# 358 +{ +# 359 +T ret; +# 360 +tex2DLod(&ret, texObject, x, y, level, isResident); +# 361 +return ret; +# 362 +} +#endif +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 368 +tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +# 369 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level; +# 371 +::exit(___);} +#if 0 +# 369 +{ +# 370 +__nv_tex_surf_handler("__itex3DLod", ptr, obj, x, y, z, level); +# 371 +} +#endif +# 373 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 374 +tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +# 375 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level; +# 379 +::exit(___);} +#if 0 +# 375 +{ +# 376 +T ret; +# 377 +tex3DLod(&ret, texObject, x, y, z, level); +# 378 +return ret; +# 379 +} +#endif +# 382 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 383 +tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level, bool *isResident) +# 384 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level;(void)isResident; +# 388 +::exit(___);} +#if 0 +# 384 +{ +# 385 +unsigned char res; +# 386 +__nv_tex_surf_handler("__itex3DLod_sparse", ptr, obj, x, y, z, level, &res); +# 387 +(*isResident) = (res != 0); +# 388 +} +#endif +# 390 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 391 +tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level, bool *isResident) +# 392 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level;(void)isResident; +# 396 +::exit(___);} +#if 0 +# 392 +{ +# 393 +T ret; +# 394 +tex3DLod(&ret, texObject, x, y, z, level, isResident); +# 395 +return ret; +# 396 +} +#endif +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 402 +tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +# 403 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)level; +# 405 +::exit(___);} +#if 0 +# 403 +{ +# 404 +__nv_tex_surf_handler("__itex1DLayeredLod", ptr, obj, x, layer, level); +# 405 +} +#endif +# 407 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 408 +tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +# 409 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer;(void)level; +# 413 +::exit(___);} +#if 0 +# 409 +{ +# 410 +T ret; +# 411 +tex1DLayeredLod(&ret, texObject, x, layer, level); +# 412 +return ret; +# 413 +} +#endif +# 416 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 417 +tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +# 418 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)level; +# 420 +::exit(___);} +#if 0 +# 418 +{ +# 419 +__nv_tex_surf_handler("__itex2DLayeredLod", ptr, obj, x, y, layer, level); +# 420 +} +#endif +# 422 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 423 +tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +# 424 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)level; +# 428 +::exit(___);} +#if 0 +# 424 +{ +# 425 +T ret; +# 426 +tex2DLayeredLod(&ret, texObject, x, y, layer, level); +# 427 +return ret; +# 428 +} +#endif +# 431 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 432 +tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level, bool *isResident) +# 433 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)level;(void)isResident; +# 437 +::exit(___);} +#if 0 +# 433 +{ +# 434 +unsigned char res; +# 435 +__nv_tex_surf_handler("__itex2DLayeredLod_sparse", ptr, obj, x, y, layer, level, &res); +# 436 +(*isResident) = (res != 0); +# 437 +} +#endif +# 439 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 440 +tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level, bool *isResident) +# 441 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)level;(void)isResident; +# 445 +::exit(___);} +#if 0 +# 441 +{ +# 442 +T ret; +# 443 +tex2DLayeredLod(&ret, texObject, x, y, layer, level, isResident); +# 444 +return ret; +# 445 +} +#endif +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 449 +texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +# 450 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level; +# 452 +::exit(___);} +#if 0 +# 450 +{ +# 451 +__nv_tex_surf_handler("__itexCubemapLod", ptr, obj, x, y, z, level); +# 452 +} +#endif +# 454 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 455 +texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +# 456 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level; +# 460 +::exit(___);} +#if 0 +# 456 +{ +# 457 +T ret; +# 458 +texCubemapLod(&ret, texObject, x, y, z, level); +# 459 +return ret; +# 460 +} +#endif +# 463 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 464 +texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +# 465 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 467 +::exit(___);} +#if 0 +# 465 +{ +# 466 +__nv_tex_surf_handler("__itexCubemapGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +# 467 +} +#endif +# 469 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 470 +texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +# 471 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 475 +::exit(___);} +#if 0 +# 471 +{ +# 472 +T ret; +# 473 +texCubemapGrad(&ret, texObject, x, y, z, dPdx, dPdy); +# 474 +return ret; +# 475 +} +#endif +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 478 +texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +# 479 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer;(void)level; +# 481 +::exit(___);} +#if 0 +# 479 +{ +# 480 +__nv_tex_surf_handler("__itexCubemapLayeredLod", ptr, obj, x, y, z, layer, level); +# 481 +} +#endif +# 483 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 484 +texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +# 485 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer;(void)level; +# 489 +::exit(___);} +#if 0 +# 485 +{ +# 486 +T ret; +# 487 +texCubemapLayeredLod(&ret, texObject, x, y, z, layer, level); +# 488 +return ret; +# 489 +} +#endif +# 491 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 492 +tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +# 493 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)dPdx;(void)dPdy; +# 495 +::exit(___);} +#if 0 +# 493 +{ +# 494 +__nv_tex_surf_handler("__itex1DGrad", ptr, obj, x, dPdx, dPdy); +# 495 +} +#endif +# 497 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 498 +tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +# 499 +{int volatile ___ = 1;(void)texObject;(void)x;(void)dPdx;(void)dPdy; +# 503 +::exit(___);} +#if 0 +# 499 +{ +# 500 +T ret; +# 501 +tex1DGrad(&ret, texObject, x, dPdx, dPdy); +# 502 +return ret; +# 503 +} +#endif +# 506 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 507 +tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +# 508 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)dPdx;(void)dPdy; +# 510 +::exit(___);} +#if 0 +# 508 +{ +# 509 +__nv_tex_surf_handler("__itex2DGrad_v2", ptr, obj, x, y, &dPdx, &dPdy); +# 510 +} +#endif +# 512 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 513 +tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +# 514 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)dPdx;(void)dPdy; +# 518 +::exit(___);} +#if 0 +# 514 +{ +# 515 +T ret; +# 516 +tex2DGrad(&ret, texObject, x, y, dPdx, dPdy); +# 517 +return ret; +# 518 +} +#endif +# 521 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 522 +tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy, bool *isResident) +# 523 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)dPdx;(void)dPdy;(void)isResident; +# 527 +::exit(___);} +#if 0 +# 523 +{ +# 524 +unsigned char res; +# 525 +__nv_tex_surf_handler("__itex2DGrad_sparse", ptr, obj, x, y, &dPdx, &dPdy, &res); +# 526 +(*isResident) = (res != 0); +# 527 +} +#endif +# 529 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 530 +tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy, bool *isResident) +# 531 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)dPdx;(void)dPdy;(void)isResident; +# 535 +::exit(___);} +#if 0 +# 531 +{ +# 532 +T ret; +# 533 +tex2DGrad(&ret, texObject, x, y, dPdx, dPdy, isResident); +# 534 +return ret; +# 535 +} +#endif +# 539 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 540 +tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +# 541 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 543 +::exit(___);} +#if 0 +# 541 +{ +# 542 +__nv_tex_surf_handler("__itex3DGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +# 543 +} +#endif +# 545 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 546 +tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +# 547 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 551 +::exit(___);} +#if 0 +# 547 +{ +# 548 +T ret; +# 549 +tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy); +# 550 +return ret; +# 551 +} +#endif +# 554 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 555 +tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy, bool *isResident) +# 556 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy;(void)isResident; +# 560 +::exit(___);} +#if 0 +# 556 +{ +# 557 +unsigned char res; +# 558 +__nv_tex_surf_handler("__itex3DGrad_sparse", ptr, obj, x, y, z, &dPdx, &dPdy, &res); +# 559 +(*isResident) = (res != 0); +# 560 +} +#endif +# 562 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 563 +tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy, bool *isResident) +# 564 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy;(void)isResident; +# 568 +::exit(___);} +#if 0 +# 564 +{ +# 565 +T ret; +# 566 +tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy, isResident); +# 567 +return ret; +# 568 +} +#endif +# 573 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 574 +tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +# 575 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)dPdx;(void)dPdy; +# 577 +::exit(___);} +#if 0 +# 575 +{ +# 576 +__nv_tex_surf_handler("__itex1DLayeredGrad", ptr, obj, x, layer, dPdx, dPdy); +# 577 +} +#endif +# 579 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 580 +tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +# 581 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer;(void)dPdx;(void)dPdy; +# 585 +::exit(___);} +#if 0 +# 581 +{ +# 582 +T ret; +# 583 +tex1DLayeredGrad(&ret, texObject, x, layer, dPdx, dPdy); +# 584 +return ret; +# 585 +} +#endif +# 588 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 589 +tex2DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +# 590 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy; +# 592 +::exit(___);} +#if 0 +# 590 +{ +# 591 +__nv_tex_surf_handler("__itex2DLayeredGrad_v2", ptr, obj, x, y, layer, &dPdx, &dPdy); +# 592 +} +#endif +# 594 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 595 +tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +# 596 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy; +# 600 +::exit(___);} +#if 0 +# 596 +{ +# 597 +T ret; +# 598 +tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy); +# 599 +return ret; +# 600 +} +#endif +# 603 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 604 +tex2DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy, bool *isResident) +# 605 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy;(void)isResident; +# 609 +::exit(___);} +#if 0 +# 605 +{ +# 606 +unsigned char res; +# 607 +__nv_tex_surf_handler("__itex2DLayeredGrad_sparse", ptr, obj, x, y, layer, &dPdx, &dPdy, &res); +# 608 +(*isResident) = (res != 0); +# 609 +} +#endif +# 611 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 612 +tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy, bool *isResident) +# 613 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy;(void)isResident; +# 617 +::exit(___);} +#if 0 +# 613 +{ +# 614 +T ret; +# 615 +tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy, isResident); +# 616 +return ret; +# 617 +} +#endif +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 622 +texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +# 623 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer;(void)dPdx;(void)dPdy; +# 625 +::exit(___);} +#if 0 +# 623 +{ +# 624 +__nv_tex_surf_handler("__itexCubemapLayeredGrad_v2", ptr, obj, x, y, z, layer, &dPdx, &dPdy); +# 625 +} +#endif +# 627 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 628 +texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +# 629 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer;(void)dPdx;(void)dPdy; +# 633 +::exit(___);} +#if 0 +# 629 +{ +# 630 +T ret; +# 631 +texCubemapLayeredGrad(&ret, texObject, x, y, z, layer, dPdx, dPdy); +# 632 +return ret; +# 633 +} +#endif +# 58 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> struct __nv_isurf_trait { }; +# 59 +template<> struct __nv_isurf_trait< char> { typedef void type; }; +# 60 +template<> struct __nv_isurf_trait< signed char> { typedef void type; }; +# 61 +template<> struct __nv_isurf_trait< char1> { typedef void type; }; +# 62 +template<> struct __nv_isurf_trait< unsigned char> { typedef void type; }; +# 63 +template<> struct __nv_isurf_trait< uchar1> { typedef void type; }; +# 64 +template<> struct __nv_isurf_trait< short> { typedef void type; }; +# 65 +template<> struct __nv_isurf_trait< short1> { typedef void type; }; +# 66 +template<> struct __nv_isurf_trait< unsigned short> { typedef void type; }; +# 67 +template<> struct __nv_isurf_trait< ushort1> { typedef void type; }; +# 68 +template<> struct __nv_isurf_trait< int> { typedef void type; }; +# 69 +template<> struct __nv_isurf_trait< int1> { typedef void type; }; +# 70 +template<> struct __nv_isurf_trait< unsigned> { typedef void type; }; +# 71 +template<> struct __nv_isurf_trait< uint1> { typedef void type; }; +# 72 +template<> struct __nv_isurf_trait< long long> { typedef void type; }; +# 73 +template<> struct __nv_isurf_trait< longlong1> { typedef void type; }; +# 74 +template<> struct __nv_isurf_trait< unsigned long long> { typedef void type; }; +# 75 +template<> struct __nv_isurf_trait< ulonglong1> { typedef void type; }; +# 76 +template<> struct __nv_isurf_trait< float> { typedef void type; }; +# 77 +template<> struct __nv_isurf_trait< float1> { typedef void type; }; +# 79 +template<> struct __nv_isurf_trait< char2> { typedef void type; }; +# 80 +template<> struct __nv_isurf_trait< uchar2> { typedef void type; }; +# 81 +template<> struct __nv_isurf_trait< short2> { typedef void type; }; +# 82 +template<> struct __nv_isurf_trait< ushort2> { typedef void type; }; +# 83 +template<> struct __nv_isurf_trait< int2> { typedef void type; }; +# 84 +template<> struct __nv_isurf_trait< uint2> { typedef void type; }; +# 85 +template<> struct __nv_isurf_trait< longlong2> { typedef void type; }; +# 86 +template<> struct __nv_isurf_trait< ulonglong2> { typedef void type; }; +# 87 +template<> struct __nv_isurf_trait< float2> { typedef void type; }; +# 89 +template<> struct __nv_isurf_trait< char4> { typedef void type; }; +# 90 +template<> struct __nv_isurf_trait< uchar4> { typedef void type; }; +# 91 +template<> struct __nv_isurf_trait< short4> { typedef void type; }; +# 92 +template<> struct __nv_isurf_trait< ushort4> { typedef void type; }; +# 93 +template<> struct __nv_isurf_trait< int4> { typedef void type; }; +# 94 +template<> struct __nv_isurf_trait< uint4> { typedef void type; }; +# 95 +template<> struct __nv_isurf_trait< float4> { typedef void type; }; +# 98 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 99 +surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 100 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)mode; +# 102 +::exit(___);} +#if 0 +# 100 +{ +# 101 +__nv_tex_surf_handler("__isurf1Dread", ptr, obj, x, mode); +# 102 +} +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 105 +surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 106 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)boundaryMode; +# 110 +::exit(___);} +#if 0 +# 106 +{ +# 107 +T ret; +# 108 +surf1Dread(&ret, surfObject, x, boundaryMode); +# 109 +return ret; +# 110 +} +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 113 +surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 114 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)mode; +# 116 +::exit(___);} +#if 0 +# 114 +{ +# 115 +__nv_tex_surf_handler("__isurf2Dread", ptr, obj, x, y, mode); +# 116 +} +#endif +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 119 +surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 120 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)boundaryMode; +# 124 +::exit(___);} +#if 0 +# 120 +{ +# 121 +T ret; +# 122 +surf2Dread(&ret, surfObject, x, y, boundaryMode); +# 123 +return ret; +# 124 +} +#endif +# 127 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 128 +surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 129 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)mode; +# 131 +::exit(___);} +#if 0 +# 129 +{ +# 130 +__nv_tex_surf_handler("__isurf3Dread", ptr, obj, x, y, z, mode); +# 131 +} +#endif +# 133 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 134 +surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 135 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)z;(void)boundaryMode; +# 139 +::exit(___);} +#if 0 +# 135 +{ +# 136 +T ret; +# 137 +surf3Dread(&ret, surfObject, x, y, z, boundaryMode); +# 138 +return ret; +# 139 +} +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 142 +surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 143 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)mode; +# 145 +::exit(___);} +#if 0 +# 143 +{ +# 144 +__nv_tex_surf_handler("__isurf1DLayeredread", ptr, obj, x, layer, mode); +# 145 +} +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 148 +surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 149 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)layer;(void)boundaryMode; +# 153 +::exit(___);} +#if 0 +# 149 +{ +# 150 +T ret; +# 151 +surf1DLayeredread(&ret, surfObject, x, layer, boundaryMode); +# 152 +return ret; +# 153 +} +#endif +# 155 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 156 +surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 157 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)mode; +# 159 +::exit(___);} +#if 0 +# 157 +{ +# 158 +__nv_tex_surf_handler("__isurf2DLayeredread", ptr, obj, x, y, layer, mode); +# 159 +} +#endif +# 161 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 162 +surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 163 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)layer;(void)boundaryMode; +# 167 +::exit(___);} +#if 0 +# 163 +{ +# 164 +T ret; +# 165 +surf2DLayeredread(&ret, surfObject, x, y, layer, boundaryMode); +# 166 +return ret; +# 167 +} +#endif +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 170 +surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 171 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)face;(void)mode; +# 173 +::exit(___);} +#if 0 +# 171 +{ +# 172 +__nv_tex_surf_handler("__isurfCubemapread", ptr, obj, x, y, face, mode); +# 173 +} +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 176 +surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 177 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)face;(void)boundaryMode; +# 181 +::exit(___);} +#if 0 +# 177 +{ +# 178 +T ret; +# 179 +surfCubemapread(&ret, surfObject, x, y, face, boundaryMode); +# 180 +return ret; +# 181 +} +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 184 +surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 185 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layerface;(void)mode; +# 187 +::exit(___);} +#if 0 +# 185 +{ +# 186 +__nv_tex_surf_handler("__isurfCubemapLayeredread", ptr, obj, x, y, layerface, mode); +# 187 +} +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 190 +surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 191 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)layerface;(void)boundaryMode; +# 195 +::exit(___);} +#if 0 +# 191 +{ +# 192 +T ret; +# 193 +surfCubemapLayeredread(&ret, surfObject, x, y, layerface, boundaryMode); +# 194 +return ret; +# 195 +} +#endif +# 197 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 198 +surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 199 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)mode; +# 201 +::exit(___);} +#if 0 +# 199 +{ +# 200 +__nv_tex_surf_handler("__isurf1Dwrite_v2", &val, obj, x, mode); +# 201 +} +#endif +# 203 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 204 +surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 205 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)mode; +# 207 +::exit(___);} +#if 0 +# 205 +{ +# 206 +__nv_tex_surf_handler("__isurf2Dwrite_v2", &val, obj, x, y, mode); +# 207 +} +#endif +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 210 +surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 211 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)z;(void)mode; +# 213 +::exit(___);} +#if 0 +# 211 +{ +# 212 +__nv_tex_surf_handler("__isurf3Dwrite_v2", &val, obj, x, y, z, mode); +# 213 +} +#endif +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 216 +surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 217 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)layer;(void)mode; +# 219 +::exit(___);} +#if 0 +# 217 +{ +# 218 +__nv_tex_surf_handler("__isurf1DLayeredwrite_v2", &val, obj, x, layer, mode); +# 219 +} +#endif +# 221 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 222 +surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 223 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)layer;(void)mode; +# 225 +::exit(___);} +#if 0 +# 223 +{ +# 224 +__nv_tex_surf_handler("__isurf2DLayeredwrite_v2", &val, obj, x, y, layer, mode); +# 225 +} +#endif +# 227 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 228 +surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 229 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)face;(void)mode; +# 231 +::exit(___);} +#if 0 +# 229 +{ +# 230 +__nv_tex_surf_handler("__isurfCubemapwrite_v2", &val, obj, x, y, face, mode); +# 231 +} +#endif +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 234 +surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 235 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)layerface;(void)mode; +# 237 +::exit(___);} +#if 0 +# 235 +{ +# 236 +__nv_tex_surf_handler("__isurfCubemapLayeredwrite_v2", &val, obj, x, y, layerface, mode); +# 237 +} +#endif +# 2924 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +extern "C" unsigned __cudaPushCallConfiguration(dim3 gridDim, dim3 blockDim, size_t sharedMem = 0, CUstream_st * stream = 0); +# 2969 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +enum { +# 2970 +__NV_ATOMIC_RELAXED, +# 2971 +__NV_ATOMIC_CONSUME, +# 2972 +__NV_ATOMIC_ACQUIRE, +# 2973 +__NV_ATOMIC_RELEASE, +# 2974 +__NV_ATOMIC_ACQ_REL, +# 2975 +__NV_ATOMIC_SEQ_CST +# 2976 +}; +# 2978 +enum { +# 2979 +__NV_THREAD_SCOPE_THREAD, +# 2980 +__NV_THREAD_SCOPE_BLOCK, +# 2981 +__NV_THREAD_SCOPE_CLUSTER, +# 2982 +__NV_THREAD_SCOPE_DEVICE, +# 2983 +__NV_THREAD_SCOPE_SYSTEM +# 2984 +}; +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" +extern "C" { +# 71 +extern const uint3 __device_builtin_variable_threadIdx; +# 72 +extern const uint3 __device_builtin_variable_blockIdx; +# 73 +extern const dim3 __device_builtin_variable_blockDim; +# 74 +extern const dim3 __device_builtin_variable_gridDim; +# 75 +extern const int __device_builtin_variable_warpSize; +# 80 +} +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 66 +namespace rel_ops { +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 88 +operator!=(const _Tp &__x, const _Tp &__y) +# 89 +{ return !(__x == __y); } +# 99 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 101 +operator>(const _Tp &__x, const _Tp &__y) +# 102 +{ return __y < __x; } +# 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 114 +operator<=(const _Tp &__x, const _Tp &__y) +# 115 +{ return !(__y < __x); } +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 127 +operator>=(const _Tp &__x, const _Tp &__y) +# 128 +{ return !(__x < __y); } +# 129 +} +# 132 +} +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 +namespace std __attribute((__visibility__("default"))) { +# 44 +template< class _E> +# 45 +class initializer_list { +# 48 +public: typedef _E value_type; +# 49 +typedef const _E &reference; +# 50 +typedef const _E &const_reference; +# 51 +typedef size_t size_type; +# 52 +typedef const _E *iterator; +# 53 +typedef const _E *const_iterator; +# 56 +private: iterator _M_array; +# 57 +size_type _M_len; +# 60 +constexpr initializer_list(const_iterator __a, size_type __l) : _M_array(__a), _M_len(__l) +# 61 +{ } +# 64 +public: constexpr initializer_list() noexcept : _M_array((0)), _M_len((0)) +# 65 +{ } +# 69 +constexpr size_type size() const noexcept { return _M_len; } +# 73 +constexpr const_iterator begin() const noexcept { return _M_array; } +# 77 +constexpr const_iterator end() const noexcept { return begin() + size(); } +# 78 +}; +# 86 +template< class _Tp> constexpr const _Tp * +# 88 +begin(initializer_list< _Tp> __ils) noexcept +# 89 +{ return __ils.begin(); } +# 97 +template< class _Tp> constexpr const _Tp * +# 99 +end(initializer_list< _Tp> __ils) noexcept +# 100 +{ return __ils.end(); } +# 101 +} +# 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +namespace std __attribute((__visibility__("default"))) { +# 104 +template< class _Tp, class _Up = _Tp> inline _Tp +# 107 +exchange(_Tp &__obj, _Up &&__new_val) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_assignable< _Tp &, _Up> > ::value) +# 110 +{ return std::__exchange(__obj, std::forward< _Up> (__new_val)); } +# 114 +template< class _Tp> +# 115 +[[nodiscard]] constexpr add_const_t< _Tp> & +# 117 +as_const(_Tp &__t) noexcept +# 118 +{ return __t; } +# 120 +template < typename _Tp > + void as_const ( const _Tp && ) = delete; +# 231 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +} +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 208 +cudaLaunchKernel(T * +# 209 +func, dim3 +# 210 +gridDim, dim3 +# 211 +blockDim, void ** +# 212 +args, size_t +# 213 +sharedMem = 0, cudaStream_t +# 214 +stream = 0) +# 216 +{ +# 217 +return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +# 218 +} +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class ...ExpTypes, class ...ActTypes> static inline cudaError_t +# 280 +cudaLaunchKernelEx(const cudaLaunchConfig_t * +# 281 +config, void (* +# 282 +kernel)(ExpTypes ...), ActTypes &&... +# 283 +args) +# 285 +{ +# 286 +return [&](ExpTypes ...coercedArgs) { +# 287 +void *pArgs[] = {(&coercedArgs)...}; +# 288 +return ::cudaLaunchKernelExC(config, (const void *)(kernel), pArgs); +# 289 +} (std::forward< ActTypes> (args)...); +# 290 +} +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class ...ActTypes> static inline cudaError_t +# 349 +cudaLaunchKernelEx(const cudaLaunchConfig_t * +# 350 +config, const cudaKernel_t +# 351 +kernel, ActTypes &&... +# 352 +args) +# 354 +{ +# 355 +void *pArgs[] = {(&args)...}; +# 356 +return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); +# 357 +} +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 411 +cudaLaunchCooperativeKernel(T * +# 412 +func, dim3 +# 413 +gridDim, dim3 +# 414 +blockDim, void ** +# 415 +args, size_t +# 416 +sharedMem = 0, cudaStream_t +# 417 +stream = 0) +# 419 +{ +# 420 +return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +# 421 +} +# 454 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static inline cudaError_t cudaEventCreate(cudaEvent_t * +# 455 +event, unsigned +# 456 +flags) +# 458 +{ +# 459 +return ::cudaEventCreateWithFlags(event, flags); +# 460 +} +# 498 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static inline cudaError_t cudaGraphInstantiate(cudaGraphExec_t * +# 499 +pGraphExec, cudaGraph_t +# 500 +graph, cudaGraphNode_t * +# 501 +pErrorNode, char * +# 502 +pLogBuffer, size_t +# 503 +bufferSize) +# 505 +{ +# 506 +(void)pErrorNode; +# 507 +(void)pLogBuffer; +# 508 +(void)bufferSize; +# 509 +return ::cudaGraphInstantiate(pGraphExec, graph, 0); +# 510 +} +# 569 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static inline cudaError_t cudaMallocHost(void ** +# 570 +ptr, size_t +# 571 +size, unsigned +# 572 +flags) +# 574 +{ +# 575 +return ::cudaHostAlloc(ptr, size, flags); +# 576 +} +# 578 +template< class T> static inline cudaError_t +# 579 +cudaHostAlloc(T ** +# 580 +ptr, size_t +# 581 +size, unsigned +# 582 +flags) +# 584 +{ +# 585 +return ::cudaHostAlloc((void **)((void *)ptr), size, flags); +# 586 +} +# 588 +template< class T> static inline cudaError_t +# 589 +cudaHostGetDevicePointer(T ** +# 590 +pDevice, void * +# 591 +pHost, unsigned +# 592 +flags) +# 594 +{ +# 595 +return ::cudaHostGetDevicePointer((void **)((void *)pDevice), pHost, flags); +# 596 +} +# 698 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 699 +cudaMallocManaged(T ** +# 700 +devPtr, size_t +# 701 +size, unsigned +# 702 +flags = 1) +# 704 +{ +# 705 +return ::cudaMallocManaged((void **)((void *)devPtr), size, flags); +# 706 +} +# 716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> cudaError_t +# 717 +cudaMemAdvise(T * +# 718 +devPtr, size_t +# 719 +count, cudaMemoryAdvise +# 720 +advice, cudaMemLocation +# 721 +location) +# 723 +{ +# 724 +return ::cudaMemAdvise_v2((const void *)devPtr, count, advice, location); +# 725 +} +# 727 +template< class T> static inline cudaError_t +# 728 +cudaMemPrefetchAsync(T * +# 729 +devPtr, size_t +# 730 +count, cudaMemLocation +# 731 +location, unsigned +# 732 +flags, cudaStream_t +# 733 +stream = 0) +# 735 +{ +# 736 +return ::cudaMemPrefetchAsync_v2((const void *)devPtr, count, location, flags, stream); +# 737 +} +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 820 +cudaStreamAttachMemAsync(cudaStream_t +# 821 +stream, T * +# 822 +devPtr, size_t +# 823 +length = 0, unsigned +# 824 +flags = 4) +# 826 +{ +# 827 +return ::cudaStreamAttachMemAsync(stream, (void *)devPtr, length, flags); +# 828 +} +# 830 +template< class T> inline cudaError_t +# 831 +cudaMalloc(T ** +# 832 +devPtr, size_t +# 833 +size) +# 835 +{ +# 836 +return ::cudaMalloc((void **)((void *)devPtr), size); +# 837 +} +# 839 +template< class T> static inline cudaError_t +# 840 +cudaMallocHost(T ** +# 841 +ptr, size_t +# 842 +size, unsigned +# 843 +flags = 0) +# 845 +{ +# 846 +return cudaMallocHost((void **)((void *)ptr), size, flags); +# 847 +} +# 849 +template< class T> static inline cudaError_t +# 850 +cudaMallocPitch(T ** +# 851 +devPtr, size_t * +# 852 +pitch, size_t +# 853 +width, size_t +# 854 +height) +# 856 +{ +# 857 +return ::cudaMallocPitch((void **)((void *)devPtr), pitch, width, height); +# 858 +} +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static inline cudaError_t cudaMallocAsync(void ** +# 870 +ptr, size_t +# 871 +size, cudaMemPool_t +# 872 +memPool, cudaStream_t +# 873 +stream) +# 875 +{ +# 876 +return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +# 877 +} +# 879 +template< class T> static inline cudaError_t +# 880 +cudaMallocAsync(T ** +# 881 +ptr, size_t +# 882 +size, cudaMemPool_t +# 883 +memPool, cudaStream_t +# 884 +stream) +# 886 +{ +# 887 +return ::cudaMallocFromPoolAsync((void **)((void *)ptr), size, memPool, stream); +# 888 +} +# 890 +template< class T> static inline cudaError_t +# 891 +cudaMallocAsync(T ** +# 892 +ptr, size_t +# 893 +size, cudaStream_t +# 894 +stream) +# 896 +{ +# 897 +return ::cudaMallocAsync((void **)((void *)ptr), size, stream); +# 898 +} +# 900 +template< class T> static inline cudaError_t +# 901 +cudaMallocFromPoolAsync(T ** +# 902 +ptr, size_t +# 903 +size, cudaMemPool_t +# 904 +memPool, cudaStream_t +# 905 +stream) +# 907 +{ +# 908 +return ::cudaMallocFromPoolAsync((void **)((void *)ptr), size, memPool, stream); +# 909 +} +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T, class U> static inline cudaError_t +# 920 +cudaMemcpyBatchAsync(T ** +# 921 +dsts, U **srcs, size_t *sizes, size_t count, cudaMemcpyAttributes *attrs, size_t * +# 922 +attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t hStream) +# 924 +{ +# 925 +return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, attrs, attrsIdxs, numAttrs, failIdx, hStream); +# 926 +} +# 938 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T, class U> static inline cudaError_t +# 939 +cudaMemcpyBatchAsync(T ** +# 940 +dsts, U **srcs, size_t *sizes, size_t count, cudaMemcpyAttributes attr, size_t *failIdx, cudaStream_t hStream) +# 942 +{ +# 943 +size_t attrsIdxs = (0); +# 944 +return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, &attr, &attrsIdxs, 1, failIdx, hStream); +# 945 +} +# 984 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 985 +cudaMemcpyToSymbol(const T & +# 986 +symbol, const void * +# 987 +src, size_t +# 988 +count, size_t +# 989 +offset = 0, cudaMemcpyKind +# 990 +kind = cudaMemcpyHostToDevice) +# 992 +{ +# 993 +return ::cudaMemcpyToSymbol((const void *)(&symbol), src, count, offset, kind); +# 994 +} +# 1038 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1039 +cudaMemcpyToSymbolAsync(const T & +# 1040 +symbol, const void * +# 1041 +src, size_t +# 1042 +count, size_t +# 1043 +offset = 0, cudaMemcpyKind +# 1044 +kind = cudaMemcpyHostToDevice, cudaStream_t +# 1045 +stream = 0) +# 1047 +{ +# 1048 +return ::cudaMemcpyToSymbolAsync((const void *)(&symbol), src, count, offset, kind, stream); +# 1049 +} +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1087 +cudaMemcpyFromSymbol(void * +# 1088 +dst, const T & +# 1089 +symbol, size_t +# 1090 +count, size_t +# 1091 +offset = 0, cudaMemcpyKind +# 1092 +kind = cudaMemcpyDeviceToHost) +# 1094 +{ +# 1095 +return ::cudaMemcpyFromSymbol(dst, (const void *)(&symbol), count, offset, kind); +# 1096 +} +# 1140 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1141 +cudaMemcpyFromSymbolAsync(void * +# 1142 +dst, const T & +# 1143 +symbol, size_t +# 1144 +count, size_t +# 1145 +offset = 0, cudaMemcpyKind +# 1146 +kind = cudaMemcpyDeviceToHost, cudaStream_t +# 1147 +stream = 0) +# 1149 +{ +# 1150 +return ::cudaMemcpyFromSymbolAsync(dst, (const void *)(&symbol), count, offset, kind, stream); +# 1151 +} +# 1209 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1210 +cudaGraphAddMemcpyNodeToSymbol(cudaGraphNode_t * +# 1211 +pGraphNode, cudaGraph_t +# 1212 +graph, const cudaGraphNode_t * +# 1213 +pDependencies, size_t +# 1214 +numDependencies, const T & +# 1215 +symbol, const void * +# 1216 +src, size_t +# 1217 +count, size_t +# 1218 +offset, cudaMemcpyKind +# 1219 +kind) +# 1220 +{ +# 1221 +return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void *)(&symbol), src, count, offset, kind); +# 1222 +} +# 1280 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1281 +cudaGraphAddMemcpyNodeFromSymbol(cudaGraphNode_t * +# 1282 +pGraphNode, cudaGraph_t +# 1283 +graph, const cudaGraphNode_t * +# 1284 +pDependencies, size_t +# 1285 +numDependencies, void * +# 1286 +dst, const T & +# 1287 +symbol, size_t +# 1288 +count, size_t +# 1289 +offset, cudaMemcpyKind +# 1290 +kind) +# 1291 +{ +# 1292 +return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void *)(&symbol), count, offset, kind); +# 1293 +} +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1332 +cudaGraphMemcpyNodeSetParamsToSymbol(cudaGraphNode_t +# 1333 +node, const T & +# 1334 +symbol, const void * +# 1335 +src, size_t +# 1336 +count, size_t +# 1337 +offset, cudaMemcpyKind +# 1338 +kind) +# 1339 +{ +# 1340 +return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void *)(&symbol), src, count, offset, kind); +# 1341 +} +# 1379 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1380 +cudaGraphMemcpyNodeSetParamsFromSymbol(cudaGraphNode_t +# 1381 +node, void * +# 1382 +dst, const T & +# 1383 +symbol, size_t +# 1384 +count, size_t +# 1385 +offset, cudaMemcpyKind +# 1386 +kind) +# 1387 +{ +# 1388 +return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void *)(&symbol), count, offset, kind); +# 1389 +} +# 1437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1438 +cudaGraphExecMemcpyNodeSetParamsToSymbol(cudaGraphExec_t +# 1439 +hGraphExec, cudaGraphNode_t +# 1440 +node, const T & +# 1441 +symbol, const void * +# 1442 +src, size_t +# 1443 +count, size_t +# 1444 +offset, cudaMemcpyKind +# 1445 +kind) +# 1446 +{ +# 1447 +return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void *)(&symbol), src, count, offset, kind); +# 1448 +} +# 1496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1497 +cudaGraphExecMemcpyNodeSetParamsFromSymbol(cudaGraphExec_t +# 1498 +hGraphExec, cudaGraphNode_t +# 1499 +node, void * +# 1500 +dst, const T & +# 1501 +symbol, size_t +# 1502 +count, size_t +# 1503 +offset, cudaMemcpyKind +# 1504 +kind) +# 1505 +{ +# 1506 +return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void *)(&symbol), count, offset, kind); +# 1507 +} +# 1510 +static inline cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, cudaGraphExecUpdateResult *updateResult_out) +# 1511 +{ +# 1512 +cudaGraphExecUpdateResultInfo resultInfo; +# 1513 +cudaError_t status = cudaGraphExecUpdate(hGraphExec, hGraph, &resultInfo); +# 1514 +if (hErrorNode_out) { +# 1515 +(*hErrorNode_out) = (resultInfo.errorNode); +# 1516 +} +# 1517 +if (updateResult_out) { +# 1518 +(*updateResult_out) = (resultInfo.result); +# 1519 +} +# 1520 +return status; +# 1521 +} +# 1549 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1550 +cudaUserObjectCreate(cudaUserObject_t * +# 1551 +object_out, T * +# 1552 +objectToWrap, unsigned +# 1553 +initialRefcount, unsigned +# 1554 +flags) +# 1555 +{ +# 1556 +return ::cudaUserObjectCreate(object_out, objectToWrap, [](void * +# 1559 +vpObj) { delete (reinterpret_cast< T *>(vpObj)); } , initialRefcount, flags); +# 1562 +} +# 1564 +template< class T> static inline cudaError_t +# 1565 +cudaUserObjectCreate(cudaUserObject_t * +# 1566 +object_out, T * +# 1567 +objectToWrap, unsigned +# 1568 +initialRefcount, cudaUserObjectFlags +# 1569 +flags) +# 1570 +{ +# 1571 +return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned)flags); +# 1572 +} +# 1599 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1600 +cudaGetSymbolAddress(void ** +# 1601 +devPtr, const T & +# 1602 +symbol) +# 1604 +{ +# 1605 +return ::cudaGetSymbolAddress(devPtr, (const void *)(&symbol)); +# 1606 +} +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1632 +cudaGetSymbolSize(size_t * +# 1633 +size, const T & +# 1634 +symbol) +# 1636 +{ +# 1637 +return ::cudaGetSymbolSize(size, (const void *)(&symbol)); +# 1638 +} +# 1683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1684 +cudaFuncSetCacheConfig(T * +# 1685 +func, cudaFuncCache +# 1686 +cacheConfig) +# 1688 +{ +# 1689 +return ::cudaFuncSetCacheConfig((const void *)func, cacheConfig); +# 1690 +} +# 1692 +template< class T> +# 1694 +__attribute((deprecated)) static inline cudaError_t +# 1695 +cudaFuncSetSharedMemConfig(T * +# 1696 +func, cudaSharedMemConfig +# 1697 +config) +# 1699 +{ +# 1701 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 1706 +return ::cudaFuncSetSharedMemConfig((const void *)func, config); +# 1708 +#pragma GCC diagnostic pop +# 1710 +} +# 1743 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> inline cudaError_t +# 1744 +cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * +# 1745 +numBlocks, T +# 1746 +func, int +# 1747 +blockSize, size_t +# 1748 +dynamicSMemSize) +# 1749 +{ +# 1750 +return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void *)func, blockSize, dynamicSMemSize, 0); +# 1751 +} +# 1796 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> inline cudaError_t +# 1797 +cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * +# 1798 +numBlocks, T +# 1799 +func, int +# 1800 +blockSize, size_t +# 1801 +dynamicSMemSize, unsigned +# 1802 +flags) +# 1803 +{ +# 1804 +return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void *)func, blockSize, dynamicSMemSize, flags); +# 1805 +} +# 1810 +class __cudaOccupancyB2DHelper { +# 1811 +size_t n; +# 1813 +public: __cudaOccupancyB2DHelper(size_t n_) : n(n_) { } +# 1814 +size_t operator()(int) +# 1815 +{ +# 1816 +return n; +# 1817 +} +# 1818 +}; +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class UnaryFunction, class T> static inline cudaError_t +# 1867 +cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(int * +# 1868 +minGridSize, int * +# 1869 +blockSize, T +# 1870 +func, UnaryFunction +# 1871 +blockSizeToDynamicSMemSize, int +# 1872 +blockSizeLimit = 0, unsigned +# 1873 +flags = 0) +# 1874 +{ +# 1875 +cudaError_t status; +# 1878 +int device; +# 1879 +cudaFuncAttributes attr; +# 1882 +int maxThreadsPerMultiProcessor; +# 1883 +int warpSize; +# 1884 +int devMaxThreadsPerBlock; +# 1885 +int multiProcessorCount; +# 1886 +int funcMaxThreadsPerBlock; +# 1887 +int occupancyLimit; +# 1888 +int granularity; +# 1891 +int maxBlockSize = 0; +# 1892 +int numBlocks = 0; +# 1893 +int maxOccupancy = 0; +# 1896 +int blockSizeToTryAligned; +# 1897 +int blockSizeToTry; +# 1898 +int blockSizeLimitAligned; +# 1899 +int occupancyInBlocks; +# 1900 +int occupancyInThreads; +# 1901 +size_t dynamicSMemSize; +# 1907 +if (((!minGridSize) || (!blockSize)) || (!func)) { +# 1908 +return cudaErrorInvalidValue; +# 1909 +} +# 1915 +status = ::cudaGetDevice(&device); +# 1916 +if (status != (cudaSuccess)) { +# 1917 +return status; +# 1918 +} +# 1920 +status = cudaDeviceGetAttribute(&maxThreadsPerMultiProcessor, cudaDevAttrMaxThreadsPerMultiProcessor, device); +# 1924 +if (status != (cudaSuccess)) { +# 1925 +return status; +# 1926 +} +# 1928 +status = cudaDeviceGetAttribute(&warpSize, cudaDevAttrWarpSize, device); +# 1932 +if (status != (cudaSuccess)) { +# 1933 +return status; +# 1934 +} +# 1936 +status = cudaDeviceGetAttribute(&devMaxThreadsPerBlock, cudaDevAttrMaxThreadsPerBlock, device); +# 1940 +if (status != (cudaSuccess)) { +# 1941 +return status; +# 1942 +} +# 1944 +status = cudaDeviceGetAttribute(&multiProcessorCount, cudaDevAttrMultiProcessorCount, device); +# 1948 +if (status != (cudaSuccess)) { +# 1949 +return status; +# 1950 +} +# 1952 +status = cudaFuncGetAttributes(&attr, func); +# 1953 +if (status != (cudaSuccess)) { +# 1954 +return status; +# 1955 +} +# 1957 +funcMaxThreadsPerBlock = (attr.maxThreadsPerBlock); +# 1963 +occupancyLimit = maxThreadsPerMultiProcessor; +# 1964 +granularity = warpSize; +# 1966 +if (blockSizeLimit == 0) { +# 1967 +blockSizeLimit = devMaxThreadsPerBlock; +# 1968 +} +# 1970 +if (devMaxThreadsPerBlock < blockSizeLimit) { +# 1971 +blockSizeLimit = devMaxThreadsPerBlock; +# 1972 +} +# 1974 +if (funcMaxThreadsPerBlock < blockSizeLimit) { +# 1975 +blockSizeLimit = funcMaxThreadsPerBlock; +# 1976 +} +# 1978 +blockSizeLimitAligned = (((blockSizeLimit + (granularity - 1)) / granularity) * granularity); +# 1980 +for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { +# 1984 +if (blockSizeLimit < blockSizeToTryAligned) { +# 1985 +blockSizeToTry = blockSizeLimit; +# 1986 +} else { +# 1987 +blockSizeToTry = blockSizeToTryAligned; +# 1988 +} +# 1990 +dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); +# 1992 +status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(&occupancyInBlocks, func, blockSizeToTry, dynamicSMemSize, flags); +# 1999 +if (status != (cudaSuccess)) { +# 2000 +return status; +# 2001 +} +# 2003 +occupancyInThreads = (blockSizeToTry * occupancyInBlocks); +# 2005 +if (occupancyInThreads > maxOccupancy) { +# 2006 +maxBlockSize = blockSizeToTry; +# 2007 +numBlocks = occupancyInBlocks; +# 2008 +maxOccupancy = occupancyInThreads; +# 2009 +} +# 2013 +if (occupancyLimit == maxOccupancy) { +# 2014 +break; +# 2015 +} +# 2016 +} +# 2024 +(*minGridSize) = (numBlocks * multiProcessorCount); +# 2025 +(*blockSize) = maxBlockSize; +# 2027 +return status; +# 2028 +} +# 2062 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class UnaryFunction, class T> static inline cudaError_t +# 2063 +cudaOccupancyMaxPotentialBlockSizeVariableSMem(int * +# 2064 +minGridSize, int * +# 2065 +blockSize, T +# 2066 +func, UnaryFunction +# 2067 +blockSizeToDynamicSMemSize, int +# 2068 +blockSizeLimit = 0) +# 2069 +{ +# 2070 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0); +# 2071 +} +# 2108 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2109 +cudaOccupancyMaxPotentialBlockSize(int * +# 2110 +minGridSize, int * +# 2111 +blockSize, T +# 2112 +func, size_t +# 2113 +dynamicSMemSize = 0, int +# 2114 +blockSizeLimit = 0) +# 2115 +{ +# 2116 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, ((__cudaOccupancyB2DHelper)(dynamicSMemSize)), blockSizeLimit, 0); +# 2117 +} +# 2147 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2148 +cudaOccupancyAvailableDynamicSMemPerBlock(size_t * +# 2149 +dynamicSmemSize, T * +# 2150 +func, int +# 2151 +numBlocks, int +# 2152 +blockSize) +# 2153 +{ +# 2154 +return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void *)func, numBlocks, blockSize); +# 2155 +} +# 2206 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2207 +cudaOccupancyMaxPotentialBlockSizeWithFlags(int * +# 2208 +minGridSize, int * +# 2209 +blockSize, T +# 2210 +func, size_t +# 2211 +dynamicSMemSize = 0, int +# 2212 +blockSizeLimit = 0, unsigned +# 2213 +flags = 0) +# 2214 +{ +# 2215 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, ((__cudaOccupancyB2DHelper)(dynamicSMemSize)), blockSizeLimit, flags); +# 2216 +} +# 2251 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2252 +cudaOccupancyMaxPotentialClusterSize(int * +# 2253 +clusterSize, T * +# 2254 +func, const cudaLaunchConfig_t * +# 2255 +config) +# 2256 +{ +# 2257 +return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void *)func, config); +# 2258 +} +# 2295 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2296 +cudaOccupancyMaxActiveClusters(int * +# 2297 +numClusters, T * +# 2298 +func, const cudaLaunchConfig_t * +# 2299 +config) +# 2300 +{ +# 2301 +return ::cudaOccupancyMaxActiveClusters(numClusters, (const void *)func, config); +# 2302 +} +# 2336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> inline cudaError_t +# 2337 +cudaFuncGetAttributes(cudaFuncAttributes * +# 2338 +attr, T * +# 2339 +entry) +# 2341 +{ +# 2342 +return ::cudaFuncGetAttributes(attr, (const void *)entry); +# 2343 +} +# 2402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2403 +cudaFuncSetAttribute(T * +# 2404 +func, cudaFuncAttribute +# 2405 +attr, int +# 2406 +value) +# 2408 +{ +# 2409 +return ::cudaFuncSetAttribute((const void *)func, attr, value); +# 2410 +} +# 2435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2436 +cudaFuncGetName(const char ** +# 2437 +name, T * +# 2438 +func) +# 2440 +{ +# 2441 +return ::cudaFuncGetName(name, (const void *)func); +# 2442 +} +# 2458 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2459 +cudaGetKernel(cudaKernel_t * +# 2460 +kernelPtr, T * +# 2461 +func) +# 2463 +{ +# 2464 +return ::cudaGetKernel(kernelPtr, (const void *)func); +# 2465 +} +# 2496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2497 +cudaLibraryGetGlobal(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +# 2498 +{ +# 2499 +return ::cudaLibraryGetGlobal((void **)((void *)dptr), bytes, library, name); +# 2500 +} +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2531 +cudaLibraryGetManaged(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +# 2532 +{ +# 2533 +return ::cudaLibraryGetManaged((void **)((void *)dptr), bytes, library, name); +# 2534 +} +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2561 +cudaLibraryGetUnifiedFunction(T **fptr, cudaLibrary_t library, const char *symbol) +# 2562 +{ +# 2563 +return ::cudaLibraryGetUnifiedFunction((void **)((void *)fptr), library, symbol); +# 2564 +} +# 2576 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 477 "CMakeCUDACompilerId.cu" +const char *info_compiler = ("INFO:compiler[NVIDIA]"); +# 479 +const char *info_simulate = ("INFO:simulate[GNU]"); +# 790 "CMakeCUDACompilerId.cu" +const char info_version[] = {'I', 'N', 'F', 'O', ':', 'c', 'o', 'm', 'p', 'i', 'l', 'e', 'r', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '[', (('0') + ((12 / 10000000) % 10)), (('0') + ((12 / 1000000) % 10)), (('0') + ((12 / 100000) % 10)), (('0') + ((12 / 10000) % 10)), (('0') + ((12 / 1000) % 10)), (('0') + ((12 / 100) % 10)), (('0') + ((12 / 10) % 10)), (('0') + (12 % 10)), '.', (('0') + ((8 / 10000000) % 10)), (('0') + ((8 / 1000000) % 10)), (('0') + ((8 / 100000) % 10)), (('0') + ((8 / 10000) % 10)), (('0') + ((8 / 1000) % 10)), (('0') + ((8 / 100) % 10)), (('0') + ((8 / 10) % 10)), (('0') + (8 % 10)), '.', (('0') + ((93 / 10000000) % 10)), (('0') + ((93 / 1000000) % 10)), (('0') + ((93 / 100000) % 10)), (('0') + ((93 / 10000) % 10)), (('0') + ((93 / 1000) % 10)), (('0') + ((93 / 100) % 10)), (('0') + ((93 / 10) % 10)), (('0') + (93 % 10)), ']', '\000'}; +# 819 "CMakeCUDACompilerId.cu" +const char info_simulate_version[] = {'I', 'N', 'F', 'O', ':', 's', 'i', 'm', 'u', 'l', 'a', 't', 'e', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '[', (('0') + ((14 / 10000000) % 10)), (('0') + ((14 / 1000000) % 10)), (('0') + ((14 / 100000) % 10)), (('0') + ((14 / 10000) % 10)), (('0') + ((14 / 1000) % 10)), (('0') + ((14 / 100) % 10)), (('0') + ((14 / 10) % 10)), (('0') + (14 % 10)), '.', (('0') + ((2 / 10000000) % 10)), (('0') + ((2 / 1000000) % 10)), (('0') + ((2 / 100000) % 10)), (('0') + ((2 / 10000) % 10)), (('0') + ((2 / 1000) % 10)), (('0') + ((2 / 100) % 10)), (('0') + ((2 / 10) % 10)), (('0') + (2 % 10)), ']', '\000'}; +# 839 +const char *info_platform = ("INFO:platform[Linux]"); +# 840 +const char *info_arch = ("INFO:arch[]"); +# 845 +const char *info_host_compiler = ("INFO:host_compiler[GNU]"); +# 850 +const char info_host_compiler_version[] = {'I', 'N', 'F', 'O', ':', 'h', 'o', 's', 't', '_', 'c', 'o', 'm', 'p', 'i', 'l', 'e', 'r', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '[', (('0') + ((14 / 10000000) % 10)), (('0') + ((14 / 1000000) % 10)), (('0') + ((14 / 100000) % 10)), (('0') + ((14 / 10000) % 10)), (('0') + ((14 / 1000) % 10)), (('0') + ((14 / 100) % 10)), (('0') + ((14 / 10) % 10)), (('0') + (14 % 10)), '.', (('0') + ((2 / 10000000) % 10)), (('0') + ((2 / 1000000) % 10)), (('0') + ((2 / 100000) % 10)), (('0') + ((2 / 10000) % 10)), (('0') + ((2 / 1000) % 10)), (('0') + ((2 / 100) % 10)), (('0') + ((2 / 10) % 10)), (('0') + (2 % 10)), '.', (('0') + ((1 / 10000000) % 10)), (('0') + ((1 / 1000000) % 10)), (('0') + ((1 / 100000) % 10)), (('0') + ((1 / 10000) % 10)), (('0') + ((1 / 1000) % 10)), (('0') + ((1 / 100) % 10)), (('0') + ((1 / 10) % 10)), (('0') + (1 % 10)), ']', '\000'}; +# 882 "CMakeCUDACompilerId.cu" +const char *info_language_standard_default = ("INFO:standard_default[17]"); +# 900 +const char *info_language_extensions_default = ("INFO:extensions_default[ON]"); +# 911 +int main(int argc, char *argv[]) +# 912 +{ +# 913 +int require = 0; +# 914 +require += (info_compiler[argc]); +# 915 +require += (info_platform[argc]); +# 917 +require += (info_version[argc]); +# 920 +require += (info_simulate[argc]); +# 923 +require += (info_simulate_version[argc]); +# 926 +require += (info_host_compiler[argc]); +# 929 +require += (info_host_compiler_version[argc]); +# 931 +require += (info_language_standard_default[argc]); +# 932 +require += (info_language_extensions_default[argc]); +# 933 +(void)argv; +# 934 +return require; +# 935 +} + +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#define _NV_ANON_NAMESPACE _GLOBAL__N__41504697_22_CMakeCUDACompilerId_cu_bd57c623 +#ifdef _NV_ANON_NAMESPACE +#endif +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#include "CMakeCUDACompilerId.cudafe1.stub.c" +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#undef _NV_ANON_NAMESPACE diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu new file mode 100644 index 0000000..8087332 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu @@ -0,0 +1,467 @@ +typedef char __nv_bool; +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +typedef unsigned long size_t; +#include "crt/device_runtime.h" +# 310 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +typedef unsigned long _ZSt6size_t; +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#include "common_functions.h" +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c new file mode 100644 index 0000000..2ebe7e6 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c @@ -0,0 +1,15 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-function" +#pragma GCC diagnostic ignored "-Wcast-qual" +#define __NV_CUBIN_HANDLE_STORAGE__ static +#if !defined(__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__) +#define __CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ +#endif +#include "crt/host_runtime.h" +#include "CMakeCUDACompilerId.fatbin.c" +static void __nv_cudaEntityRegisterCallback(void **); +static void __sti____cudaRegisterAll(void) __attribute__((__constructor__)); +static void __nv_cudaEntityRegisterCallback(void **__T0){__nv_dummy_param_ref(__T0);__nv_save_fatbinhandle_for_managed_rt(__T0);} +static void __sti____cudaRegisterAll(void){__cudaRegisterBinary(__nv_cudaEntityRegisterCallback);} + +#pragma GCC diagnostic pop diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin new file mode 100644 index 0000000..943e39f Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin differ diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c new file mode 100644 index 0000000..65e4578 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c @@ -0,0 +1,60 @@ +#ifndef __SKIP_INTERNAL_FATBINARY_HEADERS +#include "fatbinary_section.h" +#endif +#define __CUDAFATBINSECTION ".nvFatBinSegment" +#define __CUDAFATBINDATASECTION ".nv_fatbin" +asm( +".section .nv_fatbin, \"a\"\n" +".align 8\n" +"fatbinData:\n" +".quad 0x00100001ba55ed50,0x0000000000000438,0x0000004001010002,0x0000000000000368\n" +".quad 0x0000000000000000,0x0000003400010007,0x0000000000000000,0x0000000000000011\n" +".quad 0x0000000000000000,0x0000000000000000,0x33010102464c457f,0x0000000000000007\n" +".quad 0x0000008000be0002,0x0000000000000000,0x00000000000002f8,0x0000000000000178\n" +".quad 0x0038004000340534,0x0001000600400002,0x7472747368732e00,0x747274732e006261\n" +".quad 0x746d79732e006261,0x746d79732e006261,0x78646e68735f6261,0x666e692e766e2e00\n" +".quad 0x61632e766e2e006f,0x0068706172676c6c,0x746f72702e766e2e,0x6e2e00657079746f\n" +".quad 0x63612e6c65722e76,0x732e00006e6f6974,0x0062617472747368,0x006261747274732e\n" +".quad 0x006261746d79732e,0x5f6261746d79732e,0x6e2e0078646e6873,0x2e006f666e692e76\n" +".quad 0x676c6c61632e766e,0x766e2e0068706172,0x79746f746f72702e,0x722e766e2e006570\n" +".quad 0x6f697463612e6c65,0x000000000000006e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0004000300000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x000500030000004e,0x0000000000000000,0x0000000000000000,0xffffffff00000000\n" +".quad 0xfffffffe00000000,0xfffffffd00000000,0xfffffffc00000000,0x0000000000000073\n" +".quad 0x3605002511000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000300000001,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000040,0x000000000000005d,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x000000030000000b,0x0000000000000000,0x0000000000000000\n" +".quad 0x000000000000009d,0x000000000000005d,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x0000000200000013,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000100,0x0000000000000048,0x0000000300000002,0x0000000000000008\n" +".quad 0x0000000000000018,0x7000000100000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000148,0x0000000000000020,0x0000000000000003,0x0000000000000004\n" +".quad 0x0000000000000008,0x7000000b0000004e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000168,0x0000000000000010,0x0000000000000000,0x0000000000000008\n" +".quad 0x0000000000000008,0x0000000500000006,0x00000000000002f8,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000070,0x0000000000000070,0x0000000000000008\n" +".quad 0x0000000500000001,0x00000000000002f8,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000070,0x0000000000000070,0x0000000000000008,0x0000005001010001\n" +".quad 0x0000000000000040,0x0000004000000039,0x0000003400080007,0x0000000000000000\n" +".quad 0x0000000000002011,0x0000000000000000,0x0000000000000044,0x0000000000000048\n" +".quad 0x0000000000000000,0x22f000032f2f0a3c,0x6f69737265762e0a,0x742e0a372e38206e\n" +".quad 0x6d73207465677261,0x6464612e0a32355f,0x7a69735f73736572,0x0a0a0a0a34362065\n" +".quad 0x0000000000000000\n" +".text\n"); +#ifdef __cplusplus +extern "C" { +#endif +extern const unsigned long long fatbinData[137]; +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +static const __fatBinC_Wrapper_t __fatDeviceText __attribute__ ((aligned (8))) __attribute__ ((section (__CUDAFATBINSECTION)))= + { 0x466243b1, 1, fatbinData, 0 }; +#ifdef __cplusplus +} +#endif diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id new file mode 100644 index 0000000..6e5fdfe --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id @@ -0,0 +1 @@ +_41504697_22_CMakeCUDACompilerId_cu_bd57c623 \ No newline at end of file diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o new file mode 100644 index 0000000..b58e715 Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o differ diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx new file mode 100644 index 0000000..eca22bd --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx @@ -0,0 +1,14 @@ +// +// Generated by NVIDIA NVVM Compiler +// +// Compiler Build ID: CL-35583870 +// Cuda compilation tools, release 12.8, V12.8.93 +// Based on NVVM 7.0.1 +// + +.version 8.7 +.target sm_52 +.address_size 64 + + + diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin new file mode 100644 index 0000000..f6416e6 Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin differ diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin new file mode 100644 index 0000000..0f66675 Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin differ diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin.c b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin.c new file mode 100644 index 0000000..667e569 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin.c @@ -0,0 +1,55 @@ +#ifndef __SKIP_INTERNAL_FATBINARY_HEADERS +#include "fatbinary_section.h" +#endif +#define __CUDAFATBINSECTION ".nvFatBinSegment" +#define __CUDAFATBINDATASECTION ".nv_fatbin" +asm( +".section .nv_fatbin, \"a\"\n" +".align 8\n" +"fatbinData:\n" +".quad 0x00100001ba55ed50,0x00000000000003a8,0x0000004001010002,0x0000000000000368\n" +".quad 0x0000000000000000,0x0000003400010007,0x0000000000000000,0x0000000000000011\n" +".quad 0x0000000000000000,0x0000000000000000,0x33010102464c457f,0x0000000000000007\n" +".quad 0x0000008000be0002,0x0000000000000000,0x00000000000002f8,0x0000000000000178\n" +".quad 0x0038004000340534,0x0001000600400002,0x7472747368732e00,0x747274732e006261\n" +".quad 0x746d79732e006261,0x746d79732e006261,0x78646e68735f6261,0x666e692e766e2e00\n" +".quad 0x61632e766e2e006f,0x0068706172676c6c,0x746f72702e766e2e,0x6e2e00657079746f\n" +".quad 0x63612e6c65722e76,0x732e00006e6f6974,0x0062617472747368,0x006261747274732e\n" +".quad 0x006261746d79732e,0x5f6261746d79732e,0x6e2e0078646e6873,0x2e006f666e692e76\n" +".quad 0x676c6c61632e766e,0x766e2e0068706172,0x79746f746f72702e,0x722e766e2e006570\n" +".quad 0x6f697463612e6c65,0x000000000000006e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0004000300000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x000500030000004e,0x0000000000000000,0x0000000000000000,0xffffffff00000000\n" +".quad 0xfffffffe00000000,0xfffffffd00000000,0xfffffffc00000000,0x0000000000000073\n" +".quad 0x3605002511000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000300000001,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000040,0x000000000000005d,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x000000030000000b,0x0000000000000000,0x0000000000000000\n" +".quad 0x000000000000009d,0x000000000000005d,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x0000000200000013,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000100,0x0000000000000048,0x0000000300000002,0x0000000000000008\n" +".quad 0x0000000000000018,0x7000000100000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000148,0x0000000000000020,0x0000000000000003,0x0000000000000004\n" +".quad 0x0000000000000008,0x7000000b0000004e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000168,0x0000000000000010,0x0000000000000000,0x0000000000000008\n" +".quad 0x0000000000000008,0x0000000500000006,0x00000000000002f8,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000070,0x0000000000000070,0x0000000000000008\n" +".quad 0x0000000500000001,0x00000000000002f8,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000070, 0x0000000000000070, 0x0000000000000008\n" +".text\n"); +#ifdef __cplusplus +extern "C" { +#endif +extern const unsigned long long fatbinData[119]; +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +static const __fatBinC_Wrapper_t __fatDeviceText __attribute__ ((aligned (8))) __attribute__ ((section (__CUDAFATBINSECTION)))= + { 0x466243b1, 2, fatbinData, (void**)__cudaPrelinkedFatbins }; +#ifdef __cplusplus +} +#endif diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.o b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.o new file mode 100644 index 0000000..2be8f4d Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.o differ diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.reg.c b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.reg.c new file mode 100644 index 0000000..af69ecb --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.reg.c @@ -0,0 +1 @@ +#define NUM_PRELINKED_OBJECTS 0 diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin new file mode 100644 index 0000000..f6416e6 Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin differ diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp b/CMakeFiles/4.0.2-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..94d4310 --- /dev/null +++ b/CMakeFiles/4.0.2-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,920 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) || defined(__CPARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define CXX_STD_98 199711L +#define CXX_STD_11 201103L +#define CXX_STD_14 201402L +#define CXX_STD_17 201703L +#define CXX_STD_20 202002L +#define CXX_STD_23 202302L + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) +# if _MSVC_LANG > CXX_STD_17 +# define CXX_STD _MSVC_LANG +# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 +# define CXX_STD CXX_STD_17 +# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# elif defined(__INTEL_CXX11_MODE__) +# define CXX_STD CXX_STD_11 +# else +# define CXX_STD CXX_STD_98 +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# if _MSVC_LANG > __cplusplus +# define CXX_STD _MSVC_LANG +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__NVCOMPILER) +# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__INTEL_COMPILER) || defined(__PGI) +# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) +# define CXX_STD CXX_STD_17 +# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) +# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) +# define CXX_STD CXX_STD_11 +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > CXX_STD_23 + "26" +#elif CXX_STD > CXX_STD_20 + "23" +#elif CXX_STD > CXX_STD_17 + "20" +#elif CXX_STD > CXX_STD_14 + "17" +#elif CXX_STD > CXX_STD_11 + "14" +#elif CXX_STD >= CXX_STD_11 + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR) + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/CMakeFiles/4.0.2-dirty/CompilerIdCXX/a.out b/CMakeFiles/4.0.2-dirty/CompilerIdCXX/a.out new file mode 100755 index 0000000..dba3223 Binary files /dev/null and b/CMakeFiles/4.0.2-dirty/CompilerIdCXX/a.out differ diff --git a/CMakeFiles/CMakeConfigureLog.yaml b/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000..321f13b --- /dev/null +++ b/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,634 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:205 (message)" + - "CMakeLists.txt:2 (project)" + message: | + The system is: Linux - 6.14.7-arch2-1 - x86_64 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + message: | + Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. + Compiler: /usr/bin/c++ + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + + The CXX compiler identification is GNU, found in: + /home/tobli/abo/pprog/Homework-3/CMakeFiles/4.0.2-dirty/CompilerIdCXX/a.out + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:1284 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:75 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)" + - "CMakeLists.txt:2 (project)" + message: | + Checking whether the CUDA compiler is NVIDIA using "" did not match "nvcc: NVIDIA \\(R\\) Cuda compiler driver": + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:1284 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:75 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)" + - "CMakeLists.txt:2 (project)" + message: | + Checking whether the CUDA compiler is Clang using "" did not match "(clang version)": +... + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:1271 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:75 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)" + - "CMakeLists.txt:2 (project)" + message: | + Checking whether the CUDA compiler is NVIDIA using "" matched "nvcc: NVIDIA \\(R\\) Cuda compiler driver": + nvcc: NVIDIA (R) Cuda compiler driver + Copyright (c) 2005-2025 NVIDIA Corporation + Built on Fri_Feb_21_20:23:50_PST_2025 + Cuda compilation tools, release 12.8, V12.8.93 + Build cuda_12.8.r12.8/compiler.35583870_0 +... + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:1271 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:75 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)" + - "CMakeLists.txt:2 (project)" + message: | + Checking whether the CUDA compiler is NVIDIA using "" matched "nvcc: NVIDIA \\(R\\) Cuda compiler driver": + nvcc: NVIDIA (R) Cuda compiler driver + Copyright (c) 2005-2025 NVIDIA Corporation + Built on Fri_Feb_21_20:23:50_PST_2025 + Cuda compilation tools, release 12.8, V12.8.93 + Build cuda_12.8.r12.8/compiler.35583870_0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:136 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + message: | + Compiling the CUDA compiler identification source file "CMakeCUDACompilerId.cu" succeeded. + Compiler: /opt/cuda/bin/nvcc + Build flags: + Id flags: --keep;--keep-dir;tmp -v + + The output was: + 0 + nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). + #$ _NVVM_BRANCH_=nvvm + #$ _SPACE_= + #$ _CUDART_=cudart + #$ _HERE_=/opt/cuda/bin + #$ _THERE_=/opt/cuda/bin + #$ _TARGET_SIZE_= + #$ _TARGET_DIR_= + #$ _TARGET_DIR_=targets/x86_64-linux + #$ TOP=/opt/cuda/bin/.. + #$ CICC_PATH=/opt/cuda/bin/../nvvm/bin + #$ NVVMIR_LIBRARY_DIR=/opt/cuda/bin/../nvvm/libdevice + #$ LD_LIBRARY_PATH=/opt/cuda/bin/../lib:/opt/cuda/lib64 + #$ PATH=/opt/cuda/bin/../nvvm/bin:/opt/cuda/bin:/opt/cuda/bin/opt/cuda/bin/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl + #$ INCLUDES="-I/opt/cuda/bin/../targets/x86_64-linux/include" + #$ LIBRARIES= "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" + #$ CUDAFE_FLAGS= + #$ PTXAS_FLAGS= + #$ rm tmp/a_dlink.reg.c + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ cudafe++ --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" + #$ "$CICC_PATH/cicc" --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx" + #$ ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" + #$ fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" + #$ nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "/usr/bin/g++-14" + #$ fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -m64 "/opt/cuda/bin/crt/link.stub" -o "tmp/a_dlink.o" + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" + + + Compilation of the CUDA compiler identification source "CMakeCUDACompilerId.cu" produced "a.out" + + The CUDA compiler identification is NVIDIA, found in: + /home/tobli/abo/pprog/Homework-3/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/a.out + The host compiler identification is GNU + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake:128 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:247 (cmake_nvcc_parse_implicit_info)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA nvcc implicit link information: + found 'PATH=' string: [/opt/cuda/bin/../nvvm/bin:/opt/cuda/bin:/opt/cuda/bin/opt/cuda/bin/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl] + found 'LIBRARIES=' string: ["-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib"] + found 'INCLUDES=' string: ["-I/opt/cuda/bin/../targets/x86_64-linux/include" ] + considering line: [nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).] + considering line: [rm tmp/a_dlink.reg.c] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [cudafe++ --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" ] + considering line: ["$CICC_PATH/cicc" --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx"] + considering line: [ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" ] + considering line: [fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" ] + considering line: [nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "/usr/bin/g++-14"] + ignoring nvlink line + considering line: [fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -m64 "/opt/cuda/bin/crt/link.stub" -o "tmp/a_dlink.o" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + extracted link line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + considering line: [] + extracted link launcher absolute path: [/usr/bin/g++-14] + + link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + link line: [cuda-fake-ld "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + arg [cuda-fake-ld] ==> ignore + arg [/usr/bin/g++-14] ==> ignore + arg [-D__CUDA_ARCH_LIST__=520] ==> ignore + arg [-D__NV_LEGACY_LAUNCH] ==> ignore + arg [-m64] ==> ignore + arg [-Wl,--start-group] ==> ignore + arg [tmp/a_dlink.o] ==> ignore + arg [tmp/CMakeCUDACompilerId.o] ==> ignore + arg [-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] ==> dir [/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] + arg [-L/opt/cuda/bin/../targets/x86_64-linux/lib] ==> dir [/opt/cuda/bin/../targets/x86_64-linux/lib] + arg [-lcudadevrt] ==> lib [cudadevrt] + arg [-lcudart_static] ==> lib [cudart_static] + arg [-lrt] ==> lib [rt] + arg [-lpthread] ==> lib [pthread] + arg [-ldl] ==> lib [dl] + arg [-Wl,--end-group] ==> ignore + arg [-o] ==> ignore + arg [a.out] ==> ignore + collapse library dir [/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] ==> [/opt/cuda/targets/x86_64-linux/lib/stubs] + collapse library dir [/opt/cuda/bin/../targets/x86_64-linux/lib] ==> [/opt/cuda/targets/x86_64-linux/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl] + implicit objs: [] + implicit dirs: [/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake:146 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:247 (cmake_nvcc_parse_implicit_info)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA nvcc include information: + found 'PATH=' string: [/opt/cuda/bin/../nvvm/bin:/opt/cuda/bin:/opt/cuda/bin/opt/cuda/bin/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl] + found 'LIBRARIES=' string: ["-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib"] + found 'INCLUDES=' string: ["-I/opt/cuda/bin/../targets/x86_64-linux/include" ] + considering line: [nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).] + considering line: [rm tmp/a_dlink.reg.c] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [cudafe++ --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" ] + considering line: ["$CICC_PATH/cicc" --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx"] + considering line: [ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" ] + considering line: [fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" ] + considering line: [nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "/usr/bin/g++-14"] + ignoring nvlink line + considering line: [fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -m64 "/opt/cuda/bin/crt/link.stub" -o "tmp/a_dlink.o" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + extracted link line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + considering line: [] + extracted link launcher absolute path: [/usr/bin/g++-14] + + link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + link line: [cuda-fake-ld "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + arg [cuda-fake-ld] ==> ignore + arg [/usr/bin/g++-14] ==> ignore + arg [-D__CUDA_ARCH_LIST__=520] ==> ignore + arg [-D__NV_LEGACY_LAUNCH] ==> ignore + arg [-m64] ==> ignore + arg [-Wl,--start-group] ==> ignore + arg [tmp/a_dlink.o] ==> ignore + arg [tmp/CMakeCUDACompilerId.o] ==> ignore + arg [-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] ==> dir [/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] + arg [-L/opt/cuda/bin/../targets/x86_64-linux/lib] ==> dir [/opt/cuda/bin/../targets/x86_64-linux/lib] + arg [-lcudadevrt] ==> lib [cudadevrt] + arg [-lcudart_static] ==> lib [cudart_static] + arg [-lrt] ==> lib [rt] + arg [-lpthread] ==> lib [pthread] + arg [-ldl] ==> lib [dl] + arg [-Wl,--end-group] ==> ignore + arg [-o] ==> ignore + arg [a.out] ==> ignore + collapse library dir [/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] ==> [/opt/cuda/targets/x86_64-linux/lib/stubs] + collapse library dir [/opt/cuda/bin/../targets/x86_64-linux/lib] ==> [/opt/cuda/targets/x86_64-linux/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl] + implicit objs: [] + implicit dirs: [/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib] + implicit fwks: [] + + + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)" + - "/usr/share/cmake/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + checks: + - "Detecting CUDA compiler ABI info" + directories: + source: "/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-fZUGRz" + binary: "/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-fZUGRz" + cmakeVariables: + CMAKE_CUDA_ARCHITECTURES: "52" + CMAKE_CUDA_FLAGS: "" + CMAKE_CUDA_FLAGS_DEBUG: "-g" + CMAKE_CUDA_RUNTIME_LIBRARY: "Static" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CUDA_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-fZUGRz' + + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_c9a77/fast + /usr/bin/make -f CMakeFiles/cmTC_c9a77.dir/build.make CMakeFiles/cmTC_c9a77.dir/build + make[1]: Entering directory '/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-fZUGRz' + Building CUDA object CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o + /opt/cuda/bin/nvcc -forward-unknown-to-host-compiler "--generate-code=arch=compute_52,code=[compute_52,sm_52]" -Xcompiler=-v -MD -MT CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o -MF CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o.d -x cu -c /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o + nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-14 + Target: x86_64-pc-linux-gnu + Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c,c++,fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.1 20250207 (GCC) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/' + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -E -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=12 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=93 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -D __CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include cuda_runtime.h /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.ii -m64 -mtune=generic -march=x86-64 -dumpdir /tmp/ -dumpbase tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.cu -dumpbase-ext .cu + ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /opt/cuda/bin/../targets/x86_64-linux/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include + /usr/local/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed + /usr/include + End of search list. + COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.' + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-14 + Target: x86_64-pc-linux-gnu + Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c,c++,fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.1 20250207 (GCC) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/' + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -E -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=12 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=93 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -D __CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include cuda_runtime.h /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.ii -m64 -mtune=generic -march=x86-64 -dumpdir /tmp/ -dumpbase tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.cu -dumpbase-ext .cu + ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /opt/cuda/bin/../targets/x86_64-linux/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include + /usr/local/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed + /usr/include + End of search list. + COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.' + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-14 + Target: x86_64-pc-linux-gnu + Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c,c++,fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.1 20250207 (GCC) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c9a77.dir/' + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS /tmp/tmpxft_00002fe7_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -quiet -dumpdir CMakeFiles/cmTC_c9a77.dir/ -dumpbase CMakeCUDACompilerABI.cu.cpp -dumpbase-ext .cpp -m64 -mtune=generic -march=x86-64 -Wno-psabi -version -o /tmp/ccQvtD0n.s + GNU C++17 (GCC) version 14.2.1 20250207 (x86_64-pc-linux-gnu) + compiled by GNU C version 14.2.1 20250207, GMP version 6.3.0, MPFR version 4.2.2, MPC version 1.3.1, isl version isl-0.27-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /opt/cuda/bin/../targets/x86_64-linux/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include + /usr/local/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed + /usr/include + End of search list. + Compiler executable checksum: 419730b4853e824d20fe72cd5c71d7dd + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c9a77.dir/' + as -v -I /opt/cuda/bin/../targets/x86_64-linux/include --64 -o CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o /tmp/ccQvtD0n.s + GNU assembler version 2.44.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.44.0 + COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.' + Linking CUDA executable cmTC_c9a77 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c9a77.dir/link.txt --verbose=1 + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-14 + COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper + Target: x86_64-pc-linux-gnu + Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c,c++,fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.1 20250207 (GCC) + COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c9a77' '-L/opt/cuda/targets/x86_64-linux/lib/stubs' '-L/opt/cuda/targets/x86_64-linux/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c9a77.' + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cczvsQ1G.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_c9a77 /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o + collect2 version 14.2.1 20250207 + /usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cczvsQ1G.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_c9a77 /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o + GNU ld (GNU Binutils) 2.44.0 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c9a77' '-L/opt/cuda/targets/x86_64-linux/lib/stubs' '-L/opt/cuda/targets/x86_64-linux/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c9a77.' + /usr/bin/g++-14 -v -Wl,-v CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o -o cmTC_c9a77 -lcudadevrt -lcudart_static -lrt -lpthread -ldl -L"/opt/cuda/targets/x86_64-linux/lib/stubs" -L"/opt/cuda/targets/x86_64-linux/lib" + make[1]: Leaving directory '/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-fZUGRz' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:191 (message)" + - "/usr/share/cmake/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/opt/cuda/bin/../targets/x86_64-linux/include] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + add: [/usr/local/include] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + add: [/usr/include] + end of search list found + collapse include dir [/opt/cuda/bin/../targets/x86_64-linux/include] ==> [/opt/cuda/targets/x86_64-linux/include] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/opt/cuda/targets/x86_64-linux/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:227 (message)" + - "/usr/share/cmake/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)))("|,| |$)] + ignore line: [Change Dir: '/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-fZUGRz'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_c9a77/fast] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_c9a77.dir/build.make CMakeFiles/cmTC_c9a77.dir/build] + ignore line: [make[1]: Entering directory '/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-fZUGRz'] + ignore line: [Building CUDA object CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o] + ignore line: [/opt/cuda/bin/nvcc -forward-unknown-to-host-compiler "--generate-code=arch=compute_52 code=[compute_52 sm_52]" -Xcompiler=-v -MD -MT CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o -MF CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o.d -x cu -c /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o] + ignore line: [nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-14] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c c++ fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.1 20250207 (GCC) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/'] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -E -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=12 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=93 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -D __CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include cuda_runtime.h /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.ii -m64 -mtune=generic -march=x86-64 -dumpdir /tmp/ -dumpbase tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.cu -dumpbase-ext .cu] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /opt/cuda/bin/../targets/x86_64-linux/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00002fe7_00000000-7_CMakeCUDACompilerABI.cpp1.'] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-14] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c c++ fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.1 20250207 (GCC) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/'] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -E -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=12 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=93 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -D __CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include cuda_runtime.h /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.ii -m64 -mtune=generic -march=x86-64 -dumpdir /tmp/ -dumpbase tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.cu -dumpbase-ext .cu] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /opt/cuda/bin/../targets/x86_64-linux/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00002fe7_00000000-5_CMakeCUDACompilerABI.cpp4.'] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-14] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c c++ fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.1 20250207 (GCC) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c9a77.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS /tmp/tmpxft_00002fe7_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -quiet -dumpdir CMakeFiles/cmTC_c9a77.dir/ -dumpbase CMakeCUDACompilerABI.cu.cpp -dumpbase-ext .cpp -m64 -mtune=generic -march=x86-64 -Wno-psabi -version -o /tmp/ccQvtD0n.s] + ignore line: [GNU C++17 (GCC) version 14.2.1 20250207 (x86_64-pc-linux-gnu)] + ignore line: [ compiled by GNU C version 14.2.1 20250207 GMP version 6.3.0 MPFR version 4.2.2 MPC version 1.3.1 isl version isl-0.27-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /opt/cuda/bin/../targets/x86_64-linux/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: 419730b4853e824d20fe72cd5c71d7dd] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c9a77.dir/'] + ignore line: [ as -v -I /opt/cuda/bin/../targets/x86_64-linux/include --64 -o CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o /tmp/ccQvtD0n.s] + ignore line: [GNU assembler version 2.44.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.44.0] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.'] + ignore line: [Linking CUDA executable cmTC_c9a77] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c9a77.dir/link.txt --verbose=1] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-14] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c c++ fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.1 20250207 (GCC) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c9a77' '-L/opt/cuda/targets/x86_64-linux/lib/stubs' '-L/opt/cuda/targets/x86_64-linux/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c9a77.'] + link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cczvsQ1G.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_c9a77 /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cczvsQ1G.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-o] ==> ignore + arg [cmTC_c9a77] ==> ignore + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o] + arg [-L/opt/cuda/targets/x86_64-linux/lib/stubs] ==> dir [/opt/cuda/targets/x86_64-linux/lib/stubs] + arg [-L/opt/cuda/targets/x86_64-linux/lib] ==> dir [/opt/cuda/targets/x86_64-linux/lib] + arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] + arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o] ==> ignore + arg [-lcudadevrt] ==> lib [cudadevrt] + arg [-lcudart_static] ==> lib [cudart_static] + arg [-lrt] ==> lib [rt] + arg [-lpthread] ==> lib [pthread] + arg [-ldl] ==> lib [dl] + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] + ignore line: [collect2 version 14.2.1 20250207] + ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cczvsQ1G.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_c9a77 /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_c9a77.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] + linker tool for 'CUDA': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] ==> [/usr/lib/crti.o] + collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] ==> [/usr/lib/crtn.o] + collapse library dir [/opt/cuda/targets/x86_64-linux/lib/stubs] ==> [/opt/cuda/targets/x86_64-linux/lib/stubs] + collapse library dir [/opt/cuda/targets/x86_64-linux/lib] ==> [/opt/cuda/targets/x86_64-linux/lib] + collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] + collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] ==> [/usr/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl;stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/Scrt1.o;/usr/lib/crti.o;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o;/usr/lib/crtn.o] + implicit dirs: [/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1;/usr/lib;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:270 (cmake_determine_linker_id)" + - "/usr/share/cmake/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Running the CUDA compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils) 2.44.0 + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake:104 (try_compile)" + - "/usr/share/cmake/Modules/CheckCXXSourceCompiles.cmake:58 (cmake_check_source_compiles)" + - "/usr/share/cmake/Modules/FindThreads.cmake:99 (check_cxx_source_compiles)" + - "/usr/share/cmake/Modules/FindThreads.cmake:163 (_threads_check_libc)" + - "/usr/share/cmake/Modules/FindCUDAToolkit.cmake:1207 (find_package)" + - "CMakeLists.txt:9 (find_package)" + checks: + - "Performing Test CMAKE_HAVE_LIBC_PTHREAD" + directories: + source: "/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-oSiYVd" + binary: "/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-oSiYVd" + cmakeVariables: + CMAKE_CUDA_ARCHITECTURES: "52" + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_HAVE_LIBC_PTHREAD" + cached: true + stdout: | + Change Dir: '/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-oSiYVd' + + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_e5f5a/fast + /usr/bin/make -f CMakeFiles/cmTC_e5f5a.dir/build.make CMakeFiles/cmTC_e5f5a.dir/build + make[1]: Entering directory '/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-oSiYVd' + Building CXX object CMakeFiles/cmTC_e5f5a.dir/src.cxx.o + /usr/bin/c++ -DCMAKE_HAVE_LIBC_PTHREAD -std=gnu++17 -o CMakeFiles/cmTC_e5f5a.dir/src.cxx.o -c /home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-oSiYVd/src.cxx + Linking CXX executable cmTC_e5f5a + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e5f5a.dir/link.txt --verbose=1 + /usr/bin/c++ CMakeFiles/cmTC_e5f5a.dir/src.cxx.o -o cmTC_e5f5a + make[1]: Leaving directory '/home/tobli/abo/pprog/Homework-3/CMakeFiles/CMakeScratch/TryCompile-oSiYVd' + + exitCode: 0 +... diff --git a/CMakeFiles/CMakeDirectoryInformation.cmake b/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..e32e0f3 --- /dev/null +++ b/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.0 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/tobli/abo/pprog/Homework-3") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/tobli/abo/pprog/Homework-3") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/CMakeFiles/InstallScripts.json b/CMakeFiles/InstallScripts.json new file mode 100644 index 0000000..374a9d4 --- /dev/null +++ b/CMakeFiles/InstallScripts.json @@ -0,0 +1,7 @@ +{ + "InstallScripts" : + [ + "/home/tobli/abo/pprog/Homework-3/cmake_install.cmake" + ], + "Parallel" : false +} diff --git a/CMakeFiles/Makefile.cmake b/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..beeae2e --- /dev/null +++ b/CMakeFiles/Makefile.cmake @@ -0,0 +1,57 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.0 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake" + "CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake" + "CMakeFiles/4.0.2-dirty/CMakeSystem.cmake" + "CMakeLists.txt" + "/usr/share/cmake/Modules/CMakeCUDAInformation.cmake" + "/usr/share/cmake/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake/Modules/CheckCXXSourceCompiles.cmake" + "/usr/share/cmake/Modules/CheckIncludeFileCXX.cmake" + "/usr/share/cmake/Modules/CheckLibraryExists.cmake" + "/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake/Modules/Compiler/GNU.cmake" + "/usr/share/cmake/Modules/Compiler/NVIDIA-CUDA.cmake" + "/usr/share/cmake/Modules/Compiler/NVIDIA.cmake" + "/usr/share/cmake/Modules/FindCUDAToolkit.cmake" + "/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake" + "/usr/share/cmake/Modules/FindPackageMessage.cmake" + "/usr/share/cmake/Modules/FindThreads.cmake" + "/usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake" + "/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake" + "/usr/share/cmake/Modules/Platform/Linux-NVIDIA-CUDA.cmake" + "/usr/share/cmake/Modules/Platform/Linux.cmake" + "/usr/share/cmake/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/app.dir/DependInfo.cmake" + ) diff --git a/CMakeFiles/Makefile2 b/CMakeFiles/Makefile2 new file mode 100644 index 0000000..41bf300 --- /dev/null +++ b/CMakeFiles/Makefile2 @@ -0,0 +1,122 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.0 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/tobli/abo/pprog/Homework-3 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/tobli/abo/pprog/Homework-3 + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/app.dir/all +.PHONY : all + +# The main recursive "codegen" target. +codegen: CMakeFiles/app.dir/codegen +.PHONY : codegen + +# The main recursive "preinstall" target. +preinstall: +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/app.dir/clean +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/app.dir + +# All Build rule for target. +CMakeFiles/app.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/tobli/abo/pprog/Homework-3/CMakeFiles --progress-num=1,2,3 "Built target app" +.PHONY : CMakeFiles/app.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/app.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/tobli/abo/pprog/Homework-3/CMakeFiles 3 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/app.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/tobli/abo/pprog/Homework-3/CMakeFiles 0 +.PHONY : CMakeFiles/app.dir/rule + +# Convenience name for target. +app: CMakeFiles/app.dir/rule +.PHONY : app + +# codegen rule for target. +CMakeFiles/app.dir/codegen: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/codegen + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/tobli/abo/pprog/Homework-3/CMakeFiles --progress-num=1,2,3 "Finished codegen for target app" +.PHONY : CMakeFiles/app.dir/codegen + +# clean rule for target. +CMakeFiles/app.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/clean +.PHONY : CMakeFiles/app.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/CMakeFiles/TargetDirectories.txt b/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..9f0e2c5 --- /dev/null +++ b/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/tobli/abo/pprog/Homework-3/CMakeFiles/app.dir +/home/tobli/abo/pprog/Homework-3/CMakeFiles/edit_cache.dir +/home/tobli/abo/pprog/Homework-3/CMakeFiles/rebuild_cache.dir diff --git a/CMakeFiles/app.dir/DependInfo.cmake b/CMakeFiles/app.dir/DependInfo.cmake new file mode 100644 index 0000000..5ea7155 --- /dev/null +++ b/CMakeFiles/app.dir/DependInfo.cmake @@ -0,0 +1,23 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/tobli/abo/pprog/Homework-3/main.cu" "CMakeFiles/app.dir/main.cu.o" "gcc" "CMakeFiles/app.dir/main.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/CMakeFiles/app.dir/build.make b/CMakeFiles/app.dir/build.make new file mode 100644 index 0000000..cd0eb53 --- /dev/null +++ b/CMakeFiles/app.dir/build.make @@ -0,0 +1,140 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.0 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/tobli/abo/pprog/Homework-3 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/tobli/abo/pprog/Homework-3 + +# Include any dependencies generated for this target. +include CMakeFiles/app.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include CMakeFiles/app.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/app.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/app.dir/flags.make + +CMakeFiles/app.dir/codegen: +.PHONY : CMakeFiles/app.dir/codegen + +CMakeFiles/app.dir/main.cu.o: CMakeFiles/app.dir/flags.make +CMakeFiles/app.dir/main.cu.o: CMakeFiles/app.dir/includes_CUDA.rsp +CMakeFiles/app.dir/main.cu.o: main.cu +CMakeFiles/app.dir/main.cu.o: CMakeFiles/app.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/tobli/abo/pprog/Homework-3/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object CMakeFiles/app.dir/main.cu.o" + /opt/cuda/bin/nvcc -forward-unknown-to-host-compiler $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT CMakeFiles/app.dir/main.cu.o -MF CMakeFiles/app.dir/main.cu.o.d -x cu -rdc=true -c /home/tobli/abo/pprog/Homework-3/main.cu -o CMakeFiles/app.dir/main.cu.o + +CMakeFiles/app.dir/main.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CUDA source to CMakeFiles/app.dir/main.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +CMakeFiles/app.dir/main.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CUDA source to assembly CMakeFiles/app.dir/main.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target app +app_OBJECTS = \ +"CMakeFiles/app.dir/main.cu.o" + +# External object files for target app +app_EXTERNAL_OBJECTS = + +CMakeFiles/app.dir/cmake_device_link.o: CMakeFiles/app.dir/main.cu.o +CMakeFiles/app.dir/cmake_device_link.o: CMakeFiles/app.dir/build.make +CMakeFiles/app.dir/cmake_device_link.o: /opt/cuda/targets/x86_64-linux/lib/libcudart.so +CMakeFiles/app.dir/cmake_device_link.o: /usr/lib/librt.a +CMakeFiles/app.dir/cmake_device_link.o: CMakeFiles/app.dir/deviceLinkLibs.rsp +CMakeFiles/app.dir/cmake_device_link.o: CMakeFiles/app.dir/deviceObjects1.rsp +CMakeFiles/app.dir/cmake_device_link.o: CMakeFiles/app.dir/dlink.txt + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/tobli/abo/pprog/Homework-3/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA device code CMakeFiles/app.dir/cmake_device_link.o" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/app.dir/dlink.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/app.dir/build: CMakeFiles/app.dir/cmake_device_link.o +.PHONY : CMakeFiles/app.dir/build + +# Object files for target app +app_OBJECTS = \ +"CMakeFiles/app.dir/main.cu.o" + +# External object files for target app +app_EXTERNAL_OBJECTS = + +app: CMakeFiles/app.dir/main.cu.o +app: CMakeFiles/app.dir/build.make +app: /opt/cuda/targets/x86_64-linux/lib/libcudart.so +app: /usr/lib/librt.a +app: CMakeFiles/app.dir/cmake_device_link.o +app: CMakeFiles/app.dir/linkLibs.rsp +app: CMakeFiles/app.dir/objects1.rsp +app: CMakeFiles/app.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/tobli/abo/pprog/Homework-3/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CUDA executable app" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/app.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/app.dir/build: app +.PHONY : CMakeFiles/app.dir/build + +CMakeFiles/app.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/app.dir/cmake_clean.cmake +.PHONY : CMakeFiles/app.dir/clean + +CMakeFiles/app.dir/depend: + cd /home/tobli/abo/pprog/Homework-3 && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/tobli/abo/pprog/Homework-3 /home/tobli/abo/pprog/Homework-3 /home/tobli/abo/pprog/Homework-3 /home/tobli/abo/pprog/Homework-3 /home/tobli/abo/pprog/Homework-3/CMakeFiles/app.dir/DependInfo.cmake "--color=$(COLOR)" +.PHONY : CMakeFiles/app.dir/depend + diff --git a/CMakeFiles/app.dir/cmake_clean.cmake b/CMakeFiles/app.dir/cmake_clean.cmake new file mode 100644 index 0000000..60cdb88 --- /dev/null +++ b/CMakeFiles/app.dir/cmake_clean.cmake @@ -0,0 +1,12 @@ +file(REMOVE_RECURSE + "CMakeFiles/app.dir/cmake_device_link.o" + "CMakeFiles/app.dir/main.cu.o" + "CMakeFiles/app.dir/main.cu.o.d" + "app" + "app.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/app.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/CMakeFiles/app.dir/cmake_device_link.o b/CMakeFiles/app.dir/cmake_device_link.o new file mode 100644 index 0000000..8dd55b9 Binary files /dev/null and b/CMakeFiles/app.dir/cmake_device_link.o differ diff --git a/CMakeFiles/app.dir/compiler_depend.internal b/CMakeFiles/app.dir/compiler_depend.internal new file mode 100644 index 0000000..ca09077 --- /dev/null +++ b/CMakeFiles/app.dir/compiler_depend.internal @@ -0,0 +1,322 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.0 + +CMakeFiles/app.dir/main.cu.o + /home/tobli/abo/pprog/Homework-3/main.cu + /opt/cuda/targets/x86_64-linux/include/builtin_types.h + /opt/cuda/targets/x86_64-linux/include/channel_descriptor.h + /opt/cuda/targets/x86_64-linux/include/crt/common_functions.h + /opt/cuda/targets/x86_64-linux/include/crt/cudacc_ext.h + /opt/cuda/targets/x86_64-linux/include/crt/device_double_functions.h + /opt/cuda/targets/x86_64-linux/include/crt/device_double_functions.hpp + /opt/cuda/targets/x86_64-linux/include/crt/device_functions.h + /opt/cuda/targets/x86_64-linux/include/crt/device_functions.hpp + /opt/cuda/targets/x86_64-linux/include/crt/host_config.h + /opt/cuda/targets/x86_64-linux/include/crt/host_defines.h + /opt/cuda/targets/x86_64-linux/include/crt/math_functions.h + /opt/cuda/targets/x86_64-linux/include/crt/math_functions.hpp + /opt/cuda/targets/x86_64-linux/include/crt/sm_100_rt.h + /opt/cuda/targets/x86_64-linux/include/crt/sm_100_rt.hpp + /opt/cuda/targets/x86_64-linux/include/crt/sm_70_rt.h + /opt/cuda/targets/x86_64-linux/include/crt/sm_70_rt.hpp + /opt/cuda/targets/x86_64-linux/include/crt/sm_80_rt.h + /opt/cuda/targets/x86_64-linux/include/crt/sm_80_rt.hpp + /opt/cuda/targets/x86_64-linux/include/crt/sm_90_rt.h + /opt/cuda/targets/x86_64-linux/include/crt/sm_90_rt.hpp + /opt/cuda/targets/x86_64-linux/include/cuda_device_runtime_api.h + /opt/cuda/targets/x86_64-linux/include/cuda_runtime.h + /opt/cuda/targets/x86_64-linux/include/cuda_runtime_api.h + /opt/cuda/targets/x86_64-linux/include/device_atomic_functions.h + /opt/cuda/targets/x86_64-linux/include/device_atomic_functions.hpp + /opt/cuda/targets/x86_64-linux/include/device_launch_parameters.h + /opt/cuda/targets/x86_64-linux/include/device_types.h + /opt/cuda/targets/x86_64-linux/include/driver_functions.h + /opt/cuda/targets/x86_64-linux/include/driver_types.h + /opt/cuda/targets/x86_64-linux/include/library_types.h + /opt/cuda/targets/x86_64-linux/include/sm_20_atomic_functions.h + /opt/cuda/targets/x86_64-linux/include/sm_20_atomic_functions.hpp + /opt/cuda/targets/x86_64-linux/include/sm_20_intrinsics.h + /opt/cuda/targets/x86_64-linux/include/sm_20_intrinsics.hpp + /opt/cuda/targets/x86_64-linux/include/sm_30_intrinsics.h + /opt/cuda/targets/x86_64-linux/include/sm_30_intrinsics.hpp + /opt/cuda/targets/x86_64-linux/include/sm_32_atomic_functions.h + /opt/cuda/targets/x86_64-linux/include/sm_32_atomic_functions.hpp + /opt/cuda/targets/x86_64-linux/include/sm_32_intrinsics.h + /opt/cuda/targets/x86_64-linux/include/sm_32_intrinsics.hpp + /opt/cuda/targets/x86_64-linux/include/sm_35_atomic_functions.h + /opt/cuda/targets/x86_64-linux/include/sm_35_intrinsics.h + /opt/cuda/targets/x86_64-linux/include/sm_60_atomic_functions.h + /opt/cuda/targets/x86_64-linux/include/sm_60_atomic_functions.hpp + /opt/cuda/targets/x86_64-linux/include/sm_61_intrinsics.h + /opt/cuda/targets/x86_64-linux/include/sm_61_intrinsics.hpp + /opt/cuda/targets/x86_64-linux/include/surface_indirect_functions.h + /opt/cuda/targets/x86_64-linux/include/surface_types.h + /opt/cuda/targets/x86_64-linux/include/texture_indirect_functions.h + /opt/cuda/targets/x86_64-linux/include/texture_types.h + /opt/cuda/targets/x86_64-linux/include/vector_functions.h + /opt/cuda/targets/x86_64-linux/include/vector_functions.hpp + /opt/cuda/targets/x86_64-linux/include/vector_types.h + /usr/include/alloca.h + /usr/include/asm-generic/bitsperlong.h + /usr/include/asm-generic/errno-base.h + /usr/include/asm-generic/errno.h + /usr/include/asm-generic/int-ll64.h + /usr/include/asm-generic/posix_types.h + /usr/include/asm-generic/types.h + /usr/include/asm/bitsperlong.h + /usr/include/asm/errno.h + /usr/include/asm/posix_types.h + /usr/include/asm/posix_types_64.h + /usr/include/asm/types.h + /usr/include/assert.h + /usr/include/bits/atomic_wide_counter.h + /usr/include/bits/byteswap.h + /usr/include/bits/cpu-set.h + /usr/include/bits/endian.h + /usr/include/bits/endianness.h + /usr/include/bits/errno.h + /usr/include/bits/floatn-common.h + /usr/include/bits/floatn.h + /usr/include/bits/flt-eval-method.h + /usr/include/bits/fp-fast.h + /usr/include/bits/fp-logb.h + /usr/include/bits/iscanonical.h + /usr/include/bits/libc-header-start.h + /usr/include/bits/libm-simd-decl-stubs.h + /usr/include/bits/local_lim.h + /usr/include/bits/locale.h + /usr/include/bits/long-double.h + /usr/include/bits/math-vector.h + /usr/include/bits/mathcalls-helper-functions.h + /usr/include/bits/mathcalls-macros.h + /usr/include/bits/mathcalls-narrow.h + /usr/include/bits/mathcalls.h + /usr/include/bits/posix1_lim.h + /usr/include/bits/posix2_lim.h + /usr/include/bits/pthread_stack_min-dynamic.h + /usr/include/bits/pthreadtypes-arch.h + /usr/include/bits/pthreadtypes.h + /usr/include/bits/sched.h + /usr/include/bits/select.h + /usr/include/bits/setjmp.h + /usr/include/bits/stdint-intn.h + /usr/include/bits/stdint-least.h + /usr/include/bits/stdint-uintn.h + /usr/include/bits/stdio_lim.h + /usr/include/bits/stdlib-float.h + /usr/include/bits/struct_mutex.h + /usr/include/bits/struct_rwlock.h + /usr/include/bits/thread-shared-types.h + /usr/include/bits/time.h + /usr/include/bits/time64.h + /usr/include/bits/timesize.h + /usr/include/bits/timex.h + /usr/include/bits/types.h + /usr/include/bits/types/FILE.h + /usr/include/bits/types/__FILE.h + /usr/include/bits/types/__fpos64_t.h + /usr/include/bits/types/__fpos_t.h + /usr/include/bits/types/__locale_t.h + /usr/include/bits/types/__mbstate_t.h + /usr/include/bits/types/__sigset_t.h + /usr/include/bits/types/clock_t.h + /usr/include/bits/types/clockid_t.h + /usr/include/bits/types/cookie_io_functions_t.h + /usr/include/bits/types/error_t.h + /usr/include/bits/types/locale_t.h + /usr/include/bits/types/mbstate_t.h + /usr/include/bits/types/sigset_t.h + /usr/include/bits/types/struct_FILE.h + /usr/include/bits/types/struct___jmp_buf_tag.h + /usr/include/bits/types/struct_itimerspec.h + /usr/include/bits/types/struct_sched_param.h + /usr/include/bits/types/struct_timespec.h + /usr/include/bits/types/struct_timeval.h + /usr/include/bits/types/struct_tm.h + /usr/include/bits/types/time_t.h + /usr/include/bits/types/timer_t.h + /usr/include/bits/types/wint_t.h + /usr/include/bits/typesizes.h + /usr/include/bits/uintn-identity.h + /usr/include/bits/uio_lim.h + /usr/include/bits/waitflags.h + /usr/include/bits/waitstatus.h + /usr/include/bits/wchar.h + /usr/include/bits/wctype-wchar.h + /usr/include/bits/wordsize.h + /usr/include/bits/xopen_lim.h + /usr/include/ctype.h + /usr/include/endian.h + /usr/include/errno.h + /usr/include/features-time64.h + /usr/include/features.h + /usr/include/gnu/stubs-64.h + /usr/include/gnu/stubs.h + /usr/include/limits.h + /usr/include/linux/errno.h + /usr/include/linux/limits.h + /usr/include/linux/posix_types.h + /usr/include/linux/sched/types.h + /usr/include/linux/stddef.h + /usr/include/linux/types.h + /usr/include/locale.h + /usr/include/math.h + /usr/include/pthread.h + /usr/include/sched.h + /usr/include/stdc-predef.h + /usr/include/stdint.h + /usr/include/stdio.h + /usr/include/stdlib.h + /usr/include/string.h + /usr/include/strings.h + /usr/include/sys/cdefs.h + /usr/include/sys/select.h + /usr/include/sys/single_threaded.h + /usr/include/sys/types.h + /usr/include/time.h + /usr/include/wchar.h + /usr/include/wctype.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward/binders.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/alloc_traits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/allocator.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_ios.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_ios.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_string.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_string.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/char_traits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/charconv.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/chrono.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/codecvt.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cxxabi_forced.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cxxabi_init_exception.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_defines.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_ptr.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/fstream.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functional_hash.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/hash_bytes.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/invoke.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ios_base.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/istream.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_classes.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_classes.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_facets.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_facets.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/localefwd.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/memory_resource.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/memoryfwd.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/nested_exception.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/new_allocator.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ostream.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ostream_insert.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/parse_numbers.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/postypes.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/range_access.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/refwrap.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/requires_hosted.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_bvector.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_construct.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_function.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_uninitialized.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_vector.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/streambuf.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/streambuf_iterator.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/string_view.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stringfwd.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/uses_allocator.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/uses_allocator_args.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/vector.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cassert + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cctype + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cerrno + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/chrono + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/clocale + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstddef + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdint + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdio + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstring + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ctime + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cwchar + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cwctype + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/assertions.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/exception + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/alloc_traits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/atomicity.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/string_conversions.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/fstream + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ios + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/iosfwd + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/iostream + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/istream + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ostream + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/pstl/pstl_config.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ratio + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdexcept + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/streambuf + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/string + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/string_view + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/system_error + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tuple + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/typeinfo + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/vector + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/atomic_word.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/basic_file.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++allocator.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++io.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++locale.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/cpu_defines.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/ctype_base.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/ctype_inline.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/error_constants.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/gthr-default.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/gthr.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/os_defines.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h + diff --git a/CMakeFiles/app.dir/compiler_depend.make b/CMakeFiles/app.dir/compiler_depend.make new file mode 100644 index 0000000..8dab124 --- /dev/null +++ b/CMakeFiles/app.dir/compiler_depend.make @@ -0,0 +1,955 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.0 + +CMakeFiles/app.dir/main.cu.o: main.cu \ + /opt/cuda/targets/x86_64-linux/include/builtin_types.h \ + /opt/cuda/targets/x86_64-linux/include/channel_descriptor.h \ + /opt/cuda/targets/x86_64-linux/include/crt/common_functions.h \ + /opt/cuda/targets/x86_64-linux/include/crt/cudacc_ext.h \ + /opt/cuda/targets/x86_64-linux/include/crt/device_double_functions.h \ + /opt/cuda/targets/x86_64-linux/include/crt/device_double_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/device_functions.h \ + /opt/cuda/targets/x86_64-linux/include/crt/device_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/host_config.h \ + /opt/cuda/targets/x86_64-linux/include/crt/host_defines.h \ + /opt/cuda/targets/x86_64-linux/include/crt/math_functions.h \ + /opt/cuda/targets/x86_64-linux/include/crt/math_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_100_rt.h \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_100_rt.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_70_rt.h \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_70_rt.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_80_rt.h \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_80_rt.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_90_rt.h \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_90_rt.hpp \ + /opt/cuda/targets/x86_64-linux/include/cuda_device_runtime_api.h \ + /opt/cuda/targets/x86_64-linux/include/cuda_runtime.h \ + /opt/cuda/targets/x86_64-linux/include/cuda_runtime_api.h \ + /opt/cuda/targets/x86_64-linux/include/device_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/device_atomic_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/device_launch_parameters.h \ + /opt/cuda/targets/x86_64-linux/include/device_types.h \ + /opt/cuda/targets/x86_64-linux/include/driver_functions.h \ + /opt/cuda/targets/x86_64-linux/include/driver_types.h \ + /opt/cuda/targets/x86_64-linux/include/library_types.h \ + /opt/cuda/targets/x86_64-linux/include/sm_20_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/sm_20_atomic_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_20_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_20_intrinsics.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_30_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_30_intrinsics.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_32_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/sm_32_atomic_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_32_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_32_intrinsics.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_35_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/sm_35_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_60_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/sm_60_atomic_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_61_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_61_intrinsics.hpp \ + /opt/cuda/targets/x86_64-linux/include/surface_indirect_functions.h \ + /opt/cuda/targets/x86_64-linux/include/surface_types.h \ + /opt/cuda/targets/x86_64-linux/include/texture_indirect_functions.h \ + /opt/cuda/targets/x86_64-linux/include/texture_types.h \ + /opt/cuda/targets/x86_64-linux/include/vector_functions.h \ + /opt/cuda/targets/x86_64-linux/include/vector_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/vector_types.h \ + /usr/include/alloca.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/int-ll64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/asm-generic/types.h \ + /usr/include/asm/bitsperlong.h \ + /usr/include/asm/errno.h \ + /usr/include/asm/posix_types.h \ + /usr/include/asm/posix_types_64.h \ + /usr/include/asm/types.h \ + /usr/include/assert.h \ + /usr/include/bits/atomic_wide_counter.h \ + /usr/include/bits/byteswap.h \ + /usr/include/bits/cpu-set.h \ + /usr/include/bits/endian.h \ + /usr/include/bits/endianness.h \ + /usr/include/bits/errno.h \ + /usr/include/bits/floatn-common.h \ + /usr/include/bits/floatn.h \ + /usr/include/bits/flt-eval-method.h \ + /usr/include/bits/fp-fast.h \ + /usr/include/bits/fp-logb.h \ + /usr/include/bits/iscanonical.h \ + /usr/include/bits/libc-header-start.h \ + /usr/include/bits/libm-simd-decl-stubs.h \ + /usr/include/bits/local_lim.h \ + /usr/include/bits/locale.h \ + /usr/include/bits/long-double.h \ + /usr/include/bits/math-vector.h \ + /usr/include/bits/mathcalls-helper-functions.h \ + /usr/include/bits/mathcalls-macros.h \ + /usr/include/bits/mathcalls-narrow.h \ + /usr/include/bits/mathcalls.h \ + /usr/include/bits/posix1_lim.h \ + /usr/include/bits/posix2_lim.h \ + /usr/include/bits/pthread_stack_min-dynamic.h \ + /usr/include/bits/pthreadtypes-arch.h \ + /usr/include/bits/pthreadtypes.h \ + /usr/include/bits/sched.h \ + /usr/include/bits/select.h \ + /usr/include/bits/setjmp.h \ + /usr/include/bits/stdint-intn.h \ + /usr/include/bits/stdint-least.h \ + /usr/include/bits/stdint-uintn.h \ + /usr/include/bits/stdio_lim.h \ + /usr/include/bits/stdlib-float.h \ + /usr/include/bits/struct_mutex.h \ + /usr/include/bits/struct_rwlock.h \ + /usr/include/bits/thread-shared-types.h \ + /usr/include/bits/time.h \ + /usr/include/bits/time64.h \ + /usr/include/bits/timesize.h \ + /usr/include/bits/timex.h \ + /usr/include/bits/types.h \ + /usr/include/bits/types/FILE.h \ + /usr/include/bits/types/__FILE.h \ + /usr/include/bits/types/__fpos64_t.h \ + /usr/include/bits/types/__fpos_t.h \ + /usr/include/bits/types/__locale_t.h \ + /usr/include/bits/types/__mbstate_t.h \ + /usr/include/bits/types/__sigset_t.h \ + /usr/include/bits/types/clock_t.h \ + /usr/include/bits/types/clockid_t.h \ + /usr/include/bits/types/cookie_io_functions_t.h \ + /usr/include/bits/types/error_t.h \ + /usr/include/bits/types/locale_t.h \ + /usr/include/bits/types/mbstate_t.h \ + /usr/include/bits/types/sigset_t.h \ + /usr/include/bits/types/struct_FILE.h \ + /usr/include/bits/types/struct___jmp_buf_tag.h \ + /usr/include/bits/types/struct_itimerspec.h \ + /usr/include/bits/types/struct_sched_param.h \ + /usr/include/bits/types/struct_timespec.h \ + /usr/include/bits/types/struct_timeval.h \ + /usr/include/bits/types/struct_tm.h \ + /usr/include/bits/types/time_t.h \ + /usr/include/bits/types/timer_t.h \ + /usr/include/bits/types/wint_t.h \ + /usr/include/bits/typesizes.h \ + /usr/include/bits/uintn-identity.h \ + /usr/include/bits/uio_lim.h \ + /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h \ + /usr/include/bits/wchar.h \ + /usr/include/bits/wctype-wchar.h \ + /usr/include/bits/wordsize.h \ + /usr/include/bits/xopen_lim.h \ + /usr/include/ctype.h \ + /usr/include/endian.h \ + /usr/include/errno.h \ + /usr/include/features-time64.h \ + /usr/include/features.h \ + /usr/include/gnu/stubs-64.h \ + /usr/include/gnu/stubs.h \ + /usr/include/limits.h \ + /usr/include/linux/errno.h \ + /usr/include/linux/limits.h \ + /usr/include/linux/posix_types.h \ + /usr/include/linux/sched/types.h \ + /usr/include/linux/stddef.h \ + /usr/include/linux/types.h \ + /usr/include/locale.h \ + /usr/include/math.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/stdc-predef.h \ + /usr/include/stdint.h \ + /usr/include/stdio.h \ + /usr/include/stdlib.h \ + /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/sys/cdefs.h \ + /usr/include/sys/select.h \ + /usr/include/sys/single_threaded.h \ + /usr/include/sys/types.h \ + /usr/include/time.h \ + /usr/include/wchar.h \ + /usr/include/wctype.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward/binders.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/alloc_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_ios.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_ios.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_string.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_string.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/char_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/charconv.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/chrono.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/codecvt.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cxxabi_forced.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cxxabi_init_exception.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_ptr.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/fstream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functional_hash.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/hash_bytes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/invoke.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ios_base.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/istream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_classes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_classes.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_facets.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_facets.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/localefwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/memory_resource.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/memoryfwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/nested_exception.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/new_allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ostream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ostream_insert.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/parse_numbers.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/postypes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/range_access.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/refwrap.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/requires_hosted.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_bvector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_construct.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_function.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_uninitialized.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_vector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/streambuf.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/streambuf_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/string_view.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stringfwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/uses_allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/uses_allocator_args.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/vector.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cassert \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cctype \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cerrno \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/chrono \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/clocale \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstddef \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdint \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdio \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstring \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ctime \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cwchar \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cwctype \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/assertions.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/exception \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/alloc_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/atomicity.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/string_conversions.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/fstream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ios \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/iosfwd \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/iostream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/istream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ostream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ratio \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdexcept \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/streambuf \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/string \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/string_view \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/system_error \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tuple \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/typeinfo \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/vector \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/atomic_word.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/basic_file.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++io.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++locale.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/cpu_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/ctype_base.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/ctype_inline.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/error_constants.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/gthr-default.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/gthr.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/os_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h + + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/os_defines.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/gthr.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/gthr-default.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/error_constants.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/ctype_inline.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/cpu_defines.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/basic_file.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/vector: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/typeinfo: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tuple: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/system_error: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/string: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/streambuf: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdexcept: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ratio: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/pstl/pstl_config.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/iostream: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/iosfwd: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ios: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/string_conversions.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/atomicity.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/alloc_traits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/exception: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h: + +/usr/include/bits/types/locale_t.h: + +/usr/include/bits/types/__locale_t.h: + +/usr/include/bits/types/__fpos64_t.h: + +/usr/include/bits/types.h: + +/usr/include/bits/time64.h: + +/usr/include/bits/stdlib-float.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/ctype_base.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h: + +/usr/include/bits/stdio_lim.h: + +/usr/include/bits/types/__mbstate_t.h: + +/usr/include/bits/stdint-least.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/uses_allocator.h: + +/usr/include/bits/setjmp.h: + +/opt/cuda/targets/x86_64-linux/include/crt/host_config.h: + +/usr/include/bits/select.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/postypes.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc: + +/usr/include/bits/types/cookie_io_functions_t.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cassert: + +/opt/cuda/targets/x86_64-linux/include/driver_functions.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++io.h: + +/opt/cuda/targets/x86_64-linux/include/crt/sm_90_rt.hpp: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/localefwd.h: + +/usr/include/bits/pthreadtypes-arch.h: + +/usr/include/gnu/stubs.h: + +/usr/include/bits/pthread_stack_min-dynamic.h: + +/usr/include/bits/posix2_lim.h: + +/usr/include/bits/mathcalls.h: + +/usr/include/bits/types/__fpos_t.h: + +/usr/include/bits/types/clock_t.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/refwrap.h: + +/usr/include/asm-generic/int-ll64.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cxxabi_forced.h: + +/opt/cuda/targets/x86_64-linux/include/crt/sm_70_rt.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits: + +/usr/include/bits/types/struct_itimerspec.h: + +/opt/cuda/targets/x86_64-linux/include/surface_indirect_functions.h: + +/usr/include/bits/libm-simd-decl-stubs.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/codecvt.h: + +/usr/include/bits/libc-header-start.h: + +/usr/include/bits/iscanonical.h: + +/opt/cuda/targets/x86_64-linux/include/sm_60_atomic_functions.hpp: + +/usr/include/bits/fp-logb.h: + +/opt/cuda/targets/x86_64-linux/include/device_atomic_functions.hpp: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_construct.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/invoke.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h: + +/usr/include/bits/flt-eval-method.h: + +/opt/cuda/targets/x86_64-linux/include/surface_types.h: + +/usr/include/bits/types/struct_FILE.h: + +/usr/include/asm/types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_classes.h: + +/usr/include/asm/posix_types_64.h: + +/usr/include/bits/time.h: + +/usr/include/asm/posix_types.h: + +/opt/cuda/targets/x86_64-linux/include/channel_descriptor.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstddef: + +/usr/include/bits/timesize.h: + +/usr/include/bits/stdint-uintn.h: + +/usr/include/asm/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/bits/types/__sigset_t.h: + +/usr/include/stdc-predef.h: + +/usr/include/bits/types/sigset_t.h: + +/opt/cuda/targets/x86_64-linux/include/cuda_device_runtime_api.h: + +/opt/cuda/targets/x86_64-linux/include/crt/device_functions.h: + +/usr/include/bits/mathcalls-macros.h: + +/opt/cuda/targets/x86_64-linux/include/sm_32_atomic_functions.hpp: + +/usr/include/asm-generic/posix_types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h: + +/opt/cuda/targets/x86_64-linux/include/crt/sm_90_rt.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/fstream: + +/usr/include/linux/sched/types.h: + +/usr/include/bits/endianness.h: + +/usr/include/bits/types/__FILE.h: + +/usr/include/bits/sched.h: + +/usr/include/features.h: + +/usr/include/bits/floatn.h: + +/usr/include/bits/mathcalls-narrow.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cwctype: + +/usr/include/bits/local_lim.h: + +/opt/cuda/targets/x86_64-linux/include/builtin_types.h: + +main.cu: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/nested_exception.h: + +/opt/cuda/targets/x86_64-linux/include/cuda_runtime.h: + +/opt/cuda/targets/x86_64-linux/include/sm_30_intrinsics.hpp: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h: + +/opt/cuda/targets/x86_64-linux/include/crt/device_functions.hpp: + +/usr/include/bits/timex.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib: + +/opt/cuda/targets/x86_64-linux/include/crt/sm_100_rt.hpp: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_ios.h: + +/opt/cuda/targets/x86_64-linux/include/texture_types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/charconv.h: + +/usr/include/bits/endian.h: + +/opt/cuda/targets/x86_64-linux/include/device_launch_parameters.h: + +/opt/cuda/targets/x86_64-linux/include/cuda_runtime_api.h: + +/usr/include/bits/types/clockid_t.h: + +/usr/include/bits/stdint-intn.h: + +/usr/include/bits/types/mbstate_t.h: + +/opt/cuda/targets/x86_64-linux/include/sm_20_atomic_functions.hpp: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc: + +/usr/include/sys/cdefs.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h: + +/opt/cuda/targets/x86_64-linux/include/crt/common_functions.h: + +/opt/cuda/targets/x86_64-linux/include/vector_functions.h: + +/usr/include/pthread.h: + +/opt/cuda/targets/x86_64-linux/include/crt/sm_80_rt.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_function.h: + +/usr/include/bits/cpu-set.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h: + +/usr/include/bits/long-double.h: + +/opt/cuda/targets/x86_64-linux/include/vector_functions.hpp: + +/opt/cuda/targets/x86_64-linux/include/crt/math_functions.h: + +/usr/include/bits/pthreadtypes.h: + +/opt/cuda/targets/x86_64-linux/include/vector_types.h: + +/usr/include/asm/bitsperlong.h: + +/opt/cuda/targets/x86_64-linux/include/device_types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h: + +/opt/cuda/targets/x86_64-linux/include/crt/host_defines.h: + +/usr/include/bits/types/error_t.h: + +/opt/cuda/targets/x86_64-linux/include/driver_types.h: + +/usr/include/bits/fp-fast.h: + +/usr/include/wctype.h: + +/usr/include/sched.h: + +/usr/include/bits/struct_mutex.h: + +/opt/cuda/targets/x86_64-linux/include/sm_32_intrinsics.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc: + +/usr/include/asm-generic/errno.h: + +/opt/cuda/targets/x86_64-linux/include/sm_20_atomic_functions.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstring: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_facets.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++locale.h: + +/opt/cuda/targets/x86_64-linux/include/library_types.h: + +/opt/cuda/targets/x86_64-linux/include/sm_32_atomic_functions.h: + +/opt/cuda/targets/x86_64-linux/include/sm_20_intrinsics.hpp: + +/opt/cuda/targets/x86_64-linux/include/sm_32_intrinsics.hpp: + +/usr/include/sys/single_threaded.h: + +/usr/include/alloca.h: + +/opt/cuda/targets/x86_64-linux/include/crt/math_functions.hpp: + +/usr/include/bits/floatn-common.h: + +/opt/cuda/targets/x86_64-linux/include/sm_61_intrinsics.h: + +/usr/include/asm-generic/types.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/bits/types/struct___jmp_buf_tag.h: + +/usr/include/bits/waitstatus.h: + +/usr/include/bits/wchar.h: + +/opt/cuda/targets/x86_64-linux/include/sm_35_atomic_functions.h: + +/usr/include/bits/byteswap.h: + +/opt/cuda/targets/x86_64-linux/include/sm_35_intrinsics.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc: + +/opt/cuda/targets/x86_64-linux/include/crt/device_double_functions.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdio: + +/usr/include/assert.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cwchar: + +/usr/include/linux/stddef.h: + +/opt/cuda/targets/x86_64-linux/include/crt/device_double_functions.hpp: + +/usr/include/time.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h: + +/opt/cuda/targets/x86_64-linux/include/texture_indirect_functions.h: + +/usr/include/bits/types/FILE.h: + +/usr/include/linux/posix_types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/istream.tcc: + +/usr/include/bits/locale.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/char_traits.h: + +/usr/include/bits/types/timer_t.h: + +/opt/cuda/targets/x86_64-linux/include/sm_30_intrinsics.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cxxabi_init_exception.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h: + +/usr/include/bits/types/struct_sched_param.h: + +/opt/cuda/targets/x86_64-linux/include/device_atomic_functions.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h: + +/usr/include/bits/types/struct_timespec.h: + +/usr/include/bits/types/struct_tm.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cctype: + +/usr/include/bits/types/time_t.h: + +/usr/include/bits/types/wint_t.h: + +/usr/include/bits/typesizes.h: + +/usr/include/bits/uintn-identity.h: + +/usr/include/bits/math-vector.h: + +/usr/include/bits/uio_lim.h: + +/usr/include/bits/waitflags.h: + +/usr/include/ctype.h: + +/usr/include/bits/wctype-wchar.h: + +/usr/include/sys/types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/atomic_word.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_classes.tcc: + +/opt/cuda/targets/x86_64-linux/include/sm_20_intrinsics.h: + +/usr/include/errno.h: + +/usr/include/features-time64.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/istream: + +/usr/include/gnu/stubs-64.h: + +/usr/include/limits.h: + +/usr/include/linux/errno.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/memoryfwd.h: + +/usr/include/linux/limits.h: + +/usr/include/endian.h: + +/usr/include/stdint.h: + +/usr/include/linux/types.h: + +/usr/include/locale.h: + +/opt/cuda/targets/x86_64-linux/include/crt/sm_70_rt.hpp: + +/usr/include/math.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_facets.h: + +/opt/cuda/targets/x86_64-linux/include/sm_61_intrinsics.hpp: + +/usr/include/bits/wordsize.h: + +/usr/include/stdio.h: + +/usr/include/stdlib.h: + +/opt/cuda/targets/x86_64-linux/include/crt/sm_80_rt.hpp: + +/usr/include/bits/xopen_lim.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h: + +/usr/include/strings.h: + +/usr/include/sys/select.h: + +/usr/include/bits/posix1_lim.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward/binders.h: + +/usr/include/bits/struct_rwlock.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/alloc_traits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ostream: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_ios.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_string.h: + +/usr/include/bits/thread-shared-types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_string.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/chrono.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_defines.h: + +/usr/include/bits/errno.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ostream_insert.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_ptr.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/fstream.tcc: + +/opt/cuda/targets/x86_64-linux/include/sm_60_atomic_functions.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functional_hash.h: + +/usr/include/bits/mathcalls-helper-functions.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/hash_bytes.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ios_base.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cerrno: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/memory_resource.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/new_allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h: + +/opt/cuda/targets/x86_64-linux/include/crt/sm_100_rt.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stringfwd.h: + +/usr/include/bits/atomic_wide_counter.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ostream.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/parse_numbers.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/range_access.h: + +/usr/include/string.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/requires_hosted.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_bvector.h: + +/opt/cuda/targets/x86_64-linux/include/crt/cudacc_ext.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_uninitialized.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/string_view.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_vector.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/streambuf.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/streambuf_iterator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/string_view: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/uses_allocator_args.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/vector.tcc: + +/usr/include/bits/types/struct_timeval.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/chrono: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/clocale: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdint: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ctime: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/assertions.h: diff --git a/CMakeFiles/app.dir/compiler_depend.ts b/CMakeFiles/app.dir/compiler_depend.ts new file mode 100644 index 0000000..7b7cc44 --- /dev/null +++ b/CMakeFiles/app.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for app. diff --git a/CMakeFiles/app.dir/depend.make b/CMakeFiles/app.dir/depend.make new file mode 100644 index 0000000..654f84e --- /dev/null +++ b/CMakeFiles/app.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for app. +# This may be replaced when dependencies are built. diff --git a/CMakeFiles/app.dir/deviceLinkLibs.rsp b/CMakeFiles/app.dir/deviceLinkLibs.rsp new file mode 100644 index 0000000..b68e83c --- /dev/null +++ b/CMakeFiles/app.dir/deviceLinkLibs.rsp @@ -0,0 +1 @@ + -ldl /usr/lib/librt.a -lcudadevrt -lcudart_static -lrt -lpthread diff --git a/CMakeFiles/app.dir/deviceObjects1.rsp b/CMakeFiles/app.dir/deviceObjects1.rsp new file mode 100644 index 0000000..4a5e780 --- /dev/null +++ b/CMakeFiles/app.dir/deviceObjects1.rsp @@ -0,0 +1 @@ +CMakeFiles/app.dir/main.cu.o diff --git a/CMakeFiles/app.dir/dlink.txt b/CMakeFiles/app.dir/dlink.txt new file mode 100644 index 0000000..bec532b --- /dev/null +++ b/CMakeFiles/app.dir/dlink.txt @@ -0,0 +1 @@ +/opt/cuda/bin/nvcc -forward-unknown-to-host-compiler "--generate-code=arch=compute_60,code=[compute_60,sm_60]" -Xcompiler=-fPIC -Wno-deprecated-gpu-targets -shared -dlink --options-file CMakeFiles/app.dir/deviceObjects1.rsp -o CMakeFiles/app.dir/cmake_device_link.o --options-file CMakeFiles/app.dir/deviceLinkLibs.rsp diff --git a/CMakeFiles/app.dir/flags.make b/CMakeFiles/app.dir/flags.make new file mode 100644 index 0000000..c7b1066 --- /dev/null +++ b/CMakeFiles/app.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.0 + +# compile CUDA with /opt/cuda/bin/nvcc +CUDA_DEFINES = + +CUDA_INCLUDES = --options-file CMakeFiles/app.dir/includes_CUDA.rsp + +CUDA_FLAGS = -std=c++17 "--generate-code=arch=compute_60,code=[compute_60,sm_60]" + diff --git a/CMakeFiles/app.dir/includes_CUDA.rsp b/CMakeFiles/app.dir/includes_CUDA.rsp new file mode 100644 index 0000000..e74f5c3 --- /dev/null +++ b/CMakeFiles/app.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-isystem "/opt/cuda/targets/x86_64-linux/include" diff --git a/CMakeFiles/app.dir/link.d b/CMakeFiles/app.dir/link.d new file mode 100644 index 0000000..cb6641c --- /dev/null +++ b/CMakeFiles/app.dir/link.d @@ -0,0 +1,139 @@ +app: \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o \ + CMakeFiles/app.dir/main.cu.o \ + CMakeFiles/app.dir/cmake_device_link.o \ + /opt/cuda/targets/x86_64-linux/lib/libcudart.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libdl.a \ + /usr/lib/librt.a \ + /opt/cuda/targets/x86_64-linux/lib/libcudadevrt.a \ + /opt/cuda/targets/x86_64-linux/lib/libcudart_static.a \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/librt.a \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libpthread.a \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libdl.a \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libstdc++.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so \ + /usr/lib/libm.so.6 \ + /usr/lib/libmvec.so.1 \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so.1 \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc.a \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc.a \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so \ + /usr/lib/libc.so.6 \ + /usr/lib/libc_nonshared.a \ + /usr/lib/ld-linux-x86-64.so.2 \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so.1 \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc.a \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc.a \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o \ + /usr/lib/ld-linux-x86-64.so.2 \ + /usr/lib32/libdl.so.2 \ + /usr/lib/libdl.so.2 \ + /usr/lib32/libpthread.so.0 \ + /usr/lib/libpthread.so.0 \ + /usr/lib32/librt.so.1 \ + /usr/lib/librt.so.1 + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o: + +CMakeFiles/app.dir/main.cu.o: + +CMakeFiles/app.dir/cmake_device_link.o: + +/opt/cuda/targets/x86_64-linux/lib/libcudart.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libdl.a: + +/usr/lib/librt.a: + +/opt/cuda/targets/x86_64-linux/lib/libcudadevrt.a: + +/opt/cuda/targets/x86_64-linux/lib/libcudart_static.a: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/librt.a: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libpthread.a: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libdl.a: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libstdc++.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so: + +/usr/lib/libm.so.6: + +/usr/lib/libmvec.so.1: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so.1: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc.a: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc.a: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so: + +/usr/lib/libc.so.6: + +/usr/lib/libc_nonshared.a: + +/usr/lib/ld-linux-x86-64.so.2: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc_s.so.1: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc.a: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/libgcc.a: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o: + +/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o: + +/usr/lib/ld-linux-x86-64.so.2: + +/usr/lib32/libdl.so.2: + +/usr/lib/libdl.so.2: + +/usr/lib32/libpthread.so.0: + +/usr/lib/libpthread.so.0: + +/usr/lib32/librt.so.1: + +/usr/lib/librt.so.1: diff --git a/CMakeFiles/app.dir/link.txt b/CMakeFiles/app.dir/link.txt new file mode 100644 index 0000000..ddd3807 --- /dev/null +++ b/CMakeFiles/app.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/g++-14 @CMakeFiles/app.dir/objects1.rsp CMakeFiles/app.dir/cmake_device_link.o -o app @CMakeFiles/app.dir/linkLibs.rsp -L"/opt/cuda/targets/x86_64-linux/lib/stubs" -L"/opt/cuda/targets/x86_64-linux/lib" diff --git a/CMakeFiles/app.dir/linkLibs.rsp b/CMakeFiles/app.dir/linkLibs.rsp new file mode 100644 index 0000000..2445529 --- /dev/null +++ b/CMakeFiles/app.dir/linkLibs.rsp @@ -0,0 +1 @@ + "/opt/cuda/targets/x86_64-linux/lib/libcudart.so" -ldl /usr/lib/librt.a -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/CMakeFiles/app.dir/main.cu.o b/CMakeFiles/app.dir/main.cu.o new file mode 100644 index 0000000..0e6c946 Binary files /dev/null and b/CMakeFiles/app.dir/main.cu.o differ diff --git a/CMakeFiles/app.dir/main.cu.o.d b/CMakeFiles/app.dir/main.cu.o.d new file mode 100644 index 0000000..52533ac --- /dev/null +++ b/CMakeFiles/app.dir/main.cu.o.d @@ -0,0 +1,317 @@ +CMakeFiles/app.dir/main.cu.o : /home/tobli/abo/pprog/Homework-3/main.cu \ + /usr/include/stdc-predef.h \ + /opt/cuda/targets/x86_64-linux/include/cuda_runtime.h \ + /opt/cuda/targets/x86_64-linux/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/features-time64.h \ + /usr/include/bits/wordsize.h \ + /usr/include/bits/timesize.h \ + /usr/include/sys/cdefs.h \ + /usr/include/bits/long-double.h \ + /usr/include/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h \ + /opt/cuda/targets/x86_64-linux/include/builtin_types.h \ + /opt/cuda/targets/x86_64-linux/include/device_types.h \ + /opt/cuda/targets/x86_64-linux/include/crt/host_defines.h \ + /usr/include/ctype.h \ + /usr/include/bits/types.h \ + /usr/include/bits/typesizes.h \ + /usr/include/bits/time64.h \ + /usr/include/bits/endian.h \ + /usr/include/bits/endianness.h \ + /usr/include/bits/types/locale_t.h \ + /usr/include/bits/types/__locale_t.h \ + /opt/cuda/targets/x86_64-linux/include/driver_types.h \ + /opt/cuda/targets/x86_64-linux/include/vector_types.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/bits/libc-header-start.h \ + /usr/include/bits/posix1_lim.h \ + /usr/include/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/bits/pthread_stack_min-dynamic.h \ + /usr/include/bits/posix2_lim.h \ + /usr/include/bits/xopen_lim.h \ + /usr/include/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \ + /opt/cuda/targets/x86_64-linux/include/surface_types.h \ + /opt/cuda/targets/x86_64-linux/include/texture_types.h \ + /opt/cuda/targets/x86_64-linux/include/library_types.h \ + /opt/cuda/targets/x86_64-linux/include/channel_descriptor.h \ + /opt/cuda/targets/x86_64-linux/include/cuda_runtime_api.h \ + /opt/cuda/targets/x86_64-linux/include/cuda_device_runtime_api.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/os_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/cpu_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/pstl/pstl_config.h \ + /usr/include/stdlib.h \ + /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h \ + /usr/include/bits/floatn.h \ + /usr/include/bits/floatn-common.h \ + /usr/include/sys/types.h \ + /usr/include/bits/types/clock_t.h \ + /usr/include/bits/types/clockid_t.h \ + /usr/include/bits/types/time_t.h \ + /usr/include/bits/types/timer_t.h \ + /usr/include/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/bits/byteswap.h \ + /usr/include/bits/uintn-identity.h \ + /usr/include/sys/select.h \ + /usr/include/bits/select.h \ + /usr/include/bits/types/sigset_t.h \ + /usr/include/bits/types/__sigset_t.h \ + /usr/include/bits/types/struct_timeval.h \ + /usr/include/bits/types/struct_timespec.h \ + /usr/include/bits/pthreadtypes.h \ + /usr/include/bits/thread-shared-types.h \ + /usr/include/bits/pthreadtypes-arch.h \ + /usr/include/bits/atomic_wide_counter.h \ + /usr/include/bits/struct_mutex.h \ + /usr/include/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/bits/stdlib-float.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h \ + /opt/cuda/targets/x86_64-linux/include/driver_functions.h \ + /opt/cuda/targets/x86_64-linux/include/vector_functions.h \ + /opt/cuda/targets/x86_64-linux/include/vector_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/time.h \ + /usr/include/bits/time.h \ + /usr/include/bits/timex.h \ + /usr/include/bits/types/struct_tm.h \ + /usr/include/bits/types/struct_itimerspec.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h \ + /usr/include/bits/types/__fpos_t.h \ + /usr/include/bits/types/__mbstate_t.h \ + /usr/include/bits/types/__fpos64_t.h \ + /usr/include/bits/types/__FILE.h \ + /usr/include/bits/types/FILE.h \ + /usr/include/bits/types/struct_FILE.h \ + /usr/include/bits/types/cookie_io_functions_t.h \ + /usr/include/bits/stdio_lim.h \ + /usr/include/assert.h \ + /opt/cuda/targets/x86_64-linux/include/crt/math_functions.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/requires_hosted.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/bits/math-vector.h \ + /usr/include/bits/libm-simd-decl-stubs.h \ + /usr/include/bits/flt-eval-method.h \ + /usr/include/bits/fp-logb.h \ + /usr/include/bits/fp-fast.h \ + /usr/include/bits/mathcalls-macros.h \ + /usr/include/bits/mathcalls-helper-functions.h \ + /usr/include/bits/mathcalls.h \ + /usr/include/bits/mathcalls-narrow.h \ + /usr/include/bits/iscanonical.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/assertions.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc \ + /opt/cuda/targets/x86_64-linux/include/crt/math_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/device_functions.h \ + /opt/cuda/targets/x86_64-linux/include/crt/device_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/device_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/device_atomic_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/device_double_functions.h \ + /opt/cuda/targets/x86_64-linux/include/crt/device_double_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_20_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/sm_20_atomic_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_32_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/sm_32_atomic_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_35_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/sm_60_atomic_functions.h \ + /opt/cuda/targets/x86_64-linux/include/sm_60_atomic_functions.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_20_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_20_intrinsics.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_30_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_30_intrinsics.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_32_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_32_intrinsics.hpp \ + /opt/cuda/targets/x86_64-linux/include/sm_35_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_61_intrinsics.h \ + /opt/cuda/targets/x86_64-linux/include/sm_61_intrinsics.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_70_rt.h \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_70_rt.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_80_rt.h \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_80_rt.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_90_rt.h \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_90_rt.hpp \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_100_rt.h \ + /opt/cuda/targets/x86_64-linux/include/crt/sm_100_rt.hpp \ + /opt/cuda/targets/x86_64-linux/include/texture_indirect_functions.h \ + /opt/cuda/targets/x86_64-linux/include/surface_indirect_functions.h \ + /opt/cuda/targets/x86_64-linux/include/crt/cudacc_ext.h \ + /opt/cuda/targets/x86_64-linux/include/device_launch_parameters.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/iostream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ostream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ios \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/iosfwd \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stringfwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/memoryfwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/postypes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cwchar \ + /usr/include/wchar.h \ + /usr/include/bits/wchar.h \ + /usr/include/bits/types/wint_t.h \ + /usr/include/bits/types/mbstate_t.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/exception \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_ptr.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cxxabi_init_exception.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/typeinfo \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/hash_bytes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/nested_exception.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/char_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/localefwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++locale.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/clocale \ + /usr/include/locale.h \ + /usr/include/bits/locale.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cctype \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ios_base.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/atomicity.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/gthr.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/bits/sched.h \ + /usr/include/linux/sched/types.h \ + /usr/include/linux/types.h \ + /usr/include/asm/types.h \ + /usr/include/asm-generic/types.h \ + /usr/include/asm-generic/int-ll64.h \ + /usr/include/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/asm/posix_types.h \ + /usr/include/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/bits/types/struct_sched_param.h \ + /usr/include/bits/cpu-set.h \ + /usr/include/bits/setjmp.h \ + /usr/include/bits/types/struct___jmp_buf_tag.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/atomic_word.h \ + /usr/include/sys/single_threaded.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_classes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/string \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/new_allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ostream_insert.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cxxabi_forced.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_function.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward/binders.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/refwrap.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/invoke.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/range_access.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_string.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/alloc_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/alloc_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_construct.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/string_view \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functional_hash.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/string_view.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/string_conversions.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdio \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cerrno \ + /usr/include/errno.h \ + /usr/include/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/bits/types/error_t.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/charconv.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_string.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/memory_resource.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstddef \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/uses_allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/uses_allocator_args.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tuple \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_classes.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/system_error \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/error_constants.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdexcept \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/streambuf \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/streambuf.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_ios.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_facets.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cwctype \ + /usr/include/wctype.h \ + /usr/include/bits/wctype-wchar.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/ctype_base.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/streambuf_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/ctype_inline.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/locale_facets.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/basic_ios.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ostream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/istream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/istream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/fstream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/codecvt.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/basic_file.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++io.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/fstream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/vector \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_uninitialized.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_vector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_bvector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/vector.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cassert \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdint \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/bits/stdint-uintn.h \ + /usr/include/bits/stdint-least.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstring \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/chrono \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/chrono.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ratio \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ctime \ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/parse_numbers.h diff --git a/CMakeFiles/app.dir/objects1.rsp b/CMakeFiles/app.dir/objects1.rsp new file mode 100644 index 0000000..4a5e780 --- /dev/null +++ b/CMakeFiles/app.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/app.dir/main.cu.o diff --git a/CMakeFiles/app.dir/progress.make b/CMakeFiles/app.dir/progress.make new file mode 100644 index 0000000..6a9dc74 --- /dev/null +++ b/CMakeFiles/app.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 + diff --git a/CMakeFiles/cmake.check_cache b/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/CMakeFiles/progress.marks b/CMakeFiles/progress.marks new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/CMakeFiles/progress.marks @@ -0,0 +1 @@ +3 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..229d719 --- /dev/null +++ b/Makefile @@ -0,0 +1,181 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.0 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/tobli/abo/pprog/Homework-3 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/tobli/abo/pprog/Homework-3 + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/tobli/abo/pprog/Homework-3/CMakeFiles /home/tobli/abo/pprog/Homework-3//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/tobli/abo/pprog/Homework-3/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named app + +# Build rule for target. +app: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 app +.PHONY : app + +# fast build rule for target. +app/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/build +.PHONY : app/fast + +main.o: main.cu.o +.PHONY : main.o + +# target to build an object file +main.cu.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/main.cu.o +.PHONY : main.cu.o + +main.i: main.cu.i +.PHONY : main.i + +# target to preprocess a source file +main.cu.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/main.cu.i +.PHONY : main.cu.i + +main.s: main.cu.s +.PHONY : main.s + +# target to generate assembly for a file +main.cu.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/main.cu.s +.PHONY : main.cu.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... app" + @echo "... main.o" + @echo "... main.i" + @echo "... main.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/app b/app new file mode 100755 index 0000000..ef1fae4 Binary files /dev/null and b/app differ diff --git a/build/.cmake/api/v1/query/client-vscode/query.json b/build/.cmake/api/v1/query/client-vscode/query.json new file mode 100644 index 0000000..82bb964 --- /dev/null +++ b/build/.cmake/api/v1/query/client-vscode/query.json @@ -0,0 +1 @@ +{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1},{"kind":"cmakeFiles","version":1}]} \ No newline at end of file diff --git a/build/.cmake/api/v1/reply/cache-v2-b7625ea7196d4b1733bc.json b/build/.cmake/api/v1/reply/cache-v2-b7625ea7196d4b1733bc.json new file mode 100644 index 0000000..215ffe3 --- /dev/null +++ b/build/.cmake/api/v1/reply/cache-v2-b7625ea7196d4b1733bc.json @@ -0,0 +1,2475 @@ +{ + "entries" : + [ + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-ar" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/home/tobli/abo/pprog/Homework-3/build" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "4" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "2" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/ctest" + }, + { + "name" : "CMAKE_CUDA_ARCHITECTURES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "CUDA architectures" + } + ], + "type" : "STRING", + "value" : "52" + }, + { + "name" : "CMAKE_CUDA_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "CUDA compiler" + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/bin/nvcc" + }, + { + "name" : "CMAKE_CUDA_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CUDA compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CUDA_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CUDA compiler during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "-g" + }, + { + "name" : "CMAKE_CUDA_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CUDA compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-O1 -DNDEBUG" + }, + { + "name" : "CMAKE_CUDA_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CUDA compiler during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "-O3 -DNDEBUG" + }, + { + "name" : "CMAKE_CUDA_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CUDA compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/clang++" + }, + { + "name" : "CMAKE_CXX_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-ar" + }, + { + "name" : "CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "`clang-scan-deps` dependency scanner" + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/clang-scan-deps" + }, + { + "name" : "CMAKE_CXX_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "-g" + }, + { + "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "-O3 -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_COMPILER", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/clang" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-dlltool" + }, + { + "name" : "CMAKE_EDIT_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cache edit program executable." + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/ccmake" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_BUILD_DATABASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Enable/Disable output of build database during the build." + } + ], + "type" : "BOOL", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "BOOL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_FIND_PACKAGE_REDIRECTS_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake." + } + ], + "type" : "STATIC", + "value" : "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/pkgRedirects" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HAVE_LIBC_PTHREAD", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Test CMAKE_HAVE_LIBC_PTHREAD" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/home/tobli/abo/pprog/Homework-3" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/ld.lld" + }, + { + "name" : "CMAKE_LIST_FILE_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of CMakeLists files to read" + } + ], + "type" : "INTERNAL", + "value" : "CMakeLists.txt" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Program used to build from build.ninja files." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "app" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/usr/share/cmake" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/usr/bin/llvm-strip" + }, + { + "name" : "CMAKE_TAPI", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "CMAKE_TAPI-NOTFOUND" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "CUDAToolkit_CUPTI_INCLUDE_DIR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a file." + } + ], + "type" : "PATH", + "value" : "/opt/cuda/targets/x86_64-linux/include/../../../extras/CUPTI/include" + }, + { + "name" : "CUDAToolkit_rt_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/usr/lib/librt.a" + }, + { + "name" : "CUDA_CUDART", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/lib/libcudart.so" + }, + { + "name" : "CUDA_OpenCL_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libOpenCL.so" + }, + { + "name" : "CUDA_cuFile_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufile.so" + }, + { + "name" : "CUDA_cuFile_rdma_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufile_rdma.so" + }, + { + "name" : "CUDA_cuFile_rdma_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufile_rdma_static.a" + }, + { + "name" : "CUDA_cuFile_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufile_static.a" + }, + { + "name" : "CUDA_cublasLt_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcublasLt.so" + }, + { + "name" : "CUDA_cublasLt_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcublasLt_static.a" + }, + { + "name" : "CUDA_cublas_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcublas.so" + }, + { + "name" : "CUDA_cublas_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcublas_static.a" + }, + { + "name" : "CUDA_cuda_driver_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/stubs/libcuda.so" + }, + { + "name" : "CUDA_cudart_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcudart.so" + }, + { + "name" : "CUDA_cudart_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcudart_static.a" + }, + { + "name" : "CUDA_cudla_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "CUDA_cudla_LIBRARY-NOTFOUND" + }, + { + "name" : "CUDA_cufft_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufft.so" + }, + { + "name" : "CUDA_cufft_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufft_static.a" + }, + { + "name" : "CUDA_cufft_static_nocallback_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufft_static_nocallback.a" + }, + { + "name" : "CUDA_cufftw_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufftw.so" + }, + { + "name" : "CUDA_cufftw_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcufftw_static.a" + }, + { + "name" : "CUDA_culibos_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libculibos.a" + }, + { + "name" : "CUDA_cupti_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/extras/CUPTI/lib64/libcupti.so" + }, + { + "name" : "CUDA_cupti_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/extras/CUPTI/lib64/libcupti_static.a" + }, + { + "name" : "CUDA_curand_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcurand.so" + }, + { + "name" : "CUDA_curand_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcurand_static.a" + }, + { + "name" : "CUDA_cusolver_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcusolver.so" + }, + { + "name" : "CUDA_cusolver_lapack_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcusolver_lapack_static.a" + }, + { + "name" : "CUDA_cusolver_metis_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcusolver_metis_static.a" + }, + { + "name" : "CUDA_cusolver_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcusolver_static.a" + }, + { + "name" : "CUDA_cusparse_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcusparse.so" + }, + { + "name" : "CUDA_cusparse_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libcusparse_static.a" + }, + { + "name" : "CUDA_nppc_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppc.so" + }, + { + "name" : "CUDA_nppc_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppc_static.a" + }, + { + "name" : "CUDA_nppial_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppial.so" + }, + { + "name" : "CUDA_nppial_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppial_static.a" + }, + { + "name" : "CUDA_nppicc_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppicc.so" + }, + { + "name" : "CUDA_nppicc_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppicc_static.a" + }, + { + "name" : "CUDA_nppicom_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "CUDA_nppicom_LIBRARY-NOTFOUND" + }, + { + "name" : "CUDA_nppicom_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "CUDA_nppicom_static_LIBRARY-NOTFOUND" + }, + { + "name" : "CUDA_nppidei_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppidei.so" + }, + { + "name" : "CUDA_nppidei_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppidei_static.a" + }, + { + "name" : "CUDA_nppif_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppif.so" + }, + { + "name" : "CUDA_nppif_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppif_static.a" + }, + { + "name" : "CUDA_nppig_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppig.so" + }, + { + "name" : "CUDA_nppig_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppig_static.a" + }, + { + "name" : "CUDA_nppim_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppim.so" + }, + { + "name" : "CUDA_nppim_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppim_static.a" + }, + { + "name" : "CUDA_nppist_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppist.so" + }, + { + "name" : "CUDA_nppist_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppist_static.a" + }, + { + "name" : "CUDA_nppisu_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppisu.so" + }, + { + "name" : "CUDA_nppisu_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppisu_static.a" + }, + { + "name" : "CUDA_nppitc_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppitc.so" + }, + { + "name" : "CUDA_nppitc_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnppitc_static.a" + }, + { + "name" : "CUDA_npps_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnpps.so" + }, + { + "name" : "CUDA_npps_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnpps_static.a" + }, + { + "name" : "CUDA_nvJitLink_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvJitLink.so" + }, + { + "name" : "CUDA_nvJitLink_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvJitLink_static.a" + }, + { + "name" : "CUDA_nvToolsExt_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvToolsExt.so" + }, + { + "name" : "CUDA_nvfatbin_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvfatbin.so" + }, + { + "name" : "CUDA_nvfatbin_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvfatbin_static.a" + }, + { + "name" : "CUDA_nvgraph_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "CUDA_nvgraph_LIBRARY-NOTFOUND" + }, + { + "name" : "CUDA_nvgraph_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "CUDA_nvgraph_static_LIBRARY-NOTFOUND" + }, + { + "name" : "CUDA_nvjpeg_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvjpeg.so" + }, + { + "name" : "CUDA_nvjpeg_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvjpeg_static.a" + }, + { + "name" : "CUDA_nvml_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/stubs/libnvidia-ml.so" + }, + { + "name" : "CUDA_nvml_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/stubs/libnvidia-ml.a" + }, + { + "name" : "CUDA_nvperf_host_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/extras/CUPTI/lib64/libnvperf_host.so" + }, + { + "name" : "CUDA_nvperf_host_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/extras/CUPTI/lib64/libnvperf_host_static.a" + }, + { + "name" : "CUDA_nvperf_target_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/extras/CUPTI/lib64/libnvperf_target.so" + }, + { + "name" : "CUDA_nvptxcompiler_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvptxcompiler_static.a" + }, + { + "name" : "CUDA_nvrtc_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvrtc.so" + }, + { + "name" : "CUDA_nvrtc_builtins_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvrtc-builtins.so" + }, + { + "name" : "CUDA_nvrtc_builtins_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvrtc-builtins_static.a" + }, + { + "name" : "CUDA_nvrtc_static_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/targets/x86_64-linux/lib/libnvrtc_static.a" + }, + { + "name" : "CUDA_pcsamplingutil_LIBRARY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/opt/cuda/extras/CUPTI/lib64/libpcsamplingutil.so" + }, + { + "name" : "FIND_PACKAGE_MESSAGE_DETAILS_CUDAToolkit", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Details about finding CUDAToolkit" + } + ], + "type" : "INTERNAL", + "value" : "[/opt/cuda/targets/x86_64-linux/include][/opt/cuda/lib/libcudart.so][/opt/cuda/bin][v12.8.93()]" + }, + { + "name" : "FIND_PACKAGE_MESSAGE_DETAILS_Threads", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Details about finding Threads" + } + ], + "type" : "INTERNAL", + "value" : "[TRUE][v()]" + }, + { + "name" : "app_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/home/tobli/abo/pprog/Homework-3/build" + }, + { + "name" : "app_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "app_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/home/tobli/abo/pprog/Homework-3" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/build/.cmake/api/v1/reply/cmakeFiles-v1-68e0bf6dc779deff2066.json b/build/.cmake/api/v1/reply/cmakeFiles-v1-68e0bf6dc779deff2066.json new file mode 100644 index 0000000..9bb60ab --- /dev/null +++ b/build/.cmake/api/v1/reply/cmakeFiles-v1-68e0bf6dc779deff2066.json @@ -0,0 +1,236 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isGenerated" : true, + "path" : "build/CMakeFiles/4.0.2-dirty/CMakeSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake" + }, + { + "isGenerated" : true, + "path" : "build/CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake" + }, + { + "isGenerated" : true, + "path" : "build/CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeCXXInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Compiler/Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linux-Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linux-GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Linker/GNU-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Linker/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linker/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeCUDAInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Compiler/NVIDIA-CUDA.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Compiler/NVIDIA.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Platform/Linux-NVIDIA-CUDA.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/FindCUDAToolkit.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/FindPackageMessage.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/FindThreads.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CheckLibraryExists.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CheckIncludeFileCXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/CheckCXXSourceCompiles.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/usr/share/cmake/Modules/FindPackageMessage.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/home/tobli/abo/pprog/Homework-3/build", + "source" : "/home/tobli/abo/pprog/Homework-3" + }, + "version" : + { + "major" : 1, + "minor" : 1 + } +} diff --git a/build/.cmake/api/v1/reply/codemodel-v2-fb5930f2db7e4c68716a.json b/build/.cmake/api/v1/reply/codemodel-v2-fb5930f2db7e4c68716a.json new file mode 100644 index 0000000..23bfa54 --- /dev/null +++ b/build/.cmake/api/v1/reply/codemodel-v2-fb5930f2db7e4c68716a.json @@ -0,0 +1,60 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.18" + }, + "projectIndex" : 0, + "source" : ".", + "targetIndexes" : + [ + 0 + ] + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "app", + "targetIndexes" : + [ + 0 + ] + } + ], + "targets" : + [ + { + "directoryIndex" : 0, + "id" : "app::@6890427a1f51a3e7e1df", + "jsonFile" : "target-app-Debug-4072aed3cbe4f32d8d52.json", + "name" : "app", + "projectIndex" : 0 + } + ] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/home/tobli/abo/pprog/Homework-3/build", + "source" : "/home/tobli/abo/pprog/Homework-3" + }, + "version" : + { + "major" : 2, + "minor" : 8 + } +} diff --git a/build/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/build/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/build/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/build/.cmake/api/v1/reply/index-2025-05-27T14-02-45-0782.json b/build/.cmake/api/v1/reply/index-2025-05-27T14-02-45-0782.json new file mode 100644 index 0000000..841cff9 --- /dev/null +++ b/build/.cmake/api/v1/reply/index-2025-05-27T14-02-45-0782.json @@ -0,0 +1,132 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/usr/bin/cmake", + "cpack" : "/usr/bin/cpack", + "ctest" : "/usr/bin/ctest", + "root" : "/usr/share/cmake" + }, + "version" : + { + "isDirty" : true, + "major" : 4, + "minor" : 0, + "patch" : 2, + "string" : "4.0.2-dirty", + "suffix" : "" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-fb5930f2db7e4c68716a.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 8 + } + }, + { + "jsonFile" : "cache-v2-b7625ea7196d4b1733bc.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-68e0bf6dc779deff2066.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 1 + } + }, + { + "jsonFile" : "toolchains-v1-858f352aa1e21a1deb68.json", + "kind" : "toolchains", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-vscode" : + { + "query.json" : + { + "requests" : + [ + { + "kind" : "cache", + "version" : 2 + }, + { + "kind" : "codemodel", + "version" : 2 + }, + { + "kind" : "toolchains", + "version" : 1 + }, + { + "kind" : "cmakeFiles", + "version" : 1 + } + ], + "responses" : + [ + { + "jsonFile" : "cache-v2-b7625ea7196d4b1733bc.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "codemodel-v2-fb5930f2db7e4c68716a.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 8 + } + }, + { + "jsonFile" : "toolchains-v1-858f352aa1e21a1deb68.json", + "kind" : "toolchains", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-68e0bf6dc779deff2066.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 1 + } + } + ] + } + } + } +} diff --git a/build/.cmake/api/v1/reply/target-app-Debug-4072aed3cbe4f32d8d52.json b/build/.cmake/api/v1/reply/target-app-Debug-4072aed3cbe4f32d8d52.json new file mode 100644 index 0000000..8f7e93b --- /dev/null +++ b/build/.cmake/api/v1/reply/target-app-Debug-4072aed3cbe4f32d8d52.json @@ -0,0 +1,169 @@ +{ + "artifacts" : + [ + { + "path" : "app" + } + ], + "backtrace" : 1, + "backtraceGraph" : + { + "commands" : + [ + "add_executable", + "target_link_libraries", + "find_package" + ], + "files" : + [ + "CMakeLists.txt", + "/usr/share/cmake/Modules/FindCUDAToolkit.cmake" + ], + "nodes" : + [ + { + "file" : 0 + }, + { + "command" : 0, + "file" : 0, + "line" : 15, + "parent" : 0 + }, + { + "command" : 1, + "file" : 0, + "line" : 18, + "parent" : 0 + }, + { + "command" : 2, + "file" : 0, + "line" : 9, + "parent" : 0 + }, + { + "file" : 1, + "parent" : 3 + }, + { + "command" : 1, + "file" : 1, + "line" : 1208, + "parent" : 4 + }, + { + "command" : 1, + "file" : 1, + "line" : 1218, + "parent" : 4 + } + ] + }, + "compileGroups" : + [ + { + "compileCommandFragments" : + [ + { + "fragment" : "-g -std=c++17 \"--generate-code=arch=compute_60,code=[compute_60,sm_60]\"" + } + ], + "includes" : + [ + { + "backtrace" : 2, + "isSystem" : true, + "path" : "/opt/cuda/targets/x86_64-linux/include" + } + ], + "language" : "CUDA", + "languageStandard" : + { + "backtraces" : + [ + 1 + ], + "standard" : "17" + }, + "sourceIndexes" : + [ + 0 + ] + } + ], + "id" : "app::@6890427a1f51a3e7e1df", + "link" : + { + "commandFragments" : + [ + { + "fragment" : "-g \"--generate-code=arch=compute_60,code=[compute_60,sm_60]\"", + "role" : "flags" + }, + { + "backtrace" : 2, + "fragment" : "/opt/cuda/targets/x86_64-linux/lib/libcudart.so", + "role" : "libraries" + }, + { + "backtrace" : 5, + "fragment" : "-ldl", + "role" : "libraries" + }, + { + "backtrace" : 6, + "fragment" : "/usr/lib/librt.a", + "role" : "libraries" + }, + { + "fragment" : "-lcudadevrt", + "role" : "libraries" + }, + { + "fragment" : "-lcudart_static", + "role" : "libraries" + }, + { + "fragment" : "-lrt", + "role" : "libraries" + }, + { + "fragment" : "-lpthread", + "role" : "libraries" + }, + { + "fragment" : "-ldl", + "role" : "libraries" + } + ], + "language" : "CUDA" + }, + "name" : "app", + "nameOnDisk" : "app", + "paths" : + { + "build" : ".", + "source" : "." + }, + "sourceGroups" : + [ + { + "name" : "Source Files", + "sourceIndexes" : + [ + 0 + ] + } + ], + "sources" : + [ + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "main.cu", + "sourceGroupIndex" : 0 + } + ], + "type" : "EXECUTABLE" +} diff --git a/build/.cmake/api/v1/reply/toolchains-v1-858f352aa1e21a1deb68.json b/build/.cmake/api/v1/reply/toolchains-v1-858f352aa1e21a1deb68.json new file mode 100644 index 0000000..dc08ac6 --- /dev/null +++ b/build/.cmake/api/v1/reply/toolchains-v1-858f352aa1e21a1deb68.json @@ -0,0 +1,114 @@ +{ + "kind" : "toolchains", + "toolchains" : + [ + { + "compiler" : + { + "id" : "NVIDIA", + "implicit" : + { + "includeDirectories" : + [ + "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++", + "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu", + "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward", + "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include", + "/usr/local/include", + "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed", + "/usr/include" + ], + "linkDirectories" : + [ + "/opt/cuda/targets/x86_64-linux/lib/stubs", + "/opt/cuda/targets/x86_64-linux/lib", + "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1", + "/usr/lib", + "/lib" + ], + "linkFrameworkDirectories" : [], + "linkLibraries" : + [ + "stdc++", + "m", + "gcc_s", + "gcc", + "c", + "gcc_s", + "gcc" + ] + }, + "path" : "/opt/cuda/bin/nvcc", + "version" : "12.8.93" + }, + "language" : "CUDA", + "sourceFileExtensions" : + [ + "cu" + ] + }, + { + "compiler" : + { + "id" : "Clang", + "implicit" : + { + "includeDirectories" : + [ + "/usr/include/c++/15.1.1", + "/usr/include/c++/15.1.1/x86_64-pc-linux-gnu", + "/usr/include/c++/15.1.1/backward", + "/usr/lib/clang/19/include", + "/usr/local/include", + "/usr/include" + ], + "linkDirectories" : + [ + "/usr/lib64/gcc/x86_64-pc-linux-gnu/15.1.1", + "/usr/lib64", + "/lib64", + "/lib", + "/usr/lib" + ], + "linkFrameworkDirectories" : [], + "linkLibraries" : + [ + "stdc++", + "m", + "gcc_s", + "gcc", + "c", + "gcc_s", + "gcc" + ] + }, + "path" : "/usr/bin/clang++", + "version" : "19.1.7" + }, + "language" : "CXX", + "sourceFileExtensions" : + [ + "C", + "M", + "c++", + "cc", + "cpp", + "cxx", + "m", + "mm", + "mpp", + "CPP", + "ixx", + "cppm", + "ccm", + "cxxm", + "c++m" + ] + } + ], + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt new file mode 100644 index 0000000..331e695 --- /dev/null +++ b/build/CMakeCache.txt @@ -0,0 +1,761 @@ +# This is the CMakeCache file. +# For build in directory: /home/tobli/abo/pprog/Homework-3/build +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/llvm-addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/llvm-ar + +//No help, variable specified on the command line. +CMAKE_BUILD_TYPE:STRING=Debug + +//CUDA architectures +CMAKE_CUDA_ARCHITECTURES:STRING=52 + +//CUDA compiler +CMAKE_CUDA_COMPILER:FILEPATH=/opt/cuda/bin/nvcc + +//Flags used by the CUDA compiler during all build types. +CMAKE_CUDA_FLAGS:STRING= + +//Flags used by the CUDA compiler during DEBUG builds. +CMAKE_CUDA_FLAGS_DEBUG:STRING=-g + +//Flags used by the CUDA compiler during MINSIZEREL builds. +CMAKE_CUDA_FLAGS_MINSIZEREL:STRING=-O1 -DNDEBUG + +//Flags used by the CUDA compiler during RELEASE builds. +CMAKE_CUDA_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CUDA compiler during RELWITHDEBINFO builds. +CMAKE_CUDA_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//No help, variable specified on the command line. +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++ + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/llvm-ar + +//`clang-scan-deps` dependency scanner +CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS:FILEPATH=/usr/bin/clang-scan-deps + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/llvm-ranlib + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//No help, variable specified on the command line. +CMAKE_C_COMPILER:FILEPATH=/usr/bin/clang + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=/usr/bin/llvm-dlltool + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of build database during the build. +CMAKE_EXPORT_BUILD_DATABASE:BOOL= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/pkgRedirects + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld.lld + +//Program used to build from build.ninja files. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/ninja + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=app + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/llvm-readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/llvm-strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a file. +CUDAToolkit_CUPTI_INCLUDE_DIR:PATH=/opt/cuda/targets/x86_64-linux/include/../../../extras/CUPTI/include + +//Path to a library. +CUDAToolkit_rt_LIBRARY:FILEPATH=/usr/lib/librt.a + +//Path to a library. +CUDA_CUDART:FILEPATH=/opt/cuda/lib/libcudart.so + +//Path to a library. +CUDA_OpenCL_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libOpenCL.so + +//Path to a library. +CUDA_cuFile_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufile.so + +//Path to a library. +CUDA_cuFile_rdma_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufile_rdma.so + +//Path to a library. +CUDA_cuFile_rdma_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufile_rdma_static.a + +//Path to a library. +CUDA_cuFile_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufile_static.a + +//Path to a library. +CUDA_cublasLt_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcublasLt.so + +//Path to a library. +CUDA_cublasLt_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcublasLt_static.a + +//Path to a library. +CUDA_cublas_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcublas.so + +//Path to a library. +CUDA_cublas_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcublas_static.a + +//Path to a library. +CUDA_cuda_driver_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/stubs/libcuda.so + +//Path to a library. +CUDA_cudart_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcudart.so + +//Path to a library. +CUDA_cudart_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcudart_static.a + +//Path to a library. +CUDA_cudla_LIBRARY:FILEPATH=CUDA_cudla_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_cufft_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufft.so + +//Path to a library. +CUDA_cufft_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufft_static.a + +//Path to a library. +CUDA_cufft_static_nocallback_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufft_static_nocallback.a + +//Path to a library. +CUDA_cufftw_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufftw.so + +//Path to a library. +CUDA_cufftw_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcufftw_static.a + +//Path to a library. +CUDA_culibos_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libculibos.a + +//Path to a library. +CUDA_cupti_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libcupti.so + +//Path to a library. +CUDA_cupti_static_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libcupti_static.a + +//Path to a library. +CUDA_curand_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcurand.so + +//Path to a library. +CUDA_curand_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcurand_static.a + +//Path to a library. +CUDA_cusolver_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusolver.so + +//Path to a library. +CUDA_cusolver_lapack_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusolver_lapack_static.a + +//Path to a library. +CUDA_cusolver_metis_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusolver_metis_static.a + +//Path to a library. +CUDA_cusolver_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusolver_static.a + +//Path to a library. +CUDA_cusparse_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusparse.so + +//Path to a library. +CUDA_cusparse_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libcusparse_static.a + +//Path to a library. +CUDA_nppc_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppc.so + +//Path to a library. +CUDA_nppc_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppc_static.a + +//Path to a library. +CUDA_nppial_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppial.so + +//Path to a library. +CUDA_nppial_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppial_static.a + +//Path to a library. +CUDA_nppicc_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppicc.so + +//Path to a library. +CUDA_nppicc_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppicc_static.a + +//Path to a library. +CUDA_nppicom_LIBRARY:FILEPATH=CUDA_nppicom_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_nppicom_static_LIBRARY:FILEPATH=CUDA_nppicom_static_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_nppidei_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppidei.so + +//Path to a library. +CUDA_nppidei_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppidei_static.a + +//Path to a library. +CUDA_nppif_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppif.so + +//Path to a library. +CUDA_nppif_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppif_static.a + +//Path to a library. +CUDA_nppig_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppig.so + +//Path to a library. +CUDA_nppig_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppig_static.a + +//Path to a library. +CUDA_nppim_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppim.so + +//Path to a library. +CUDA_nppim_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppim_static.a + +//Path to a library. +CUDA_nppist_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppist.so + +//Path to a library. +CUDA_nppist_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppist_static.a + +//Path to a library. +CUDA_nppisu_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppisu.so + +//Path to a library. +CUDA_nppisu_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppisu_static.a + +//Path to a library. +CUDA_nppitc_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppitc.so + +//Path to a library. +CUDA_nppitc_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnppitc_static.a + +//Path to a library. +CUDA_npps_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnpps.so + +//Path to a library. +CUDA_npps_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnpps_static.a + +//Path to a library. +CUDA_nvJitLink_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvJitLink.so + +//Path to a library. +CUDA_nvJitLink_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvJitLink_static.a + +//Path to a library. +CUDA_nvToolsExt_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvToolsExt.so + +//Path to a library. +CUDA_nvfatbin_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvfatbin.so + +//Path to a library. +CUDA_nvfatbin_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvfatbin_static.a + +//Path to a library. +CUDA_nvgraph_LIBRARY:FILEPATH=CUDA_nvgraph_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_nvgraph_static_LIBRARY:FILEPATH=CUDA_nvgraph_static_LIBRARY-NOTFOUND + +//Path to a library. +CUDA_nvjpeg_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvjpeg.so + +//Path to a library. +CUDA_nvjpeg_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvjpeg_static.a + +//Path to a library. +CUDA_nvml_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/stubs/libnvidia-ml.so + +//Path to a library. +CUDA_nvml_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/stubs/libnvidia-ml.a + +//Path to a library. +CUDA_nvperf_host_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libnvperf_host.so + +//Path to a library. +CUDA_nvperf_host_static_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libnvperf_host_static.a + +//Path to a library. +CUDA_nvperf_target_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libnvperf_target.so + +//Path to a library. +CUDA_nvptxcompiler_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvptxcompiler_static.a + +//Path to a library. +CUDA_nvrtc_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvrtc.so + +//Path to a library. +CUDA_nvrtc_builtins_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvrtc-builtins.so + +//Path to a library. +CUDA_nvrtc_builtins_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvrtc-builtins_static.a + +//Path to a library. +CUDA_nvrtc_static_LIBRARY:FILEPATH=/opt/cuda/targets/x86_64-linux/lib/libnvrtc_static.a + +//Path to a library. +CUDA_pcsamplingutil_LIBRARY:FILEPATH=/opt/cuda/extras/CUPTI/lib64/libpcsamplingutil.so + +//Value Computed by CMake +app_BINARY_DIR:STATIC=/home/tobli/abo/pprog/Homework-3/build + +//Value Computed by CMake +app_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +app_SOURCE_DIR:STATIC=/home/tobli/abo/pprog/Homework-3 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/tobli/abo/pprog/Homework-3/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=0 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CUDA_COMPILER +CMAKE_CUDA_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS +CMAKE_CUDA_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_DEBUG +CMAKE_CUDA_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_MINSIZEREL +CMAKE_CUDA_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_RELEASE +CMAKE_CUDA_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_RELWITHDEBINFO +CMAKE_CUDA_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS +CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_BUILD_DATABASE +CMAKE_EXPORT_BUILD_DATABASE-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Test CMAKE_HAVE_LIBC_PTHREAD +CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1 +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/tobli/abo/pprog/Homework-3 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//Name of CMakeLists files to read +CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDAToolkit_CUPTI_INCLUDE_DIR +CUDAToolkit_CUPTI_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDAToolkit_rt_LIBRARY +CUDAToolkit_rt_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_CUDART +CUDA_CUDART-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_OpenCL_LIBRARY +CUDA_OpenCL_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuFile_LIBRARY +CUDA_cuFile_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuFile_rdma_LIBRARY +CUDA_cuFile_rdma_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuFile_rdma_static_LIBRARY +CUDA_cuFile_rdma_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuFile_static_LIBRARY +CUDA_cuFile_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cublasLt_LIBRARY +CUDA_cublasLt_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cublasLt_static_LIBRARY +CUDA_cublasLt_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cublas_LIBRARY +CUDA_cublas_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cublas_static_LIBRARY +CUDA_cublas_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cuda_driver_LIBRARY +CUDA_cuda_driver_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cudart_LIBRARY +CUDA_cudart_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cudart_static_LIBRARY +CUDA_cudart_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cudla_LIBRARY +CUDA_cudla_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufft_LIBRARY +CUDA_cufft_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufft_static_LIBRARY +CUDA_cufft_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufft_static_nocallback_LIBRARY +CUDA_cufft_static_nocallback_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufftw_LIBRARY +CUDA_cufftw_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cufftw_static_LIBRARY +CUDA_cufftw_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_culibos_LIBRARY +CUDA_culibos_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cupti_LIBRARY +CUDA_cupti_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cupti_static_LIBRARY +CUDA_cupti_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_curand_LIBRARY +CUDA_curand_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_curand_static_LIBRARY +CUDA_curand_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusolver_LIBRARY +CUDA_cusolver_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusolver_lapack_static_LIBRARY +CUDA_cusolver_lapack_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusolver_metis_static_LIBRARY +CUDA_cusolver_metis_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusolver_static_LIBRARY +CUDA_cusolver_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusparse_LIBRARY +CUDA_cusparse_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_cusparse_static_LIBRARY +CUDA_cusparse_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppc_LIBRARY +CUDA_nppc_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppc_static_LIBRARY +CUDA_nppc_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppial_LIBRARY +CUDA_nppial_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppial_static_LIBRARY +CUDA_nppial_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppicc_LIBRARY +CUDA_nppicc_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppicc_static_LIBRARY +CUDA_nppicc_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppicom_LIBRARY +CUDA_nppicom_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppicom_static_LIBRARY +CUDA_nppicom_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppidei_LIBRARY +CUDA_nppidei_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppidei_static_LIBRARY +CUDA_nppidei_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppif_LIBRARY +CUDA_nppif_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppif_static_LIBRARY +CUDA_nppif_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppig_LIBRARY +CUDA_nppig_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppig_static_LIBRARY +CUDA_nppig_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppim_LIBRARY +CUDA_nppim_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppim_static_LIBRARY +CUDA_nppim_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppist_LIBRARY +CUDA_nppist_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppist_static_LIBRARY +CUDA_nppist_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppisu_LIBRARY +CUDA_nppisu_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppisu_static_LIBRARY +CUDA_nppisu_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppitc_LIBRARY +CUDA_nppitc_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nppitc_static_LIBRARY +CUDA_nppitc_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_npps_LIBRARY +CUDA_npps_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_npps_static_LIBRARY +CUDA_npps_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvJitLink_LIBRARY +CUDA_nvJitLink_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvJitLink_static_LIBRARY +CUDA_nvJitLink_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvToolsExt_LIBRARY +CUDA_nvToolsExt_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvfatbin_LIBRARY +CUDA_nvfatbin_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvfatbin_static_LIBRARY +CUDA_nvfatbin_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvgraph_LIBRARY +CUDA_nvgraph_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvgraph_static_LIBRARY +CUDA_nvgraph_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvjpeg_LIBRARY +CUDA_nvjpeg_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvjpeg_static_LIBRARY +CUDA_nvjpeg_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvml_LIBRARY +CUDA_nvml_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvml_static_LIBRARY +CUDA_nvml_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvperf_host_LIBRARY +CUDA_nvperf_host_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvperf_host_static_LIBRARY +CUDA_nvperf_host_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvperf_target_LIBRARY +CUDA_nvperf_target_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvptxcompiler_static_LIBRARY +CUDA_nvptxcompiler_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvrtc_LIBRARY +CUDA_nvrtc_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvrtc_builtins_LIBRARY +CUDA_nvrtc_builtins_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvrtc_builtins_static_LIBRARY +CUDA_nvrtc_builtins_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_nvrtc_static_LIBRARY +CUDA_nvrtc_static_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CUDA_pcsamplingutil_LIBRARY +CUDA_pcsamplingutil_LIBRARY-ADVANCED:INTERNAL=1 +//Details about finding CUDAToolkit +FIND_PACKAGE_MESSAGE_DETAILS_CUDAToolkit:INTERNAL=[/opt/cuda/targets/x86_64-linux/include][/opt/cuda/lib/libcudart.so][/opt/cuda/bin][v12.8.93()] +//Details about finding Threads +FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()] + diff --git a/build/CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake b/build/CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake new file mode 100644 index 0000000..a22e708 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake @@ -0,0 +1,89 @@ +set(CMAKE_CUDA_COMPILER "/opt/cuda/bin/nvcc") +set(CMAKE_CUDA_HOST_COMPILER "") +set(CMAKE_CUDA_HOST_LINK_LAUNCHER "/usr/bin/g++-14") +set(CMAKE_CUDA_COMPILER_ID "NVIDIA") +set(CMAKE_CUDA_COMPILER_VERSION "12.8.93") +set(CMAKE_CUDA_HOST_COMPILER_ID "GNU") +set(CMAKE_CUDA_HOST_COMPILER_VERSION "14.2.1") +set(CMAKE_CUDA_DEVICE_LINKER "/opt/cuda/bin/nvlink") +set(CMAKE_CUDA_FATBINARY "/opt/cuda/bin/fatbinary") +set(CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CUDA_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CUDA_STANDARD_LATEST "20") +set(CMAKE_CUDA_COMPILE_FEATURES "cuda_std_03;cuda_std_11;cuda_std_14;cuda_std_17;cuda_std_20") +set(CMAKE_CUDA03_COMPILE_FEATURES "cuda_std_03") +set(CMAKE_CUDA11_COMPILE_FEATURES "cuda_std_11") +set(CMAKE_CUDA14_COMPILE_FEATURES "cuda_std_14") +set(CMAKE_CUDA17_COMPILE_FEATURES "cuda_std_17") +set(CMAKE_CUDA20_COMPILE_FEATURES "cuda_std_20") +set(CMAKE_CUDA23_COMPILE_FEATURES "") +set(CMAKE_CUDA26_COMPILE_FEATURES "") + +set(CMAKE_CUDA_PLATFORM_ID "Linux") +set(CMAKE_CUDA_SIMULATE_ID "GNU") +set(CMAKE_CUDA_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CUDA_SIMULATE_VERSION "14.2") + + + +set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX") +set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX") + +set(CMAKE_CUDA_COMPILER_LOADED 1) +set(CMAKE_CUDA_COMPILER_ID_RUN 1) +set(CMAKE_CUDA_SOURCE_FILE_EXTENSIONS cu) +set(CMAKE_CUDA_LINKER_PREFERENCE 15) +set(CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CUDA_LINKER_DEPFILE_SUPPORTED TRUE) +set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) +set(CMAKE_CUDA_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) + +set(CMAKE_CUDA_SIZEOF_DATA_PTR "8") +set(CMAKE_CUDA_COMPILER_ABI "ELF") +set(CMAKE_CUDA_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CUDA_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CUDA_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CUDA_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CUDA_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CUDA_COMPILER_ABI}") +endif() + +if(CMAKE_CUDA_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "/opt/cuda") +set(CMAKE_CUDA_COMPILER_TOOLKIT_LIBRARY_ROOT "/opt/cuda") +set(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION "12.8.93") +set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "/opt/cuda") + +set(CMAKE_CUDA_ARCHITECTURES_ALL "50-real;52-real;53-real;60-real;61-real;62-real;70-real;72-real;75-real;80-real;86-real;87-real;89-real;90-real;100-real;101-real;120") +set(CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR "50-real;60-real;70-real;80-real;90-real;100-real;120") +set(CMAKE_CUDA_ARCHITECTURES_NATIVE "75-real") + +set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "/opt/cuda/targets/x86_64-linux/include") + +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib") +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + +set(CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed;/usr/include") +set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1;/usr/lib;/lib") +set(CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + +set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC") + +set(CMAKE_LINKER "/usr/bin/ld.lld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CUDA_COMPILER_LINKER "/usr/bin/ld") +set(CMAKE_CUDA_COMPILER_LINKER_ID "GNU") +set(CMAKE_CUDA_COMPILER_LINKER_VERSION 2.44.0) +set(CMAKE_CUDA_COMPILER_LINKER_FRONTEND_VARIANT GNU) +set(CMAKE_AR "/usr/bin/llvm-ar") +set(CMAKE_RANLIB "/usr/bin/llvm-ranlib") +set(CMAKE_MT "") diff --git a/build/CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake b/build/CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..b8362a2 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake @@ -0,0 +1,108 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "19.1.7") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_STANDARD_LATEST "26") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23;cxx_std_26") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") +set(CMAKE_CXX26_COMPILE_FEATURES "cxx_std_26") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_COMPILER_APPLE_SYSROOT "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/llvm-ar") +set(CMAKE_RANLIB "/usr/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/llvm-ranlib") +set(CMAKE_LINKER "/usr/bin/ld.lld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld") +set(CMAKE_CXX_COMPILER_LINKER_ID "GNU") +set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.44.0) +set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang IN ITEMS C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED TRUE) +set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) +set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/15.1.1;/usr/include/c++/15.1.1/x86_64-pc-linux-gnu;/usr/include/c++/15.1.1/backward;/usr/lib/clang/19/include;/usr/local/include;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib64/gcc/x86_64-pc-linux-gnu/15.1.1;/usr/lib64;/lib64;/lib;/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "/usr/lib/clang/19") + +set(CMAKE_CXX_COMPILER_IMPORT_STD "") +### Imported target for C++23 standard library +set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Experimental `import std` support not enabled when detecting toolchain; it must be set before `CXX` is enabled (usually a `project()` call)") + + +### Imported target for C++26 standard library +set(CMAKE_CXX26_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Experimental `import std` support not enabled when detecting toolchain; it must be set before `CXX` is enabled (usually a `project()` call)") + + + diff --git a/build/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CUDA.bin b/build/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CUDA.bin new file mode 100755 index 0000000..0f50657 Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CUDA.bin differ diff --git a/build/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000..6e98784 Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/build/CMakeFiles/4.0.2-dirty/CMakeSystem.cmake b/build/CMakeFiles/4.0.2-dirty/CMakeSystem.cmake new file mode 100644 index 0000000..5145244 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.14.7-arch2-1") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.14.7-arch2-1") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-6.14.7-arch2-1") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "6.14.7-arch2-1") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu new file mode 100644 index 0000000..4aaeb34 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu @@ -0,0 +1,935 @@ +#ifndef __CUDACC__ +# error "A C or C++ compiler has been selected for CUDA" +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__NVCC__) +# define COMPILER_ID "NVIDIA" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# elif defined(__clang__) +# define SIMULATE_ID "Clang" +# elif defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif +# if defined(__CUDACC_VER_MAJOR__) +# define COMPILER_VERSION_MAJOR DEC(__CUDACC_VER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__CUDACC_VER_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__CUDACC_VER_BUILD__) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# elif defined(__clang__) +# define SIMULATE_VERSION_MAJOR DEC(__clang_major__) +# define SIMULATE_VERSION_MINOR DEC(__clang_minor__) +# elif defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Detect host compiler used by NVCC. */ +#ifdef __NVCC__ + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define HOST_COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define HOST_SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define HOST_SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define HOST_COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define HOST_COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define HOST_COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define HOST_COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define HOST_COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define HOST_COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define HOST_COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define HOST_SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define HOST_SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define HOST_SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define HOST_COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define HOST_SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define HOST_SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define HOST_COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define HOST_COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define HOST_COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define HOST_COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define HOST_SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define HOST_SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define HOST_SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define HOST_COMPILER_ID "PathScale" +# define HOST_COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define HOST_COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define HOST_COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define HOST_COMPILER_ID "Embarcadero" +# define HOST_COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define HOST_COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define HOST_COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define HOST_COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define HOST_COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define HOST_COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define HOST_COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define HOST_COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define HOST_COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define HOST_COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define HOST_COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define HOST_COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define HOST_COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define HOST_COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define HOST_COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define HOST_COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define HOST_COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define HOST_COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define HOST_COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define HOST_COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define HOST_COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define HOST_COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define HOST_COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define HOST_COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define HOST_COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define HOST_COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define HOST_COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define HOST_COMPILER_ID "IBMClang" +# define HOST_COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define HOST_COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define HOST_COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define HOST_COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) +# define HOST_COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__ibmxl__) && defined(__clang__) +# define HOST_COMPILER_ID "XLClang" +# define HOST_COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define HOST_COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define HOST_COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define HOST_COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define HOST_COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define HOST_COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define HOST_COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define HOST_COMPILER_ID "NVHPC" +# define HOST_COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define HOST_COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define HOST_COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define HOST_COMPILER_ID "PGI" +# define HOST_COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define HOST_COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define HOST_COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define HOST_COMPILER_ID "CrayClang" +# define HOST_COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define HOST_COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define HOST_COMPILER_ID "Cray" +# define HOST_COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define HOST_COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define HOST_COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define HOST_COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define HOST_COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define HOST_COMPILER_ID "FujitsuClang" +# define HOST_COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define HOST_COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define HOST_COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define HOST_COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define HOST_COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define HOST_COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define HOST_COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define HOST_COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define HOST_COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define HOST_COMPILER_ID "Tasking" + # define HOST_COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define HOST_COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define HOST_COMPILER_ID "OrangeC" +# define HOST_COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define HOST_COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define HOST_COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define HOST_COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define HOST_COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define HOST_COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define HOST_COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define HOST_COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define HOST_COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define HOST_COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define HOST_COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define HOST_COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define HOST_SIMULATE_ID "MSVC" +# endif +# define HOST_COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define HOST_SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define HOST_COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define HOST_COMPILER_ID "ARMClang" + # define HOST_COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define HOST_COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define HOST_COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define HOST_COMPILER_ID "TIClang" + # define HOST_COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define HOST_COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define HOST_COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define HOST_COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define HOST_SIMULATE_ID "MSVC" +# endif +# define HOST_COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define HOST_COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define HOST_COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define HOST_SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define HOST_COMPILER_ID "LCC" +# define HOST_COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define HOST_COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define HOST_COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define HOST_SIMULATE_ID "GNU" +# define HOST_SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define HOST_SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define HOST_SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define HOST_COMPILER_ID "GNU" +# if defined(__GNUC__) +# define HOST_COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define HOST_COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define HOST_COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define HOST_COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define HOST_COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define HOST_COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define HOST_COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define HOST_COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define HOST_COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define HOST_COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define HOST_COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define HOST_COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define HOST_COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define HOST_COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define HOST_COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define HOST_COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define HOST_COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define HOST_COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define HOST_COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define HOST_COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define HOST_COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define HOST_COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define HOST_COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +#endif +#endif /* __NVCC__ */ + + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) || defined(__CPARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#ifdef HOST_COMPILER_ID +char const* info_host_compiler = "INFO" ":" "host_compiler[" HOST_COMPILER_ID "]"; +#endif +#ifdef HOST_COMPILER_VERSION +char const* info_host_compiler_version = "INFO" ":" "host_compiler_version[" HOST_COMPILER_VERSION "]"; +#elif defined(HOST_COMPILER_VERSION_MAJOR) +char const info_host_compiler_version[] = { + 'I', 'N', 'F', 'O', ':','h','o','s','t','_', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + HOST_COMPILER_VERSION_MAJOR, +# ifdef HOST_COMPILER_VERSION_MINOR + '.', HOST_COMPILER_VERSION_MINOR, +# ifdef HOST_COMPILER_VERSION_PATCH + '.', HOST_COMPILER_VERSION_PATCH, +# ifdef HOST_COMPILER_VERSION_TWEAK + '.', HOST_COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +#define CXX_STD_11 201103L +#define CXX_STD_14 201402L +#define CXX_STD_17 201703L +#define CXX_STD_20 202002L +#define CXX_STD_23 202302L + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +# if _MSVC_LANG > __cplusplus +# define CXX_STD _MSVC_LANG +# else +# define CXX_STD __cplusplus +# endif +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > CXX_STD_23 + "26" +#elif CXX_STD > CXX_STD_20 + "23" +#elif CXX_STD > CXX_STD_17 + "20" +#elif CXX_STD > CXX_STD_14 + "17" +#elif CXX_STD > CXX_STD_11 + "14" +#elif CXX_STD >= CXX_STD_11 + "11" +#else + "03" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#ifdef HOST_COMPILER_ID + require += info_host_compiler[argc]; +#endif +#ifdef HOST_COMPILER_VERSION_MAJOR + require += info_host_compiler_version[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/a.out b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/a.out new file mode 100755 index 0000000..160c5d9 Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/a.out differ diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii new file mode 100644 index 0000000..c232dbd --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii @@ -0,0 +1,36265 @@ +# 0 "CMakeCUDACompilerId.cu" +# 0 "" +# 0 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 0 "" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic push + + +#pragma GCC diagnostic ignored "-Wunused-function" +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" 1 +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" +# 1 "/usr/include/features.h" 1 3 4 +# 415 "/usr/include/features.h" 3 4 +# 1 "/usr/include/features-time64.h" 1 3 4 +# 20 "/usr/include/features-time64.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 21 "/usr/include/features-time64.h" 2 3 4 +# 1 "/usr/include/bits/timesize.h" 1 3 4 +# 19 "/usr/include/bits/timesize.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/bits/timesize.h" 2 3 4 +# 22 "/usr/include/features-time64.h" 2 3 4 +# 416 "/usr/include/features.h" 2 3 4 +# 524 "/usr/include/features.h" 3 4 +# 1 "/usr/include/sys/cdefs.h" 1 3 4 +# 730 "/usr/include/sys/cdefs.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 731 "/usr/include/sys/cdefs.h" 2 3 4 +# 1 "/usr/include/bits/long-double.h" 1 3 4 +# 732 "/usr/include/sys/cdefs.h" 2 3 4 +# 525 "/usr/include/features.h" 2 3 4 +# 548 "/usr/include/features.h" 3 4 +# 1 "/usr/include/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/gnu/stubs.h" 3 4 +# 1 "/usr/include/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/gnu/stubs.h" 2 3 4 +# 549 "/usr/include/features.h" 2 3 4 +# 217 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" 2 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 56 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 1 +# 59 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 64 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" +# 1 "/usr/include/ctype.h" 1 3 4 +# 26 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/types.h" 1 3 4 +# 27 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/bits/types.h" 2 3 4 +# 1 "/usr/include/bits/timesize.h" 1 3 4 +# 19 "/usr/include/bits/timesize.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/bits/timesize.h" 2 3 4 +# 29 "/usr/include/bits/types.h" 2 3 4 + + + +# 31 "/usr/include/bits/types.h" 3 4 +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; + + + + + + +typedef __int8_t __int_least8_t; +typedef __uint8_t __uint_least8_t; +typedef __int16_t __int_least16_t; +typedef __uint16_t __uint_least16_t; +typedef __int32_t __int_least32_t; +typedef __uint32_t __uint_least32_t; +typedef __int64_t __int_least64_t; +typedef __uint64_t __uint_least64_t; + + + +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; + + + + + + + +typedef long int __intmax_t; +typedef unsigned long int __uintmax_t; +# 141 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/typesizes.h" 1 3 4 +# 142 "/usr/include/bits/types.h" 2 3 4 +# 1 "/usr/include/bits/time64.h" 1 3 4 +# 143 "/usr/include/bits/types.h" 2 3 4 + + +typedef unsigned long int __dev_t; +typedef unsigned int __uid_t; +typedef unsigned int __gid_t; +typedef unsigned long int __ino_t; +typedef unsigned long int __ino64_t; +typedef unsigned int __mode_t; +typedef unsigned long int __nlink_t; +typedef long int __off_t; +typedef long int __off64_t; +typedef int __pid_t; +typedef struct { int __val[2]; } __fsid_t; +typedef long int __clock_t; +typedef unsigned long int __rlim_t; +typedef unsigned long int __rlim64_t; +typedef unsigned int __id_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef long int __suseconds_t; +typedef long int __suseconds64_t; + +typedef int __daddr_t; +typedef int __key_t; + + +typedef int __clockid_t; + + +typedef void * __timer_t; + + +typedef long int __blksize_t; + + + + +typedef long int __blkcnt_t; +typedef long int __blkcnt64_t; + + +typedef unsigned long int __fsblkcnt_t; +typedef unsigned long int __fsblkcnt64_t; + + +typedef unsigned long int __fsfilcnt_t; +typedef unsigned long int __fsfilcnt64_t; + + +typedef long int __fsword_t; + +typedef long int __ssize_t; + + +typedef long int __syscall_slong_t; + +typedef unsigned long int __syscall_ulong_t; + + + +typedef __off64_t __loff_t; +typedef char *__caddr_t; + + +typedef long int __intptr_t; + + +typedef unsigned int __socklen_t; + + + + +typedef int __sig_atomic_t; +# 27 "/usr/include/ctype.h" 2 3 4 + +extern "C" { +# 39 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/endian.h" 1 3 4 +# 35 "/usr/include/bits/endian.h" 3 4 +# 1 "/usr/include/bits/endianness.h" 1 3 4 +# 36 "/usr/include/bits/endian.h" 2 3 4 +# 40 "/usr/include/ctype.h" 2 3 4 + + + + + + +enum +{ + _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), + _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), + _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), + _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), + _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), + _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), + _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), + _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), + _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), + _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), + _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), + _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) +}; +# 79 "/usr/include/ctype.h" 3 4 +extern const unsigned short int **__ctype_b_loc (void) + noexcept (true) __attribute__ ((__const__)); +extern const __int32_t **__ctype_tolower_loc (void) + noexcept (true) __attribute__ ((__const__)); +extern const __int32_t **__ctype_toupper_loc (void) + noexcept (true) __attribute__ ((__const__)); +# 108 "/usr/include/ctype.h" 3 4 +extern int isalnum (int) noexcept (true); +extern int isalpha (int) noexcept (true); +extern int iscntrl (int) noexcept (true); +extern int isdigit (int) noexcept (true); +extern int islower (int) noexcept (true); +extern int isgraph (int) noexcept (true); +extern int isprint (int) noexcept (true); +extern int ispunct (int) noexcept (true); +extern int isspace (int) noexcept (true); +extern int isupper (int) noexcept (true); +extern int isxdigit (int) noexcept (true); + + + +extern int tolower (int __c) noexcept (true); + + +extern int toupper (int __c) noexcept (true); + + + + +extern int isblank (int) noexcept (true); + + + + +extern int isctype (int __c, int __mask) noexcept (true); + + + + + + +extern int isascii (int __c) noexcept (true); + + + +extern int toascii (int __c) noexcept (true); + + + +extern int _toupper (int) noexcept (true); +extern int _tolower (int) noexcept (true); +# 237 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/types/locale_t.h" 1 3 4 +# 22 "/usr/include/bits/types/locale_t.h" 3 4 +# 1 "/usr/include/bits/types/__locale_t.h" 1 3 4 +# 27 "/usr/include/bits/types/__locale_t.h" 3 4 +struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +}; + +typedef struct __locale_struct *__locale_t; +# 23 "/usr/include/bits/types/locale_t.h" 2 3 4 + +typedef __locale_t locale_t; +# 238 "/usr/include/ctype.h" 2 3 4 +# 251 "/usr/include/ctype.h" 3 4 +extern int isalnum_l (int, locale_t) noexcept (true); +extern int isalpha_l (int, locale_t) noexcept (true); +extern int iscntrl_l (int, locale_t) noexcept (true); +extern int isdigit_l (int, locale_t) noexcept (true); +extern int islower_l (int, locale_t) noexcept (true); +extern int isgraph_l (int, locale_t) noexcept (true); +extern int isprint_l (int, locale_t) noexcept (true); +extern int ispunct_l (int, locale_t) noexcept (true); +extern int isspace_l (int, locale_t) noexcept (true); +extern int isupper_l (int, locale_t) noexcept (true); +extern int isxdigit_l (int, locale_t) noexcept (true); + +extern int isblank_l (int, locale_t) noexcept (true); + + + +extern int __tolower_l (int __c, locale_t __l) noexcept (true); +extern int tolower_l (int __c, locale_t __l) noexcept (true); + + +extern int __toupper_l (int __c, locale_t __l) noexcept (true); +extern int toupper_l (int __c, locale_t __l) noexcept (true); +# 327 "/usr/include/ctype.h" 3 4 +} +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 2 +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 2 +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" + +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +enum __attribute__((device_builtin)) cudaRoundMode +{ + cudaRoundNearest, + cudaRoundZero, + cudaRoundPosInf, + cudaRoundMinInf +}; +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 1 +# 59 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" 1 +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 66 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" 2 +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) char1 +{ + signed char x; +}; + +struct __attribute__((device_builtin)) uchar1 +{ + unsigned char x; +}; + + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) char2 +{ + signed char x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) uchar2 +{ + unsigned char x, y; +}; + +struct __attribute__((device_builtin)) char3 +{ + signed char x, y, z; +}; + +struct __attribute__((device_builtin)) uchar3 +{ + unsigned char x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) char4 +{ + signed char x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) uchar4 +{ + unsigned char x, y, z, w; +}; + +struct __attribute__((device_builtin)) short1 +{ + short x; +}; + +struct __attribute__((device_builtin)) ushort1 +{ + unsigned short x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) short2 +{ + short x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) ushort2 +{ + unsigned short x, y; +}; + +struct __attribute__((device_builtin)) short3 +{ + short x, y, z; +}; + +struct __attribute__((device_builtin)) ushort3 +{ + unsigned short x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) short4 { short x; short y; short z; short w; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; + +struct __attribute__((device_builtin)) int1 +{ + int x; +}; + +struct __attribute__((device_builtin)) uint1 +{ + unsigned int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) int2 { int x; int y; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) uint2 { unsigned int x; unsigned int y; }; + +struct __attribute__((device_builtin)) int3 +{ + int x, y, z; +}; + +struct __attribute__((device_builtin)) uint3 +{ + unsigned int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) int4 +{ + int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) uint4 +{ + unsigned int x, y, z, w; +}; + +struct __attribute__((device_builtin)) long1 +{ + long int x; +}; + +struct __attribute__((device_builtin)) ulong1 +{ + unsigned long x; +}; + + + + + + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(long int)))) long2 +{ + long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(unsigned long int)))) ulong2 +{ + unsigned long int x, y; +}; + + + +struct __attribute__((device_builtin)) long3 +{ + long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulong3 +{ + unsigned long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) long4 +{ + long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulong4 +{ + unsigned long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) float1 +{ + float x; +}; +# 280 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) __attribute__((aligned(8))) float2 { float x; float y; }; + + + + +struct __attribute__((device_builtin)) float3 +{ + float x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) float4 +{ + float x, y, z, w; +}; + +struct __attribute__((device_builtin)) longlong1 +{ + long long int x; +}; + +struct __attribute__((device_builtin)) ulonglong1 +{ + unsigned long long int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong2 +{ + long long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong2 +{ + unsigned long long int x, y; +}; + +struct __attribute__((device_builtin)) longlong3 +{ + long long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulonglong3 +{ + unsigned long long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong4 +{ + long long int x, y, z ,w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong4 +{ + unsigned long long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) double1 +{ + double x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double2 +{ + double x, y; +}; + +struct __attribute__((device_builtin)) double3 +{ + double x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double4 +{ + double x, y, z, w; +}; +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +typedef __attribute__((device_builtin)) struct char1 char1; +typedef __attribute__((device_builtin)) struct uchar1 uchar1; +typedef __attribute__((device_builtin)) struct char2 char2; +typedef __attribute__((device_builtin)) struct uchar2 uchar2; +typedef __attribute__((device_builtin)) struct char3 char3; +typedef __attribute__((device_builtin)) struct uchar3 uchar3; +typedef __attribute__((device_builtin)) struct char4 char4; +typedef __attribute__((device_builtin)) struct uchar4 uchar4; +typedef __attribute__((device_builtin)) struct short1 short1; +typedef __attribute__((device_builtin)) struct ushort1 ushort1; +typedef __attribute__((device_builtin)) struct short2 short2; +typedef __attribute__((device_builtin)) struct ushort2 ushort2; +typedef __attribute__((device_builtin)) struct short3 short3; +typedef __attribute__((device_builtin)) struct ushort3 ushort3; +typedef __attribute__((device_builtin)) struct short4 short4; +typedef __attribute__((device_builtin)) struct ushort4 ushort4; +typedef __attribute__((device_builtin)) struct int1 int1; +typedef __attribute__((device_builtin)) struct uint1 uint1; +typedef __attribute__((device_builtin)) struct int2 int2; +typedef __attribute__((device_builtin)) struct uint2 uint2; +typedef __attribute__((device_builtin)) struct int3 int3; +typedef __attribute__((device_builtin)) struct uint3 uint3; +typedef __attribute__((device_builtin)) struct int4 int4; +typedef __attribute__((device_builtin)) struct uint4 uint4; +typedef __attribute__((device_builtin)) struct long1 long1; +typedef __attribute__((device_builtin)) struct ulong1 ulong1; +typedef __attribute__((device_builtin)) struct long2 long2; +typedef __attribute__((device_builtin)) struct ulong2 ulong2; +typedef __attribute__((device_builtin)) struct long3 long3; +typedef __attribute__((device_builtin)) struct ulong3 ulong3; +typedef __attribute__((device_builtin)) struct long4 long4; +typedef __attribute__((device_builtin)) struct ulong4 ulong4; +typedef __attribute__((device_builtin)) struct float1 float1; +typedef __attribute__((device_builtin)) struct float2 float2; +typedef __attribute__((device_builtin)) struct float3 float3; +typedef __attribute__((device_builtin)) struct float4 float4; +typedef __attribute__((device_builtin)) struct longlong1 longlong1; +typedef __attribute__((device_builtin)) struct ulonglong1 ulonglong1; +typedef __attribute__((device_builtin)) struct longlong2 longlong2; +typedef __attribute__((device_builtin)) struct ulonglong2 ulonglong2; +typedef __attribute__((device_builtin)) struct longlong3 longlong3; +typedef __attribute__((device_builtin)) struct ulonglong3 ulonglong3; +typedef __attribute__((device_builtin)) struct longlong4 longlong4; +typedef __attribute__((device_builtin)) struct ulonglong4 ulonglong4; +typedef __attribute__((device_builtin)) struct double1 double1; +typedef __attribute__((device_builtin)) struct double2 double2; +typedef __attribute__((device_builtin)) struct double3 double3; +typedef __attribute__((device_builtin)) struct double4 double4; +# 426 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) dim3 +{ + unsigned int x, y, z; + + + __attribute__((host)) __attribute__((device)) constexpr dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {} + __attribute__((host)) __attribute__((device)) constexpr dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {} + __attribute__((host)) __attribute__((device)) constexpr operator uint3(void) const { return uint3{x, y, z}; } + + + + + + +}; + +typedef __attribute__((device_builtin)) struct dim3 dim3; +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 1 3 4 +# 210 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 26 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/limits.h" 2 3 4 +# 195 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/posix1_lim.h" 1 3 4 +# 27 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 161 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/bits/local_lim.h" 2 3 4 +# 81 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/bits/pthread_stack_min-dynamic.h" 1 3 4 +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 + +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 +extern "C" { +extern long int __sysconf (int __name) noexcept (true); +} +# 82 "/usr/include/bits/local_lim.h" 2 3 4 +# 162 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 196 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/posix2_lim.h" 1 3 4 +# 200 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/xopen_lim.h" 1 3 4 +# 64 "/usr/include/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/bits/uio_lim.h" 1 3 4 +# 65 "/usr/include/bits/xopen_lim.h" 2 3 4 +# 204 "/usr/include/limits.h" 2 3 4 +# 211 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 2 3 4 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 425 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef struct { + long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); + long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); +# 436 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum __attribute__((device_builtin)) cudaError +{ + + + + + + cudaSuccess = 0, + + + + + + cudaErrorInvalidValue = 1, + + + + + + cudaErrorMemoryAllocation = 2, + + + + + + cudaErrorInitializationError = 3, + + + + + + + cudaErrorCudartUnloading = 4, + + + + + + + cudaErrorProfilerDisabled = 5, + + + + + + + + cudaErrorProfilerNotInitialized = 6, + + + + + + + cudaErrorProfilerAlreadyStarted = 7, + + + + + + + cudaErrorProfilerAlreadyStopped = 8, + + + + + + + + cudaErrorInvalidConfiguration = 9, + + + + + + cudaErrorInvalidPitchValue = 12, + + + + + + cudaErrorInvalidSymbol = 13, + + + + + + + + cudaErrorInvalidHostPointer = 16, + + + + + + + + cudaErrorInvalidDevicePointer = 17, + + + + + cudaErrorInvalidTexture = 18, + + + + + + cudaErrorInvalidTextureBinding = 19, + + + + + + + cudaErrorInvalidChannelDescriptor = 20, + + + + + + cudaErrorInvalidMemcpyDirection = 21, +# 336 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorAddressOfConstant = 22, +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorTextureFetchFailed = 23, +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorTextureNotBound = 24, +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSynchronizationError = 25, + + + + + cudaErrorInvalidFilterSetting = 26, + + + + + + cudaErrorInvalidNormSetting = 27, + + + + + + + + cudaErrorMixedDeviceExecution = 28, + + + + + + + + cudaErrorNotYetImplemented = 31, +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorMemoryValueTooLarge = 32, + + + + + + cudaErrorStubLibrary = 34, + + + + + + + cudaErrorInsufficientDriver = 35, + + + + + + + cudaErrorCallRequiresNewerDriver = 36, + + + + + + cudaErrorInvalidSurface = 37, + + + + + + cudaErrorDuplicateVariableName = 43, + + + + + + cudaErrorDuplicateTextureName = 44, + + + + + + cudaErrorDuplicateSurfaceName = 45, +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorDevicesUnavailable = 46, +# 466 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorIncompatibleDriverContext = 49, + + + + + + cudaErrorMissingConfiguration = 52, +# 481 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorPriorLaunchFailure = 53, + + + + + + cudaErrorLaunchMaxDepthExceeded = 65, + + + + + + + + cudaErrorLaunchFileScopedTex = 66, + + + + + + + + cudaErrorLaunchFileScopedSurf = 67, +# 519 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSyncDepthExceeded = 68, +# 531 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchPendingCountExceeded = 69, + + + + + + cudaErrorInvalidDeviceFunction = 98, + + + + + + cudaErrorNoDevice = 100, + + + + + + + cudaErrorInvalidDevice = 101, + + + + + cudaErrorDeviceNotLicensed = 102, +# 564 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSoftwareValidityNotEstablished = 103, + + + + + cudaErrorStartupFailure = 127, + + + + + cudaErrorInvalidKernelImage = 200, +# 584 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorDeviceUninitialized = 201, + + + + + cudaErrorMapBufferObjectFailed = 205, + + + + + cudaErrorUnmapBufferObjectFailed = 206, + + + + + + cudaErrorArrayIsMapped = 207, + + + + + cudaErrorAlreadyMapped = 208, + + + + + + + + cudaErrorNoKernelImageForDevice = 209, + + + + + cudaErrorAlreadyAcquired = 210, + + + + + cudaErrorNotMapped = 211, + + + + + + cudaErrorNotMappedAsArray = 212, + + + + + + cudaErrorNotMappedAsPointer = 213, + + + + + + cudaErrorECCUncorrectable = 214, + + + + + + cudaErrorUnsupportedLimit = 215, + + + + + + cudaErrorDeviceAlreadyInUse = 216, + + + + + + cudaErrorPeerAccessUnsupported = 217, + + + + + + cudaErrorInvalidPtx = 218, + + + + + cudaErrorInvalidGraphicsContext = 219, + + + + + + cudaErrorNvlinkUncorrectable = 220, + + + + + + + cudaErrorJitCompilerNotFound = 221, + + + + + + + cudaErrorUnsupportedPtxVersion = 222, + + + + + + + cudaErrorJitCompilationDisabled = 223, + + + + + cudaErrorUnsupportedExecAffinity = 224, + + + + + + cudaErrorUnsupportedDevSideSync = 225, +# 719 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorContained = 226, + + + + + cudaErrorInvalidSource = 300, + + + + + cudaErrorFileNotFound = 301, + + + + + cudaErrorSharedObjectSymbolNotFound = 302, + + + + + cudaErrorSharedObjectInitFailed = 303, + + + + + cudaErrorOperatingSystem = 304, + + + + + + + cudaErrorInvalidResourceHandle = 400, + + + + + + cudaErrorIllegalState = 401, + + + + + + + + cudaErrorLossyQuery = 402, + + + + + + + cudaErrorSymbolNotFound = 500, + + + + + + + + cudaErrorNotReady = 600, + + + + + + + + cudaErrorIllegalAddress = 700, +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchOutOfResources = 701, +# 808 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchTimeout = 702, + + + + + + cudaErrorLaunchIncompatibleTexturing = 703, + + + + + + + cudaErrorPeerAccessAlreadyEnabled = 704, + + + + + + + cudaErrorPeerAccessNotEnabled = 705, +# 841 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSetOnActiveProcess = 708, + + + + + + + cudaErrorContextIsDestroyed = 709, + + + + + + + cudaErrorAssert = 710, + + + + + + + cudaErrorTooManyPeers = 711, + + + + + + cudaErrorHostMemoryAlreadyRegistered = 712, + + + + + + cudaErrorHostMemoryNotRegistered = 713, +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorHardwareStackError = 714, + + + + + + + + cudaErrorIllegalInstruction = 715, +# 900 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorMisalignedAddress = 716, +# 911 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorInvalidAddressSpace = 717, + + + + + + + + cudaErrorInvalidPc = 718, +# 930 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchFailure = 719, +# 939 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorCooperativeLaunchTooLarge = 720, + + + + + + + + cudaErrorTensorMemoryLeak = 721, + + + + + cudaErrorNotPermitted = 800, + + + + + + cudaErrorNotSupported = 801, +# 967 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSystemNotReady = 802, + + + + + + + cudaErrorSystemDriverMismatch = 803, +# 983 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorCompatNotSupportedOnDevice = 804, + + + + + cudaErrorMpsConnectionFailed = 805, + + + + + cudaErrorMpsRpcFailure = 806, + + + + + + cudaErrorMpsServerNotReady = 807, + + + + + cudaErrorMpsMaxClientsReached = 808, + + + + + cudaErrorMpsMaxConnectionsReached = 809, + + + + + cudaErrorMpsClientTerminated = 810, + + + + + cudaErrorCdpNotSupported = 811, + + + + + cudaErrorCdpVersionMismatch = 812, + + + + + cudaErrorStreamCaptureUnsupported = 900, + + + + + + cudaErrorStreamCaptureInvalidated = 901, + + + + + + cudaErrorStreamCaptureMerge = 902, + + + + + cudaErrorStreamCaptureUnmatched = 903, + + + + + + cudaErrorStreamCaptureUnjoined = 904, + + + + + + + cudaErrorStreamCaptureIsolation = 905, + + + + + + cudaErrorStreamCaptureImplicit = 906, + + + + + + cudaErrorCapturedEvent = 907, + + + + + + + cudaErrorStreamCaptureWrongThread = 908, + + + + + cudaErrorTimeout = 909, + + + + + + cudaErrorGraphExecUpdateFailure = 910, +# 1099 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorExternalDevice = 911, + + + + + + cudaErrorInvalidClusterSize = 912, + + + + + + cudaErrorFunctionNotLoaded = 913, + + + + + + cudaErrorInvalidResourceType = 914, + + + + + + cudaErrorInvalidResourceConfiguration = 915, + + + + + cudaErrorUnknown = 999 + + + + + + + + , cudaErrorApiFailureBase = 10000 +}; + + + + +enum __attribute__((device_builtin)) cudaChannelFormatKind +{ + cudaChannelFormatKindSigned = 0, + cudaChannelFormatKindUnsigned = 1, + cudaChannelFormatKindFloat = 2, + cudaChannelFormatKindNone = 3, + cudaChannelFormatKindNV12 = 4, + cudaChannelFormatKindUnsignedNormalized8X1 = 5, + cudaChannelFormatKindUnsignedNormalized8X2 = 6, + cudaChannelFormatKindUnsignedNormalized8X4 = 7, + cudaChannelFormatKindUnsignedNormalized16X1 = 8, + cudaChannelFormatKindUnsignedNormalized16X2 = 9, + cudaChannelFormatKindUnsignedNormalized16X4 = 10, + cudaChannelFormatKindSignedNormalized8X1 = 11, + cudaChannelFormatKindSignedNormalized8X2 = 12, + cudaChannelFormatKindSignedNormalized8X4 = 13, + cudaChannelFormatKindSignedNormalized16X1 = 14, + cudaChannelFormatKindSignedNormalized16X2 = 15, + cudaChannelFormatKindSignedNormalized16X4 = 16, + cudaChannelFormatKindUnsignedBlockCompressed1 = 17, + cudaChannelFormatKindUnsignedBlockCompressed1SRGB = 18, + cudaChannelFormatKindUnsignedBlockCompressed2 = 19, + cudaChannelFormatKindUnsignedBlockCompressed2SRGB = 20, + cudaChannelFormatKindUnsignedBlockCompressed3 = 21, + cudaChannelFormatKindUnsignedBlockCompressed3SRGB = 22, + cudaChannelFormatKindUnsignedBlockCompressed4 = 23, + cudaChannelFormatKindSignedBlockCompressed4 = 24, + cudaChannelFormatKindUnsignedBlockCompressed5 = 25, + cudaChannelFormatKindSignedBlockCompressed5 = 26, + cudaChannelFormatKindUnsignedBlockCompressed6H = 27, + cudaChannelFormatKindSignedBlockCompressed6H = 28, + cudaChannelFormatKindUnsignedBlockCompressed7 = 29, + cudaChannelFormatKindUnsignedBlockCompressed7SRGB = 30, + cudaChannelFormatKindUnsignedNormalized1010102 = 31 + +}; + + + + +struct __attribute__((device_builtin)) cudaChannelFormatDesc +{ + int x; + int y; + int z; + int w; + enum cudaChannelFormatKind f; +}; + + + + +typedef struct cudaArray *cudaArray_t; + + + + +typedef const struct cudaArray *cudaArray_const_t; + +struct cudaArray; + + + + +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; + + + + +typedef const struct cudaMipmappedArray *cudaMipmappedArray_const_t; + +struct cudaMipmappedArray; +# 1223 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaArraySparseProperties { + struct { + unsigned int width; + unsigned int height; + unsigned int depth; + } tileExtent; + unsigned int miptailFirstLevel; + unsigned long long miptailSize; + unsigned int flags; + unsigned int reserved[4]; +}; + + + + +struct __attribute__((device_builtin)) cudaArrayMemoryRequirements { + size_t size; + size_t alignment; + unsigned int reserved[4]; +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryType +{ + cudaMemoryTypeUnregistered = 0, + cudaMemoryTypeHost = 1, + cudaMemoryTypeDevice = 2, + cudaMemoryTypeManaged = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyKind +{ + cudaMemcpyHostToHost = 0, + cudaMemcpyHostToDevice = 1, + cudaMemcpyDeviceToHost = 2, + cudaMemcpyDeviceToDevice = 3, + cudaMemcpyDefault = 4 +}; + + + + + + +struct __attribute__((device_builtin)) cudaPitchedPtr +{ + void *ptr; + size_t pitch; + size_t xsize; + size_t ysize; +}; + + + + + + +struct __attribute__((device_builtin)) cudaExtent +{ + size_t width; + size_t height; + size_t depth; +}; + + + + + + +struct __attribute__((device_builtin)) cudaPos +{ + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + + struct cudaExtent extent; + enum cudaMemcpyKind kind; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpyNodeParams { + int flags; + int reserved[3]; + struct cudaMemcpy3DParms copyParams; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DPeerParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + int srcDevice; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + int dstDevice; + + struct cudaExtent extent; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParams { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParamsV2 { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +enum __attribute__((device_builtin)) cudaAccessProperty { + cudaAccessPropertyNormal = 0, + cudaAccessPropertyStreaming = 1, + cudaAccessPropertyPersisting = 2 +}; +# 1392 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaAccessPolicyWindow { + void *base_ptr; + size_t num_bytes; + float hitRatio; + enum cudaAccessProperty hitProp; + enum cudaAccessProperty missProp; +}; +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef void ( *cudaHostFn_t)(void *userData); + + + + +struct __attribute__((device_builtin)) cudaHostNodeParams { + cudaHostFn_t fn; + void* userData; +}; + + + + +struct __attribute__((device_builtin)) cudaHostNodeParamsV2 { + cudaHostFn_t fn; + void* userData; +}; + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureStatus { + cudaStreamCaptureStatusNone = 0, + cudaStreamCaptureStatusActive = 1, + cudaStreamCaptureStatusInvalidated = 2 + +}; + + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureMode { + cudaStreamCaptureModeGlobal = 0, + cudaStreamCaptureModeThreadLocal = 1, + cudaStreamCaptureModeRelaxed = 2 +}; + +enum __attribute__((device_builtin)) cudaSynchronizationPolicy { + cudaSyncPolicyAuto = 1, + cudaSyncPolicySpin = 2, + cudaSyncPolicyYield = 3, + cudaSyncPolicyBlockingSync = 4 +}; + + + + +enum __attribute__((device_builtin)) cudaClusterSchedulingPolicy { + cudaClusterSchedulingPolicyDefault = 0, + cudaClusterSchedulingPolicySpread = 1, + cudaClusterSchedulingPolicyLoadBalancing = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaStreamUpdateCaptureDependenciesFlags { + cudaStreamAddCaptureDependencies = 0x0, + cudaStreamSetCaptureDependencies = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectFlags { + cudaUserObjectNoDestructorSync = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectRetainFlags { + cudaGraphUserObjectMove = 0x1 +}; + + + + +struct cudaGraphicsResource; + + + + +enum __attribute__((device_builtin)) cudaGraphicsRegisterFlags +{ + cudaGraphicsRegisterFlagsNone = 0, + cudaGraphicsRegisterFlagsReadOnly = 1, + cudaGraphicsRegisterFlagsWriteDiscard = 2, + cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, + cudaGraphicsRegisterFlagsTextureGather = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsMapFlags +{ + cudaGraphicsMapFlagsNone = 0, + cudaGraphicsMapFlagsReadOnly = 1, + cudaGraphicsMapFlagsWriteDiscard = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsCubeFace +{ + cudaGraphicsCubeFacePositiveX = 0x00, + cudaGraphicsCubeFaceNegativeX = 0x01, + cudaGraphicsCubeFacePositiveY = 0x02, + cudaGraphicsCubeFaceNegativeY = 0x03, + cudaGraphicsCubeFacePositiveZ = 0x04, + cudaGraphicsCubeFaceNegativeZ = 0x05 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceType +{ + cudaResourceTypeArray = 0x00, + cudaResourceTypeMipmappedArray = 0x01, + cudaResourceTypeLinear = 0x02, + cudaResourceTypePitch2D = 0x03 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceViewFormat +{ + cudaResViewFormatNone = 0x00, + cudaResViewFormatUnsignedChar1 = 0x01, + cudaResViewFormatUnsignedChar2 = 0x02, + cudaResViewFormatUnsignedChar4 = 0x03, + cudaResViewFormatSignedChar1 = 0x04, + cudaResViewFormatSignedChar2 = 0x05, + cudaResViewFormatSignedChar4 = 0x06, + cudaResViewFormatUnsignedShort1 = 0x07, + cudaResViewFormatUnsignedShort2 = 0x08, + cudaResViewFormatUnsignedShort4 = 0x09, + cudaResViewFormatSignedShort1 = 0x0a, + cudaResViewFormatSignedShort2 = 0x0b, + cudaResViewFormatSignedShort4 = 0x0c, + cudaResViewFormatUnsignedInt1 = 0x0d, + cudaResViewFormatUnsignedInt2 = 0x0e, + cudaResViewFormatUnsignedInt4 = 0x0f, + cudaResViewFormatSignedInt1 = 0x10, + cudaResViewFormatSignedInt2 = 0x11, + cudaResViewFormatSignedInt4 = 0x12, + cudaResViewFormatHalf1 = 0x13, + cudaResViewFormatHalf2 = 0x14, + cudaResViewFormatHalf4 = 0x15, + cudaResViewFormatFloat1 = 0x16, + cudaResViewFormatFloat2 = 0x17, + cudaResViewFormatFloat4 = 0x18, + cudaResViewFormatUnsignedBlockCompressed1 = 0x19, + cudaResViewFormatUnsignedBlockCompressed2 = 0x1a, + cudaResViewFormatUnsignedBlockCompressed3 = 0x1b, + cudaResViewFormatUnsignedBlockCompressed4 = 0x1c, + cudaResViewFormatSignedBlockCompressed4 = 0x1d, + cudaResViewFormatUnsignedBlockCompressed5 = 0x1e, + cudaResViewFormatSignedBlockCompressed5 = 0x1f, + cudaResViewFormatUnsignedBlockCompressed6H = 0x20, + cudaResViewFormatSignedBlockCompressed6H = 0x21, + cudaResViewFormatUnsignedBlockCompressed7 = 0x22 +}; + + + + +struct __attribute__((device_builtin)) cudaResourceDesc { + enum cudaResourceType resType; + + union { + struct { + cudaArray_t array; + } array; + struct { + cudaMipmappedArray_t mipmap; + } mipmap; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t sizeInBytes; + } linear; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t width; + size_t height; + size_t pitchInBytes; + } pitch2D; + } res; +}; + + + + +struct __attribute__((device_builtin)) cudaResourceViewDesc +{ + enum cudaResourceViewFormat format; + size_t width; + size_t height; + size_t depth; + unsigned int firstMipmapLevel; + unsigned int lastMipmapLevel; + unsigned int firstLayer; + unsigned int lastLayer; +}; + + + + +struct __attribute__((device_builtin)) cudaPointerAttributes +{ + + + + + enum cudaMemoryType type; +# 1642 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int device; + + + + + + void *devicePointer; +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + void *hostPointer; +}; + + + + +struct __attribute__((device_builtin)) cudaFuncAttributes +{ + + + + + + size_t sharedSizeBytes; + + + + + + size_t constSizeBytes; + + + + + size_t localSizeBytes; + + + + + + + int maxThreadsPerBlock; + + + + + int numRegs; + + + + + + + int ptxVersion; + + + + + + + int binaryVersion; + + + + + + int cacheModeCA; + + + + + + + int maxDynamicSharedSizeBytes; +# 1729 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int preferredShmemCarveout; + + + + + + int clusterDimMustBeSet; +# 1746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int requiredClusterWidth; + int requiredClusterHeight; + int requiredClusterDepth; + + + + + + int clusterSchedulingPolicyPreference; +# 1776 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int nonPortableClusterSizeAllowed; + + + + + int reserved[16]; +}; + + + + +enum __attribute__((device_builtin)) cudaFuncAttribute +{ + cudaFuncAttributeMaxDynamicSharedMemorySize = 8, + cudaFuncAttributePreferredSharedMemoryCarveout = 9, + cudaFuncAttributeClusterDimMustBeSet = 10, + cudaFuncAttributeRequiredClusterWidth = 11, + cudaFuncAttributeRequiredClusterHeight = 12, + cudaFuncAttributeRequiredClusterDepth = 13, + cudaFuncAttributeNonPortableClusterSizeAllowed = 14, + cudaFuncAttributeClusterSchedulingPolicyPreference = 15, + cudaFuncAttributeMax +}; + + + + +enum __attribute__((device_builtin)) cudaFuncCache +{ + cudaFuncCachePreferNone = 0, + cudaFuncCachePreferShared = 1, + cudaFuncCachePreferL1 = 2, + cudaFuncCachePreferEqual = 3 +}; + + + + + +enum __attribute__((device_builtin)) cudaSharedMemConfig +{ + cudaSharedMemBankSizeDefault = 0, + cudaSharedMemBankSizeFourByte = 1, + cudaSharedMemBankSizeEightByte = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSharedCarveout { + cudaSharedmemCarveoutDefault = -1, + cudaSharedmemCarveoutMaxShared = 100, + cudaSharedmemCarveoutMaxL1 = 0 +}; + + + + +enum __attribute__((device_builtin)) cudaComputeMode +{ + cudaComputeModeDefault = 0, + cudaComputeModeExclusive = 1, + cudaComputeModeProhibited = 2, + cudaComputeModeExclusiveProcess = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaLimit +{ + cudaLimitStackSize = 0x00, + cudaLimitPrintfFifoSize = 0x01, + cudaLimitMallocHeapSize = 0x02, + cudaLimitDevRuntimeSyncDepth = 0x03, + cudaLimitDevRuntimePendingLaunchCount = 0x04, + cudaLimitMaxL2FetchGranularity = 0x05, + cudaLimitPersistingL2CacheSize = 0x06 +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryAdvise +{ + cudaMemAdviseSetReadMostly = 1, + cudaMemAdviseUnsetReadMostly = 2, + cudaMemAdviseSetPreferredLocation = 3, + cudaMemAdviseUnsetPreferredLocation = 4, + cudaMemAdviseSetAccessedBy = 5, + cudaMemAdviseUnsetAccessedBy = 6 +}; + + + + +enum __attribute__((device_builtin)) cudaMemRangeAttribute +{ + cudaMemRangeAttributeReadMostly = 1, + cudaMemRangeAttributePreferredLocation = 2, + cudaMemRangeAttributeAccessedBy = 3, + cudaMemRangeAttributeLastPrefetchLocation = 4 + , cudaMemRangeAttributePreferredLocationType = 5 + , cudaMemRangeAttributePreferredLocationId = 6 + , cudaMemRangeAttributeLastPrefetchLocationType = 7 + , cudaMemRangeAttributeLastPrefetchLocationId = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesOptions { + cudaFlushGPUDirectRDMAWritesOptionHost = 1<<0, + cudaFlushGPUDirectRDMAWritesOptionMemOps = 1<<1 +}; + + + + +enum __attribute__((device_builtin)) cudaGPUDirectRDMAWritesOrdering { + cudaGPUDirectRDMAWritesOrderingNone = 0, + cudaGPUDirectRDMAWritesOrderingOwner = 100, + cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesScope { + cudaFlushGPUDirectRDMAWritesToOwner = 100, + cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesTarget { + cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceAttr +{ + cudaDevAttrMaxThreadsPerBlock = 1, + cudaDevAttrMaxBlockDimX = 2, + cudaDevAttrMaxBlockDimY = 3, + cudaDevAttrMaxBlockDimZ = 4, + cudaDevAttrMaxGridDimX = 5, + cudaDevAttrMaxGridDimY = 6, + cudaDevAttrMaxGridDimZ = 7, + cudaDevAttrMaxSharedMemoryPerBlock = 8, + cudaDevAttrTotalConstantMemory = 9, + cudaDevAttrWarpSize = 10, + cudaDevAttrMaxPitch = 11, + cudaDevAttrMaxRegistersPerBlock = 12, + cudaDevAttrClockRate = 13, + cudaDevAttrTextureAlignment = 14, + cudaDevAttrGpuOverlap = 15, + cudaDevAttrMultiProcessorCount = 16, + cudaDevAttrKernelExecTimeout = 17, + cudaDevAttrIntegrated = 18, + cudaDevAttrCanMapHostMemory = 19, + cudaDevAttrComputeMode = 20, + cudaDevAttrMaxTexture1DWidth = 21, + cudaDevAttrMaxTexture2DWidth = 22, + cudaDevAttrMaxTexture2DHeight = 23, + cudaDevAttrMaxTexture3DWidth = 24, + cudaDevAttrMaxTexture3DHeight = 25, + cudaDevAttrMaxTexture3DDepth = 26, + cudaDevAttrMaxTexture2DLayeredWidth = 27, + cudaDevAttrMaxTexture2DLayeredHeight = 28, + cudaDevAttrMaxTexture2DLayeredLayers = 29, + cudaDevAttrSurfaceAlignment = 30, + cudaDevAttrConcurrentKernels = 31, + cudaDevAttrEccEnabled = 32, + cudaDevAttrPciBusId = 33, + cudaDevAttrPciDeviceId = 34, + cudaDevAttrTccDriver = 35, + cudaDevAttrMemoryClockRate = 36, + cudaDevAttrGlobalMemoryBusWidth = 37, + cudaDevAttrL2CacheSize = 38, + cudaDevAttrMaxThreadsPerMultiProcessor = 39, + cudaDevAttrAsyncEngineCount = 40, + cudaDevAttrUnifiedAddressing = 41, + cudaDevAttrMaxTexture1DLayeredWidth = 42, + cudaDevAttrMaxTexture1DLayeredLayers = 43, + cudaDevAttrMaxTexture2DGatherWidth = 45, + cudaDevAttrMaxTexture2DGatherHeight = 46, + cudaDevAttrMaxTexture3DWidthAlt = 47, + cudaDevAttrMaxTexture3DHeightAlt = 48, + cudaDevAttrMaxTexture3DDepthAlt = 49, + cudaDevAttrPciDomainId = 50, + cudaDevAttrTexturePitchAlignment = 51, + cudaDevAttrMaxTextureCubemapWidth = 52, + cudaDevAttrMaxTextureCubemapLayeredWidth = 53, + cudaDevAttrMaxTextureCubemapLayeredLayers = 54, + cudaDevAttrMaxSurface1DWidth = 55, + cudaDevAttrMaxSurface2DWidth = 56, + cudaDevAttrMaxSurface2DHeight = 57, + cudaDevAttrMaxSurface3DWidth = 58, + cudaDevAttrMaxSurface3DHeight = 59, + cudaDevAttrMaxSurface3DDepth = 60, + cudaDevAttrMaxSurface1DLayeredWidth = 61, + cudaDevAttrMaxSurface1DLayeredLayers = 62, + cudaDevAttrMaxSurface2DLayeredWidth = 63, + cudaDevAttrMaxSurface2DLayeredHeight = 64, + cudaDevAttrMaxSurface2DLayeredLayers = 65, + cudaDevAttrMaxSurfaceCubemapWidth = 66, + cudaDevAttrMaxSurfaceCubemapLayeredWidth = 67, + cudaDevAttrMaxSurfaceCubemapLayeredLayers = 68, + cudaDevAttrMaxTexture1DLinearWidth = 69, + cudaDevAttrMaxTexture2DLinearWidth = 70, + cudaDevAttrMaxTexture2DLinearHeight = 71, + cudaDevAttrMaxTexture2DLinearPitch = 72, + cudaDevAttrMaxTexture2DMipmappedWidth = 73, + cudaDevAttrMaxTexture2DMipmappedHeight = 74, + cudaDevAttrComputeCapabilityMajor = 75, + cudaDevAttrComputeCapabilityMinor = 76, + cudaDevAttrMaxTexture1DMipmappedWidth = 77, + cudaDevAttrStreamPrioritiesSupported = 78, + cudaDevAttrGlobalL1CacheSupported = 79, + cudaDevAttrLocalL1CacheSupported = 80, + cudaDevAttrMaxSharedMemoryPerMultiprocessor = 81, + cudaDevAttrMaxRegistersPerMultiprocessor = 82, + cudaDevAttrManagedMemory = 83, + cudaDevAttrIsMultiGpuBoard = 84, + cudaDevAttrMultiGpuBoardGroupID = 85, + cudaDevAttrHostNativeAtomicSupported = 86, + cudaDevAttrSingleToDoublePrecisionPerfRatio = 87, + cudaDevAttrPageableMemoryAccess = 88, + cudaDevAttrConcurrentManagedAccess = 89, + cudaDevAttrComputePreemptionSupported = 90, + cudaDevAttrCanUseHostPointerForRegisteredMem = 91, + cudaDevAttrReserved92 = 92, + cudaDevAttrReserved93 = 93, + cudaDevAttrReserved94 = 94, + cudaDevAttrCooperativeLaunch = 95, + cudaDevAttrCooperativeMultiDeviceLaunch = 96, + cudaDevAttrMaxSharedMemoryPerBlockOptin = 97, + cudaDevAttrCanFlushRemoteWrites = 98, + cudaDevAttrHostRegisterSupported = 99, + cudaDevAttrPageableMemoryAccessUsesHostPageTables = 100, + cudaDevAttrDirectManagedMemAccessFromHost = 101, + cudaDevAttrMaxBlocksPerMultiprocessor = 106, + cudaDevAttrMaxPersistingL2CacheSize = 108, + cudaDevAttrMaxAccessPolicyWindowSize = 109, + cudaDevAttrReservedSharedMemoryPerBlock = 111, + cudaDevAttrSparseCudaArraySupported = 112, + cudaDevAttrHostRegisterReadOnlySupported = 113, + cudaDevAttrTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMemoryPoolsSupported = 115, + cudaDevAttrGPUDirectRDMASupported = 116, + cudaDevAttrGPUDirectRDMAFlushWritesOptions = 117, + cudaDevAttrGPUDirectRDMAWritesOrdering = 118, + cudaDevAttrMemoryPoolSupportedHandleTypes = 119, + cudaDevAttrClusterLaunch = 120, + cudaDevAttrDeferredMappingCudaArraySupported = 121, + cudaDevAttrReserved122 = 122, + cudaDevAttrReserved123 = 123, + cudaDevAttrReserved124 = 124, + cudaDevAttrIpcEventSupport = 125, + cudaDevAttrMemSyncDomainCount = 126, + cudaDevAttrReserved127 = 127, + cudaDevAttrReserved128 = 128, + cudaDevAttrReserved129 = 129, + cudaDevAttrNumaConfig = 130, + cudaDevAttrNumaId = 131, + cudaDevAttrReserved132 = 132, + cudaDevAttrMpsEnabled = 133, + cudaDevAttrHostNumaId = 134, + cudaDevAttrD3D12CigSupported = 135, + cudaDevAttrGpuPciDeviceId = 139, + cudaDevAttrGpuPciSubsystemId = 140, + cudaDevAttrHostNumaMultinodeIpcSupported = 143, + cudaDevAttrMax +}; + + + + +enum __attribute__((device_builtin)) cudaMemPoolAttr +{ +# 2070 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemPoolReuseFollowEventDependencies = 0x1, + + + + + + + cudaMemPoolReuseAllowOpportunistic = 0x2, + + + + + + + + cudaMemPoolReuseAllowInternalDependencies = 0x3, +# 2096 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemPoolAttrReleaseThreshold = 0x4, + + + + + + cudaMemPoolAttrReservedMemCurrent = 0x5, + + + + + + + cudaMemPoolAttrReservedMemHigh = 0x6, + + + + + + cudaMemPoolAttrUsedMemCurrent = 0x7, + + + + + + + cudaMemPoolAttrUsedMemHigh = 0x8 +}; + + + + +enum __attribute__((device_builtin)) cudaMemLocationType { + cudaMemLocationTypeInvalid = 0, + cudaMemLocationTypeDevice = 1 + , cudaMemLocationTypeHost = 2 + , cudaMemLocationTypeHostNuma = 3 + , cudaMemLocationTypeHostNumaCurrent = 4 +}; + + + + + + + +struct __attribute__((device_builtin)) cudaMemLocation { + enum cudaMemLocationType type; + int id; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAccessFlags { + cudaMemAccessFlagsProtNone = 0, + cudaMemAccessFlagsProtRead = 1, + cudaMemAccessFlagsProtReadWrite = 3 +}; + + + + +struct __attribute__((device_builtin)) cudaMemAccessDesc { + struct cudaMemLocation location; + enum cudaMemAccessFlags flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationType { + cudaMemAllocationTypeInvalid = 0x0, + + + + cudaMemAllocationTypePinned = 0x1, + cudaMemAllocationTypeMax = 0x7FFFFFFF +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationHandleType { + cudaMemHandleTypeNone = 0x0, + cudaMemHandleTypePosixFileDescriptor = 0x1, + cudaMemHandleTypeWin32 = 0x2, + cudaMemHandleTypeWin32Kmt = 0x4, + cudaMemHandleTypeFabric = 0x8 +}; +# 2196 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaMemPoolProps { + enum cudaMemAllocationType allocType; + enum cudaMemAllocationHandleType handleTypes; + struct cudaMemLocation location; + + + + + + + void *win32SecurityAttributes; + size_t maxSize; + unsigned short usage; + unsigned char reserved[54]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolPtrExportData { + unsigned char reserved[64]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParams { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParamsV2 { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +struct __attribute__((device_builtin)) cudaMemFreeNodeParams { + void *dptr; +}; + + + + +enum __attribute__((device_builtin)) cudaGraphMemAttributeType { + + + + + cudaGraphMemAttrUsedMemCurrent = 0x0, + + + + + + + cudaGraphMemAttrUsedMemHigh = 0x1, + + + + + + + cudaGraphMemAttrReservedMemCurrent = 0x2, + + + + + + + cudaGraphMemAttrReservedMemHigh = 0x3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyFlags { + cudaMemcpyFlagDefault = 0x0, + + + + + cudaMemcpyFlagPreferOverlapWithCompute = 0x1 +}; + +enum __attribute__((device_builtin)) cudaMemcpySrcAccessOrder { + + + + cudaMemcpySrcAccessOrderInvalid = 0x0, + + + + + cudaMemcpySrcAccessOrderStream = 0x1, +# 2320 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemcpySrcAccessOrderDuringApiCall = 0x2, +# 2329 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemcpySrcAccessOrderAny = 0x3, + + cudaMemcpySrcAccessOrderMax = 0x7FFFFFFF +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpyAttributes { + enum cudaMemcpySrcAccessOrder srcAccessOrder; + struct cudaMemLocation srcLocHint; + struct cudaMemLocation dstLocHint; + unsigned int flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpy3DOperandType { + cudaMemcpyOperandTypePointer = 0x1, + cudaMemcpyOperandTypeArray = 0x2, + cudaMemcpyOperandTypeMax = 0x7FFFFFFF +}; + + + + +struct __attribute__((device_builtin)) cudaOffset3D { + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DOperand { + enum cudaMemcpy3DOperandType type; + union { + + + + struct { + void *ptr; + size_t rowLength; + size_t layerHeight; + struct cudaMemLocation locHint; + } ptr; + + + + + struct { + cudaArray_t array; + struct cudaOffset3D offset; + } array; + } op; +}; + +struct __attribute__((device_builtin)) cudaMemcpy3DBatchOp { + struct cudaMemcpy3DOperand src; + struct cudaMemcpy3DOperand dst; + struct cudaExtent extent; + enum cudaMemcpySrcAccessOrder srcAccessOrder; + unsigned int flags; +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceP2PAttr { + cudaDevP2PAttrPerformanceRank = 1, + cudaDevP2PAttrAccessSupported = 2, + cudaDevP2PAttrNativeAtomicSupported = 3, + cudaDevP2PAttrCudaArrayAccessSupported = 4 +}; + + + + + + +struct __attribute__((device_builtin)) CUuuid_st { + char bytes[16]; +}; +typedef __attribute__((device_builtin)) struct CUuuid_st CUuuid; + +typedef __attribute__((device_builtin)) struct CUuuid_st cudaUUID_t; + + + + +struct __attribute__((device_builtin)) cudaDeviceProp +{ + char name[256]; + cudaUUID_t uuid; + char luid[8]; + unsigned int luidDeviceNodeMask; + size_t totalGlobalMem; + size_t sharedMemPerBlock; + int regsPerBlock; + int warpSize; + size_t memPitch; + int maxThreadsPerBlock; + int maxThreadsDim[3]; + int maxGridSize[3]; + int clockRate; + size_t totalConstMem; + int major; + int minor; + size_t textureAlignment; + size_t texturePitchAlignment; + int deviceOverlap; + int multiProcessorCount; + int kernelExecTimeoutEnabled; + int integrated; + int canMapHostMemory; + int computeMode; + int maxTexture1D; + int maxTexture1DMipmap; + int maxTexture1DLinear; + int maxTexture2D[2]; + int maxTexture2DMipmap[2]; + int maxTexture2DLinear[3]; + int maxTexture2DGather[2]; + int maxTexture3D[3]; + int maxTexture3DAlt[3]; + int maxTextureCubemap; + int maxTexture1DLayered[2]; + int maxTexture2DLayered[3]; + int maxTextureCubemapLayered[2]; + int maxSurface1D; + int maxSurface2D[2]; + int maxSurface3D[3]; + int maxSurface1DLayered[2]; + int maxSurface2DLayered[3]; + int maxSurfaceCubemap; + int maxSurfaceCubemapLayered[2]; + size_t surfaceAlignment; + int concurrentKernels; + int ECCEnabled; + int pciBusID; + int pciDeviceID; + int pciDomainID; + int tccDriver; + int asyncEngineCount; + int unifiedAddressing; + int memoryClockRate; + int memoryBusWidth; + int l2CacheSize; + int persistingL2CacheMaxSize; + int maxThreadsPerMultiProcessor; + int streamPrioritiesSupported; + int globalL1CacheSupported; + int localL1CacheSupported; + size_t sharedMemPerMultiprocessor; + int regsPerMultiprocessor; + int managedMemory; + int isMultiGpuBoard; + int multiGpuBoardGroupID; + int hostNativeAtomicSupported; + int singleToDoublePrecisionPerfRatio; + int pageableMemoryAccess; + int concurrentManagedAccess; + int computePreemptionSupported; + int canUseHostPointerForRegisteredMem; + int cooperativeLaunch; + int cooperativeMultiDeviceLaunch; + size_t sharedMemPerBlockOptin; + int pageableMemoryAccessUsesHostPageTables; + int directManagedMemAccessFromHost; + int maxBlocksPerMultiProcessor; + int accessPolicyMaxWindowSize; + size_t reservedSharedMemPerBlock; + int hostRegisterSupported; + int sparseCudaArraySupported; + int hostRegisterReadOnlySupported; + int timelineSemaphoreInteropSupported; + int memoryPoolsSupported; + int gpuDirectRDMASupported; + unsigned int gpuDirectRDMAFlushWritesOptions; + int gpuDirectRDMAWritesOrdering; + unsigned int memoryPoolSupportedHandleTypes; + int deferredMappingCudaArraySupported; + int ipcEventSupported; + int clusterLaunch; + int unifiedFunctionPointers; + int reserved[63]; +}; +# 2528 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcEventHandle_st +{ + char reserved[64]; +}cudaIpcEventHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcMemHandle_st +{ + char reserved[64]; +}cudaIpcMemHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaMemFabricHandle_st +{ + char reserved[64]; +}cudaMemFabricHandle_t; + + + + +enum __attribute__((device_builtin)) cudaExternalMemoryHandleType { + + + + cudaExternalMemoryHandleTypeOpaqueFd = 1, + + + + cudaExternalMemoryHandleTypeOpaqueWin32 = 2, + + + + cudaExternalMemoryHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalMemoryHandleTypeD3D12Heap = 4, + + + + cudaExternalMemoryHandleTypeD3D12Resource = 5, + + + + cudaExternalMemoryHandleTypeD3D11Resource = 6, + + + + cudaExternalMemoryHandleTypeD3D11ResourceKmt = 7, + + + + cudaExternalMemoryHandleTypeNvSciBuf = 8 +}; +# 2627 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaExternalMemoryHandleDesc { + + + + enum cudaExternalMemoryHandleType type; + union { + + + + + + int fd; +# 2654 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + + const void *nvSciBufObject; + } handle; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryBufferDesc { + + + + unsigned long long offset; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryMipmappedArrayDesc { + + + + + unsigned long long offset; + + + + struct cudaChannelFormatDesc formatDesc; + + + + struct cudaExtent extent; + + + + + unsigned int flags; + + + + unsigned int numLevels; +}; + + + + +enum __attribute__((device_builtin)) cudaExternalSemaphoreHandleType { + + + + cudaExternalSemaphoreHandleTypeOpaqueFd = 1, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32 = 2, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalSemaphoreHandleTypeD3D12Fence = 4, + + + + cudaExternalSemaphoreHandleTypeD3D11Fence = 5, + + + + cudaExternalSemaphoreHandleTypeNvSciSync = 6, + + + + cudaExternalSemaphoreHandleTypeKeyedMutex = 7, + + + + cudaExternalSemaphoreHandleTypeKeyedMutexKmt = 8, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd = 9, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 = 10 +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreHandleDesc { + + + + enum cudaExternalSemaphoreHandleType type; + union { + + + + + + + int fd; +# 2804 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + const void* nvSciSyncObj; + } handle; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + } params; +# 2868 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + } params; +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams{ + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + unsigned int reserved[12]; + } params; +# 2963 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + unsigned int reserved[10]; + } params; +# 3014 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; +# 3027 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaError cudaError_t; + + + + +typedef __attribute__((device_builtin)) struct CUstream_st *cudaStream_t; + + + + +typedef __attribute__((device_builtin)) struct CUevent_st *cudaEvent_t; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphicsResource *cudaGraphicsResource_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalMemory_st *cudaExternalMemory_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalSemaphore_st *cudaExternalSemaphore_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraph_st *cudaGraph_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraphNode_st *cudaGraphNode_t; + + + + +typedef __attribute__((device_builtin)) struct CUuserObject_st *cudaUserObject_t; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaGraphConditionalHandle; + + + + +typedef __attribute__((device_builtin)) struct CUfunc_st *cudaFunction_t; + + + + +typedef __attribute__((device_builtin)) struct CUkern_st *cudaKernel_t; + + + + +enum __attribute__((device_builtin)) cudaJitOption +{ + + + + + + cudaJitMaxRegisters = 0, +# 3108 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitThreadsPerBlock = 1, + + + + + + + + cudaJitWallTime = 2, +# 3125 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitInfoLogBuffer = 3, +# 3134 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitInfoLogBufferSizeBytes = 4, +# 3143 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitErrorLogBuffer = 5, +# 3152 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitErrorLogBufferSizeBytes = 6, + + + + + + + + cudaJitOptimizationLevel = 7, + + + + + + + + cudaJitFallbackStrategy = 10, + + + + + + + + cudaJitGenerateDebugInfo = 11, + + + + + + + cudaJitLogVerbose = 12, + + + + + + + cudaJitGenerateLineInfo = 13, + + + + + + + + cudaJitCacheMode = 14, + + + + + + + cudaJitPositionIndependentCode = 30, +# 3218 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitMinCtaPerSm = 31, +# 3231 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitMaxThreadsPerBlock = 32, +# 3241 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitOverrideDirectiveValues = 33, +}; + + + + + +enum __attribute__((device_builtin)) cudaLibraryOption +{ + cudaLibraryHostUniversalFunctionAndDataTable = 0, +# 3261 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaLibraryBinaryIsPreserved = 1, +}; + +struct __attribute__((device_builtin)) cudalibraryHostUniversalFunctionAndDataTable +{ + void *functionTable; + size_t functionWindowSize; + void *dataTable; + size_t dataWindowSize; +}; + + + + +enum __attribute__((device_builtin)) cudaJit_CacheMode +{ + cudaJitCacheOptionNone = 0, + cudaJitCacheOptionCG, + cudaJitCacheOptionCA +}; + + + + +enum __attribute__((device_builtin)) cudaJit_Fallback +{ + cudaPreferPtx = 0, + + cudaPreferBinary +}; + + + + +typedef __attribute__((device_builtin)) struct CUlib_st *cudaLibrary_t; + + + + +typedef __attribute__((device_builtin)) struct CUmemPoolHandle_st *cudaMemPool_t; + + + + +enum __attribute__((device_builtin)) cudaCGScope { + cudaCGScopeInvalid = 0, + cudaCGScopeGrid = 1, + cudaCGScopeMultiGrid = 2 +}; + + + + +struct __attribute__((device_builtin)) cudaLaunchParams +{ + void *func; + dim3 gridDim; + dim3 blockDim; + void **args; + size_t sharedMem; + cudaStream_t stream; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParams { + void* func; + dim3 gridDim; + dim3 blockDim; + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParamsV2 { + void* func; + + dim3 gridDim; + dim3 blockDim; + + + + + + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParamsV2 { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParamsV2 { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + +enum __attribute__((device_builtin)) cudaGraphConditionalHandleFlags { + cudaGraphCondAssignDefault = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphConditionalNodeType { + cudaGraphCondTypeIf = 0, + cudaGraphCondTypeWhile = 1, + cudaGraphCondTypeSwitch = 2, +}; + + + + +struct __attribute__((device_builtin)) cudaConditionalNodeParams { + cudaGraphConditionalHandle handle; + + + enum cudaGraphConditionalNodeType type; + unsigned int size; + + cudaGraph_t *phGraph_out; +# 3432 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +}; + + + + +enum __attribute__((device_builtin)) cudaGraphNodeType { + cudaGraphNodeTypeKernel = 0x00, + cudaGraphNodeTypeMemcpy = 0x01, + cudaGraphNodeTypeMemset = 0x02, + cudaGraphNodeTypeHost = 0x03, + cudaGraphNodeTypeGraph = 0x04, + cudaGraphNodeTypeEmpty = 0x05, + cudaGraphNodeTypeWaitEvent = 0x06, + cudaGraphNodeTypeEventRecord = 0x07, + cudaGraphNodeTypeExtSemaphoreSignal = 0x08, + cudaGraphNodeTypeExtSemaphoreWait = 0x09, + cudaGraphNodeTypeMemAlloc = 0x0a, + cudaGraphNodeTypeMemFree = 0x0b, + cudaGraphNodeTypeConditional = 0x0d, +# 3467 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaGraphNodeTypeCount +}; + + + + +struct __attribute__((device_builtin)) cudaChildGraphNodeParams { + cudaGraph_t graph; + +}; + + + + +struct __attribute__((device_builtin)) cudaEventRecordNodeParams { + cudaEvent_t event; +}; + + + + +struct __attribute__((device_builtin)) cudaEventWaitNodeParams { + cudaEvent_t event; +}; + + + + +struct __attribute__((device_builtin)) cudaGraphNodeParams { + enum cudaGraphNodeType type; + int reserved0[3]; + + union { + long long reserved1[29]; + struct cudaKernelNodeParamsV2 kernel; + struct cudaMemcpyNodeParams memcpy; + struct cudaMemsetParamsV2 memset; + struct cudaHostNodeParamsV2 host; + struct cudaChildGraphNodeParams graph; + struct cudaEventWaitNodeParams eventWait; + struct cudaEventRecordNodeParams eventRecord; + struct cudaExternalSemaphoreSignalNodeParamsV2 extSemSignal; + struct cudaExternalSemaphoreWaitNodeParamsV2 extSemWait; + struct cudaMemAllocNodeParamsV2 alloc; + struct cudaMemFreeNodeParams free; + struct cudaConditionalNodeParams conditional; + }; + + long long reserved2; +}; + + + + +typedef __attribute__((device_builtin)) enum cudaGraphDependencyType_enum { + cudaGraphDependencyTypeDefault = 0, + cudaGraphDependencyTypeProgrammatic = 1 + + + + +} cudaGraphDependencyType; + + + + + + +typedef __attribute__((device_builtin)) struct cudaGraphEdgeData_st { + unsigned char from_port; +# 3546 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned char to_port; + + + + + + + unsigned char type; + + + unsigned char reserved[5]; + +} cudaGraphEdgeData; +# 3579 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct CUgraphExec_st* cudaGraphExec_t; + + + + +enum __attribute__((device_builtin)) cudaGraphExecUpdateResult { + cudaGraphExecUpdateSuccess = 0x0, + cudaGraphExecUpdateError = 0x1, + cudaGraphExecUpdateErrorTopologyChanged = 0x2, + cudaGraphExecUpdateErrorNodeTypeChanged = 0x3, + cudaGraphExecUpdateErrorFunctionChanged = 0x4, + cudaGraphExecUpdateErrorParametersChanged = 0x5, + cudaGraphExecUpdateErrorNotSupported = 0x6, + cudaGraphExecUpdateErrorUnsupportedFunctionChange = 0x7, + cudaGraphExecUpdateErrorAttributesChanged = 0x8 +}; + + + + +typedef __attribute__((device_builtin)) enum cudaGraphInstantiateResult { + cudaGraphInstantiateSuccess = 0, + cudaGraphInstantiateError = 1, + cudaGraphInstantiateInvalidStructure = 2, + cudaGraphInstantiateNodeOperationNotSupported = 3, + cudaGraphInstantiateMultipleDevicesNotSupported = 4, + cudaGraphInstantiateConditionalHandleUnused = 5 +} cudaGraphInstantiateResult; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphInstantiateParams_st +{ + unsigned long long flags; + cudaStream_t uploadStream; + cudaGraphNode_t errNode_out; + cudaGraphInstantiateResult result_out; +} cudaGraphInstantiateParams; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphExecUpdateResultInfo_st { + + + + enum cudaGraphExecUpdateResult result; + + + + + + + cudaGraphNode_t errorNode; + + + + + cudaGraphNode_t errorFromNode; +} cudaGraphExecUpdateResultInfo; + + + + +typedef struct CUgraphDeviceUpdatableNode_st* cudaGraphDeviceNode_t; + + + + +enum __attribute__((device_builtin)) cudaGraphKernelNodeField +{ + cudaGraphKernelNodeFieldInvalid = 0, + cudaGraphKernelNodeFieldGridDim, + cudaGraphKernelNodeFieldParam, + cudaGraphKernelNodeFieldEnabled +}; + + + + +struct __attribute__((device_builtin)) cudaGraphKernelNodeUpdate { + cudaGraphDeviceNode_t node; + enum cudaGraphKernelNodeField field; + union { + + dim3 gridDim; + + + + + struct { + const void *pValue; + size_t offset; + size_t size; + } param; + unsigned int isEnabled; + } updateData; +}; + + + + + +enum __attribute__((device_builtin)) cudaGetDriverEntryPointFlags { + cudaEnableDefault = 0x0, + cudaEnableLegacyStream = 0x1, + cudaEnablePerThreadDefaultStream = 0x2 +}; + + + + +enum __attribute__((device_builtin)) cudaDriverEntryPointQueryResult { + cudaDriverEntryPointSuccess = 0, + cudaDriverEntryPointSymbolNotFound = 1, + cudaDriverEntryPointVersionNotSufficent = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphDebugDotFlags { + cudaGraphDebugDotFlagsVerbose = 1<<0, + cudaGraphDebugDotFlagsKernelNodeParams = 1<<2, + cudaGraphDebugDotFlagsMemcpyNodeParams = 1<<3, + cudaGraphDebugDotFlagsMemsetNodeParams = 1<<4, + cudaGraphDebugDotFlagsHostNodeParams = 1<<5, + cudaGraphDebugDotFlagsEventNodeParams = 1<<6, + cudaGraphDebugDotFlagsExtSemasSignalNodeParams = 1<<7, + cudaGraphDebugDotFlagsExtSemasWaitNodeParams = 1<<8, + cudaGraphDebugDotFlagsKernelNodeAttributes = 1<<9, + cudaGraphDebugDotFlagsHandles = 1<<10, + cudaGraphDebugDotFlagsConditionalNodeParams = 1<<15, +}; + + + + +enum __attribute__((device_builtin)) cudaGraphInstantiateFlags { + cudaGraphInstantiateFlagAutoFreeOnLaunch = 1 + , cudaGraphInstantiateFlagUpload = 2 + + + , cudaGraphInstantiateFlagDeviceLaunch = 4 + + + , cudaGraphInstantiateFlagUseNodePriority = 8 + +}; +# 3746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaLaunchMemSyncDomain { + cudaLaunchMemSyncDomainDefault = 0, + cudaLaunchMemSyncDomainRemote = 1 +} cudaLaunchMemSyncDomain; +# 3762 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) struct cudaLaunchMemSyncDomainMap_st { + unsigned char default_; + unsigned char remote; +} cudaLaunchMemSyncDomainMap; + + + + +typedef __attribute__((device_builtin)) enum cudaLaunchAttributeID { + cudaLaunchAttributeIgnore = 0 + , cudaLaunchAttributeAccessPolicyWindow = 1 + + , cudaLaunchAttributeCooperative = 2 + + , cudaLaunchAttributeSynchronizationPolicy = 3 + , cudaLaunchAttributeClusterDimension = 4 + + , cudaLaunchAttributeClusterSchedulingPolicyPreference = 5 + + , cudaLaunchAttributeProgrammaticStreamSerialization = 6 +# 3792 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeProgrammaticEvent = 7 +# 3818 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributePriority = 8 + + , cudaLaunchAttributeMemSyncDomainMap = 9 + + , cudaLaunchAttributeMemSyncDomain = 10 + + , cudaLaunchAttributePreferredClusterDimension = 11 +# 3860 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeLaunchCompletionEvent = 12 +# 3882 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeDeviceUpdatableKernelNode = 13 +# 3910 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributePreferredSharedMemoryCarveout = 14 + + + + + + +} cudaLaunchAttributeID; + + + + +typedef __attribute__((device_builtin)) union cudaLaunchAttributeValue { + char pad[64]; + struct cudaAccessPolicyWindow accessPolicyWindow; + int cooperative; + + enum cudaSynchronizationPolicy syncPolicy; +# 3941 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } clusterDim; + enum cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; + + + int programmaticStreamSerializationAllowed; +# 3960 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + cudaEvent_t event; + int flags; + int triggerAtBlockStart; + } programmaticEvent; + int priority; + cudaLaunchMemSyncDomainMap memSyncDomainMap; + + + cudaLaunchMemSyncDomain memSyncDomain; +# 3984 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } preferredClusterDim; +# 3997 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + cudaEvent_t event; + int flags; + } launchCompletionEvent; + + + + + + + + struct { + int deviceUpdatable; + cudaGraphDeviceNode_t devNode; + } deviceUpdatableKernelNode; + unsigned int sharedMemCarveout; +} cudaLaunchAttributeValue; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchAttribute_st { + cudaLaunchAttributeID id; + char pad[8 - sizeof(cudaLaunchAttributeID)]; + cudaLaunchAttributeValue val; +} cudaLaunchAttribute; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchConfig_st { + dim3 gridDim; + dim3 blockDim; + size_t dynamicSmemBytes; + cudaStream_t stream; + cudaLaunchAttribute *attrs; + unsigned int numAttrs; +} cudaLaunchConfig_t; +# 4061 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum __attribute__((device_builtin)) cudaDeviceNumaConfig { + cudaDeviceNumaConfigNone = 0, + cudaDeviceNumaConfigNumaNode, +}; + + + + +typedef struct cudaAsyncCallbackEntry* cudaAsyncCallbackHandle_t; + +struct cudaAsyncCallbackEntry; + + + + +typedef __attribute__((device_builtin)) enum cudaAsyncNotificationType_enum { + cudaAsyncNotificationTypeOverBudget = 0x1 +} cudaAsyncNotificationType; + + + + +typedef __attribute__((device_builtin)) struct cudaAsyncNotificationInfo +{ + cudaAsyncNotificationType type; + union { + struct { + unsigned long long bytesOverBudget; + } overBudget; + } info; +} cudaAsyncNotificationInfo_t; + +typedef void (*cudaAsyncCallback)(cudaAsyncNotificationInfo_t*, void*, cudaAsyncCallbackHandle_t); +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +enum __attribute__((device_builtin)) cudaSurfaceBoundaryMode +{ + cudaBoundaryModeZero = 0, + cudaBoundaryModeClamp = 1, + cudaBoundaryModeTrap = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSurfaceFormatMode +{ + cudaFormatModeForced = 0, + cudaFormatModeAuto = 1 +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaSurfaceObject_t; +# 63 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +enum __attribute__((device_builtin)) cudaTextureAddressMode +{ + cudaAddressModeWrap = 0, + cudaAddressModeClamp = 1, + cudaAddressModeMirror = 2, + cudaAddressModeBorder = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureFilterMode +{ + cudaFilterModePoint = 0, + cudaFilterModeLinear = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureReadMode +{ + cudaReadModeElementType = 0, + cudaReadModeNormalizedFloat = 1 +}; + + + + +struct __attribute__((device_builtin)) cudaTextureDesc +{ + + + + enum cudaTextureAddressMode addressMode[3]; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureReadMode readMode; + + + + int sRGB; + + + + float borderColor[4]; + + + + int normalizedCoords; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; + + + + int seamlessCubemap; +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaTextureObject_t; +# 64 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" 1 +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" +typedef enum cudaDataType_t +{ + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, + CUDA_R_8F_E4M3 = 28, + CUDA_R_8F_UE4M3 = CUDA_R_8F_E4M3, + CUDA_R_8F_E5M2 = 29, + CUDA_R_8F_UE8M0 = 30, + CUDA_R_6F_E2M3 = 31, + CUDA_R_6F_E3M2 = 32, + CUDA_R_4F_E2M1 = 33, +} cudaDataType; + + +typedef enum libraryPropertyType_t +{ + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 1 +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 151 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 + +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + + +#pragma GCC visibility push(default) + + + extern "C++" __attribute__ ((__noreturn__, __always_inline__)) + inline void __terminate() noexcept + { + void terminate() noexcept __attribute__ ((__noreturn__,__cold__)); + terminate(); + } +#pragma GCC visibility pop +} +# 341 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 534 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ +#pragma GCC visibility push(default) + + + + + __attribute__((__always_inline__)) + constexpr inline bool + __is_constant_evaluated() noexcept + { + + + + + + return __builtin_is_constant_evaluated(); + + + + } +#pragma GCC visibility pop +} +# 573 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ +#pragma GCC visibility push(default) + + extern "C++" __attribute__ ((__noreturn__)) + void + __glibcxx_assert_fail + (const char* __file, int __line, const char* __function, + const char* __condition) + noexcept; +#pragma GCC visibility pop +} +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + __attribute__((__always_inline__,__visibility__("default"))) + inline void + __glibcxx_assert_fail() + { } +} +# 683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/os_defines.h" 1 3 +# 684 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/cpu_defines.h" 1 3 +# 687 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 +# 828 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace __gnu_cxx +{ + typedef __decltype(0.0bf16) __bfloat16_t; +} +# 890 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/pstl/pstl_config.h" 1 3 +# 891 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +# 1 "/usr/include/stdlib.h" 1 3 4 +# 26 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/stdlib.h" 2 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 33 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + +# 1 "/usr/include/bits/waitflags.h" 1 3 4 +# 41 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/bits/waitstatus.h" 1 3 4 +# 42 "/usr/include/stdlib.h" 2 3 4 +# 56 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/floatn.h" 1 3 4 +# 131 "/usr/include/bits/floatn.h" 3 4 +# 1 "/usr/include/bits/floatn-common.h" 1 3 4 +# 24 "/usr/include/bits/floatn-common.h" 3 4 +# 1 "/usr/include/bits/long-double.h" 1 3 4 +# 25 "/usr/include/bits/floatn-common.h" 2 3 4 +# 132 "/usr/include/bits/floatn.h" 2 3 4 +# 57 "/usr/include/stdlib.h" 2 3 4 + + +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; +# 98 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) noexcept (true) ; + + + +extern double atof (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern int atoi (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern long int atol (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +__extension__ extern long long int atoll (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern double strtod (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern float strtof (const char *__restrict __nptr, + char **__restrict __endptr) noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern long double strtold (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 141 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float64 strtof64 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float128 strtof128 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float32x strtof32x (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float64x strtof64x (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 177 "/usr/include/stdlib.h" 3 4 +extern long int strtol (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern unsigned long int strtoul (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + +extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtol") + + + __attribute__ ((__nonnull__ (1))); +extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoul") + + + + __attribute__ ((__nonnull__ (1))); + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") + + + __attribute__ ((__nonnull__ (1))); +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") + + + + __attribute__ ((__nonnull__ (1))); + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") + + + __attribute__ ((__nonnull__ (1))); +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") + + + + __attribute__ ((__nonnull__ (1))); +# 278 "/usr/include/stdlib.h" 3 4 +extern int strfromd (char *__dest, size_t __size, const char *__format, + double __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + +extern int strfromf (char *__dest, size_t __size, const char *__format, + float __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + +extern int strfroml (char *__dest, size_t __size, const char *__format, + long double __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); +# 298 "/usr/include/stdlib.h" 3 4 +extern int strfromf32 (char *__dest, size_t __size, const char * __format, + _Float32 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64 (char *__dest, size_t __size, const char * __format, + _Float64 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf128 (char *__dest, size_t __size, const char * __format, + _Float128 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf32x (char *__dest, size_t __size, const char * __format, + _Float32x __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64x (char *__dest, size_t __size, const char * __format, + _Float64x __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); +# 340 "/usr/include/stdlib.h" 3 4 +extern long int strtol_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +extern unsigned long int strtoul_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + + + + + +extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtol_l") + + + + __attribute__ ((__nonnull__ (1, 4))); +extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoul_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoll_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoull_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +# 415 "/usr/include/stdlib.h" 3 4 +extern double strtod_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + +extern float strtof_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + +extern long double strtold_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); +# 436 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64 strtof64_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float128 strtof128_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float32x strtof32x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64x strtof64x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); +# 505 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) noexcept (true) ; + + +extern long int a64l (const char *__s) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + +# 1 "/usr/include/sys/types.h" 1 3 4 +# 27 "/usr/include/sys/types.h" 3 4 +extern "C" { + + + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + +typedef __loff_t loff_t; + + + + +typedef __ino_t ino_t; + + + + + + +typedef __ino64_t ino64_t; + + + + +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; + + + + + +typedef __off_t off_t; + + + + + + +typedef __off64_t off64_t; + + + + +typedef __pid_t pid_t; + + + + + +typedef __id_t id_t; + + + + +typedef __ssize_t ssize_t; + + + + + +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; + + + + +# 1 "/usr/include/bits/types/clock_t.h" 1 3 4 + + + + + + +typedef __clock_t clock_t; +# 127 "/usr/include/sys/types.h" 2 3 4 + +# 1 "/usr/include/bits/types/clockid_t.h" 1 3 4 + + + + + + +typedef __clockid_t clockid_t; +# 129 "/usr/include/sys/types.h" 2 3 4 +# 1 "/usr/include/bits/types/time_t.h" 1 3 4 +# 10 "/usr/include/bits/types/time_t.h" 3 4 +typedef __time_t time_t; +# 130 "/usr/include/sys/types.h" 2 3 4 +# 1 "/usr/include/bits/types/timer_t.h" 1 3 4 + + + + + + +typedef __timer_t timer_t; +# 131 "/usr/include/sys/types.h" 2 3 4 + + + +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 145 "/usr/include/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; + + + + +# 1 "/usr/include/bits/stdint-intn.h" 1 3 4 +# 24 "/usr/include/bits/stdint-intn.h" 3 4 +typedef __int8_t int8_t; +typedef __int16_t int16_t; +typedef __int32_t int32_t; +typedef __int64_t int64_t; +# 156 "/usr/include/sys/types.h" 2 3 4 + + +typedef __uint8_t u_int8_t; +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; + + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 176 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 35 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/bits/byteswap.h" 1 3 4 +# 33 "/usr/include/bits/byteswap.h" 3 4 +static __inline __uint16_t +__bswap_16 (__uint16_t __bsx) +{ + + return __builtin_bswap16 (__bsx); + + + +} + + + + + + +static __inline __uint32_t +__bswap_32 (__uint32_t __bsx) +{ + + return __builtin_bswap32 (__bsx); + + + +} +# 69 "/usr/include/bits/byteswap.h" 3 4 +__extension__ static __inline __uint64_t +__bswap_64 (__uint64_t __bsx) +{ + + return __builtin_bswap64 (__bsx); + + + +} +# 36 "/usr/include/endian.h" 2 3 4 +# 1 "/usr/include/bits/uintn-identity.h" 1 3 4 +# 32 "/usr/include/bits/uintn-identity.h" 3 4 +static __inline __uint16_t +__uint16_identity (__uint16_t __x) +{ + return __x; +} + +static __inline __uint32_t +__uint32_identity (__uint32_t __x) +{ + return __x; +} + +static __inline __uint64_t +__uint64_identity (__uint64_t __x) +{ + return __x; +} +# 37 "/usr/include/endian.h" 2 3 4 +# 177 "/usr/include/sys/types.h" 2 3 4 + + +# 1 "/usr/include/sys/select.h" 1 3 4 +# 30 "/usr/include/sys/select.h" 3 4 +# 1 "/usr/include/bits/select.h" 1 3 4 +# 31 "/usr/include/sys/select.h" 2 3 4 + + +# 1 "/usr/include/bits/types/sigset_t.h" 1 3 4 + + + +# 1 "/usr/include/bits/types/__sigset_t.h" 1 3 4 + + + + +typedef struct +{ + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; +} __sigset_t; +# 5 "/usr/include/bits/types/sigset_t.h" 2 3 4 + + +typedef __sigset_t sigset_t; +# 34 "/usr/include/sys/select.h" 2 3 4 + + + +# 1 "/usr/include/bits/types/struct_timeval.h" 1 3 4 + + + + + + + +struct timeval +{ + + + + + __time_t tv_sec; + __suseconds_t tv_usec; + +}; +# 38 "/usr/include/sys/select.h" 2 3 4 + +# 1 "/usr/include/bits/types/struct_timespec.h" 1 3 4 +# 11 "/usr/include/bits/types/struct_timespec.h" 3 4 +struct timespec +{ + + + + __time_t tv_sec; + + + + + __syscall_slong_t tv_nsec; +# 31 "/usr/include/bits/types/struct_timespec.h" 3 4 +}; +# 40 "/usr/include/sys/select.h" 2 3 4 +# 49 "/usr/include/sys/select.h" 3 4 +typedef long int __fd_mask; +# 59 "/usr/include/sys/select.h" 3 4 +typedef struct + { + + + + __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 91 "/usr/include/sys/select.h" 3 4 +extern "C" { +# 102 "/usr/include/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 127 "/usr/include/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); +# 153 "/usr/include/sys/select.h" 3 4 +} +# 180 "/usr/include/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; + + + + + + +typedef __blkcnt_t blkcnt_t; + + + +typedef __fsblkcnt_t fsblkcnt_t; + + + +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/bits/thread-shared-types.h" 1 3 4 +# 44 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/pthreadtypes-arch.h" 1 3 4 +# 21 "/usr/include/bits/pthreadtypes-arch.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/bits/pthreadtypes-arch.h" 2 3 4 +# 45 "/usr/include/bits/thread-shared-types.h" 2 3 4 + +# 1 "/usr/include/bits/atomic_wide_counter.h" 1 3 4 +# 25 "/usr/include/bits/atomic_wide_counter.h" 3 4 +typedef union +{ + __extension__ unsigned long long int __value64; + struct + { + unsigned int __low; + unsigned int __high; + } __value32; +} __atomic_wide_counter; +# 47 "/usr/include/bits/thread-shared-types.h" 2 3 4 + + + + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; + +typedef struct __pthread_internal_slist +{ + struct __pthread_internal_slist *__next; +} __pthread_slist_t; +# 76 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/struct_mutex.h" 1 3 4 +# 22 "/usr/include/bits/struct_mutex.h" 3 4 +struct __pthread_mutex_s +{ + int __lock; + unsigned int __count; + int __owner; + + unsigned int __nusers; + + + + int __kind; + + short __spins; + short __elision; + __pthread_list_t __list; +# 53 "/usr/include/bits/struct_mutex.h" 3 4 +}; +# 77 "/usr/include/bits/thread-shared-types.h" 2 3 4 +# 89 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/struct_rwlock.h" 1 3 4 +# 23 "/usr/include/bits/struct_rwlock.h" 3 4 +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + + int __cur_writer; + int __shared; + signed char __rwelision; + + + + + unsigned char __pad1[7]; + + + unsigned long int __pad2; + + + unsigned int __flags; +# 55 "/usr/include/bits/struct_rwlock.h" 3 4 +}; +# 90 "/usr/include/bits/thread-shared-types.h" 2 3 4 + + + + +struct __pthread_cond_s +{ + __atomic_wide_counter __wseq; + __atomic_wide_counter __g1_start; + unsigned int __g_size[2] ; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; + unsigned int __unused_initialized_1; + unsigned int __unused_initialized_2; +}; + +typedef unsigned int __tss_t; +typedef unsigned long int __thrd_t; + +typedef struct +{ + int __data ; +} __once_flag; +# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 + + + +typedef unsigned long int pthread_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + +union pthread_attr_t +{ + char __size[56]; + long int __align; +}; + +typedef union pthread_attr_t pthread_attr_t; + + + + +typedef union +{ + struct __pthread_mutex_s __data; + char __size[40]; + long int __align; +} pthread_mutex_t; + + +typedef union +{ + struct __pthread_cond_s __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + + + + + +typedef union +{ + struct __pthread_rwlock_arch_t __data; + char __size[56]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[32]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 228 "/usr/include/sys/types.h" 2 3 4 + + +} +# 515 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) noexcept (true); + + +extern void srandom (unsigned int __seed) noexcept (true); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + noexcept (true) __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + noexcept (true) __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int rand (void) noexcept (true); + +extern void srand (unsigned int __seed) noexcept (true); + + + +extern int rand_r (unsigned int *__seed) noexcept (true); + + + + + + + +extern double drand48 (void) noexcept (true); +extern double erand48 (unsigned short int __xsubi[3]) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) noexcept (true); +extern long int nrand48 (unsigned short int __xsubi[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) noexcept (true); +extern long int jrand48 (unsigned short int __xsubi[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) noexcept (true); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + __extension__ unsigned long long int __a; + + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + noexcept (true) __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern __uint32_t arc4random (void) + noexcept (true) ; + + +extern void arc4random_buf (void *__buf, size_t __size) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) + noexcept (true) ; + + + + +extern void *malloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + +extern void *calloc (size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ; + + + + + + +extern void *realloc (void *__ptr, size_t __size) + noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); + + +extern void free (void *__ptr) noexcept (true); + + + + + + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__warn_unused_result__)) + __attribute__ ((__alloc_size__ (2, 3))) + __attribute__ ((__malloc__ (__builtin_free, 1))); + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__malloc__ (reallocarray, 1))); + + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 24 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) noexcept (true); + + + + + +} +# 707 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + +extern void *aligned_alloc (size_t __alignment, size_t __size) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1))) + __attribute__ ((__alloc_size__ (2))) ; + + + +extern void abort (void) noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + + +extern int atexit (void (*__func) (void)) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +extern "C++" int at_quick_exit (void (*__func) (void)) + noexcept (true) __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); +# 749 "/usr/include/stdlib.h" 3 4 +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +extern void exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + + +extern void quick_exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + + +extern void _Exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + +extern char *getenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + +extern char *secure_getenv (const char *__name) + noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + + + +extern int putenv (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (const char *__name, const char *__value, int __replace) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) noexcept (true); +# 814 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 827 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 837 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 849 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 859 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 870 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 881 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 891 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 901 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 913 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 923 "/usr/include/stdlib.h" 3 4 +extern int system (const char *__command) ; + + + + + +extern char *canonicalize_file_name (const char *__name) + noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__malloc__)) + __attribute__ ((__malloc__ (__builtin_free, 1))) ; +# 940 "/usr/include/stdlib.h" 3 4 +extern char *realpath (const char *__restrict __name, + char *__restrict __resolved) noexcept (true) ; + + + + + + +typedef int (*__compar_fn_t) (const void *, const void *); + + +typedef __compar_fn_t comparison_fn_t; + + + +typedef int (*__compar_d_fn_t) (const void *, const void *, void *); + + + + +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; + + + + + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); + +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __attribute__ ((__nonnull__ (1, 4))); + + + + +extern int abs (int __x) noexcept (true) __attribute__ ((__const__)) ; +extern long int labs (long int __x) noexcept (true) __attribute__ ((__const__)) ; + + +__extension__ extern long long int llabs (long long int __x) + noexcept (true) __attribute__ ((__const__)) ; + + + + + + +extern div_t div (int __numer, int __denom) + noexcept (true) __attribute__ ((__const__)) ; +extern ldiv_t ldiv (long int __numer, long int __denom) + noexcept (true) __attribute__ ((__const__)) ; + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + noexcept (true) __attribute__ ((__const__)) ; +# 1012 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + noexcept (true) __attribute__ ((__nonnull__ (3))) ; + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + noexcept (true) __attribute__ ((__nonnull__ (3))) ; + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + +extern int mblen (const char *__s, size_t __n) noexcept (true); + + +extern int mbtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n) noexcept (true); + + +extern int wctomb (char *__s, wchar_t __wchar) noexcept (true); + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + const char *__restrict __s, size_t __n) noexcept (true) + __attribute__ ((__access__ (__read_only__, 2))); + +extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + noexcept (true) + __attribute__ ((__access__ (__write_only__, 1, 3))) + __attribute__ ((__access__ (__read_only__, 2))); + + + + + + +extern int rpmatch (const char *__response) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 1099 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *const *__restrict __tokens, + char **__restrict __valuep) + noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))) ; + + + + + + + +extern int posix_openpt (int __oflag) ; + + + + + + + +extern int grantpt (int __fd) noexcept (true); + + + +extern int unlockpt (int __fd) noexcept (true); + + + + +extern char *ptsname (int __fd) noexcept (true) ; + + + + + + +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); + + +extern int getpt (void); + + + + + + +extern int getloadavg (double __loadavg[], int __nelem) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 1155 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/stdlib-float.h" 1 3 4 +# 1156 "/usr/include/stdlib.h" 2 3 4 +# 1167 "/usr/include/stdlib.h" 3 4 +} +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::abs; + + + inline long + abs(long __i) { return __builtin_labs(__i); } + + + + inline long long + abs(long long __x) { return __builtin_llabs (__x); } +# 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + inline constexpr double + abs(double __x) + { return __builtin_fabs(__x); } + + inline constexpr float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + + + __extension__ inline constexpr __int128 + abs(__int128 __x) { return __x >= 0 ? __x : -__x; } +# 135 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + __extension__ inline constexpr + __float128 + abs(__float128 __x) + { + + + + return __builtin_fabsf128(__x); + + + + + } + + + +} +} +# 82 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::div_t; + using ::ldiv_t; + + using ::abort; + + using ::aligned_alloc; + + using ::atexit; + + + using ::at_quick_exit; + + + using ::atof; + using ::atoi; + using ::atol; + using ::bsearch; + using ::calloc; + using ::div; + using ::exit; + using ::free; + using ::getenv; + using ::labs; + using ::ldiv; + using ::malloc; + + using ::mblen; + using ::mbstowcs; + using ::mbtowc; + + using ::qsort; + + + using ::quick_exit; + + + using ::rand; + using ::realloc; + using ::srand; + using ::strtod; + using ::strtol; + using ::strtoul; + using ::system; + + using ::wcstombs; + using ::wctomb; + + + + inline ldiv_t + div(long __i, long __j) noexcept { return ldiv(__i, __j); } + + + + +} +# 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" + using ::llabs; + + inline lldiv_t + div(long long __n, long long __d) + { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } + + using ::lldiv; +#pragma GCC diagnostic pop +# 234 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + using ::atoll; + using ::strtoll; + using ::strtoull; + + using ::strtof; + using ::strtold; + + +} + +namespace std +{ + + using ::__gnu_cxx::lldiv_t; + + using ::__gnu_cxx::_Exit; + + using ::__gnu_cxx::llabs; + using ::__gnu_cxx::div; + using ::__gnu_cxx::lldiv; + + using ::__gnu_cxx::atoll; + using ::__gnu_cxx::strtof; + using ::__gnu_cxx::strtoll; + using ::__gnu_cxx::strtoull; + using ::__gnu_cxx::strtold; +} +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 2 3 + +using std::abort; +using std::atexit; +using std::exit; + + + using std::at_quick_exit; + + + using std::quick_exit; + + + using std::_Exit; + + + + +using std::div_t; +using std::ldiv_t; + +using std::abs; +using std::atof; +using std::atoi; +using std::atol; +using std::bsearch; +using std::calloc; +using std::div; +using std::free; +using std::getenv; +using std::labs; +using std::ldiv; +using std::malloc; + +using std::mblen; +using std::mbstowcs; +using std::mbtowc; + +using std::qsort; +using std::rand; +using std::realloc; +using std::srand; +using std::strtod; +using std::strtol; +using std::strtoul; +using std::system; + +using std::wcstombs; +using std::wctomb; +# 55 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 2 +# 72 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" + +# 72 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern "C" { + + +struct cudaFuncAttributes; +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +inline __attribute__((device)) cudaError_t __cudaCDP2Malloc(void **p, size_t s) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2FuncGetAttributes(struct cudaFuncAttributes *p, const void *c) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2DeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2GetDevice(int *device) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags) +{ + return cudaErrorUnknown; +} + + + + + +} +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 2 +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern "C" +{ + + + + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(void); +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetLimit(size_t *pValue, enum cudaLimit limit); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2PeekAtLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* __cudaCDP2GetErrorString(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* __cudaCDP2GetErrorName(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetDeviceCount(int *count); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetDevice(int *device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamDestroy(cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecord(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventDestroy(cudaEvent_t event); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2FuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Free(void *devPtr); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Malloc(void **devPtr, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemcpyAsync_ptsz(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy2DAsync_ptsz(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy3DAsync_ptsz(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemsetAsync_ptsz(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset2DAsync_ptsz(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset3DAsync_ptsz(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2RuntimeGetVersion(int *runtimeVersion); +extern __attribute__((device)) __attribute__((cudart_builtin)) void * __cudaCDP2GetParameterBuffer(size_t alignment, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) void * __cudaCDP2GetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDeviceV2(void *parameterBuffer, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 311 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) cudaGraphExec_t cudaGetCurrentGraphExec(void) +{ + unsigned long long current_graph_exec; + asm ("mov.u64 %0, %%current_graph_exec;" : "=l"(current_graph_exec)); + return (cudaGraphExec_t)current_graph_exec; +} +# 346 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const void *value , size_t size); +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 430 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate *updates, size_t updateCount); +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaTriggerProgrammaticLaunchCompletion(void) +{ + asm volatile("griddepcontrol.launch_dependents;":::); +} +# 464 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaGridDependencySynchronize(void) +{ + asm volatile("griddepcontrol.wait;":::"memory"); +} +# 479 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) void cudaGraphSetConditional(cudaGraphConditionalHandle handle, unsigned int value); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long cudaCGGetIntrinsicHandle(enum cudaCGScope scope); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetSize(unsigned int *numThreads, unsigned int *numGrids, unsigned long long handle); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetRank(unsigned int *threadRank, unsigned int *gridRank, unsigned long long handle); +# 498 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device) +{ + return __cudaCDP2DeviceGetAttribute(value, attr, device); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit) +{ + return __cudaCDP2DeviceGetLimit(pValue, limit); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig) +{ + return __cudaCDP2DeviceGetCacheConfig(pCacheConfig); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig) +{ + return __cudaCDP2DeviceGetSharedMemConfig(pConfig); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void) +{ + return __cudaCDP2GetLastError(); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void) +{ + return __cudaCDP2PeekAtLastError(); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error) +{ + return __cudaCDP2GetErrorString(error); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error) +{ + return __cudaCDP2GetErrorName(error); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count) +{ + return __cudaCDP2GetDeviceCount(count); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device) +{ + return __cudaCDP2GetDevice(device); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags) +{ + return __cudaCDP2StreamCreateWithFlags(pStream, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream) +{ + return __cudaCDP2StreamDestroy(stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags) +{ + return __cudaCDP2StreamWaitEvent(stream, event, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned int flags) +{ + return __cudaCDP2StreamWaitEvent_ptsz(stream, event, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags) +{ + return __cudaCDP2EventCreateWithFlags(event, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream) +{ + return __cudaCDP2EventRecord(event, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord_ptsz(cudaEvent_t event, cudaStream_t stream) +{ + return __cudaCDP2EventRecord_ptsz(event, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned int flags) +{ + return __cudaCDP2EventRecordWithFlags(event, stream, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned int flags) +{ + return __cudaCDP2EventRecordWithFlags_ptsz(event, stream, flags); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event) +{ + return __cudaCDP2EventDestroy(event); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func) +{ + return __cudaCDP2FuncGetAttributes(attr, func); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr) +{ + return __cudaCDP2Free(devPtr); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size) +{ + return __cudaCDP2Malloc(devPtr, size); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream) +{ + return __cudaCDP2MemcpyAsync(dst, src, count, kind, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync_ptsz(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream) +{ + return __cudaCDP2MemcpyAsync_ptsz(dst, src, count, kind, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream) +{ + return __cudaCDP2Memcpy2DAsync(dst, dpitch, src, spitch, width, height, kind, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync_ptsz(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream) +{ + return __cudaCDP2Memcpy2DAsync_ptsz(dst, dpitch, src, spitch, width, height, kind, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream) +{ + return __cudaCDP2Memcpy3DAsync(p, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync_ptsz(const struct cudaMemcpy3DParms *p, cudaStream_t stream) +{ + return __cudaCDP2Memcpy3DAsync_ptsz(p, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream) +{ + return __cudaCDP2MemsetAsync(devPtr, value, count, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync_ptsz(void *devPtr, int value, size_t count, cudaStream_t stream) +{ + return __cudaCDP2MemsetAsync_ptsz(devPtr, value, count, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream) +{ + return __cudaCDP2Memset2DAsync(devPtr, pitch, value, width, height, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync_ptsz(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream) +{ + return __cudaCDP2Memset2DAsync_ptsz(devPtr, pitch, value, width, height, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream) +{ + return __cudaCDP2Memset3DAsync(pitchedDevPtr, value, extent, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync_ptsz(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream) +{ + return __cudaCDP2Memset3DAsync_ptsz(pitchedDevPtr, value, extent, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion) +{ + return __cudaCDP2RuntimeGetVersion(runtimeVersion); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize) +{ + return __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(numBlocks, func, blockSize, dynamicSmemSize); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags) +{ + return __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, func, blockSize, dynamicSmemSize, flags); +} +# 714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBuffer(size_t alignment, size_t size) +{ + return __cudaCDP2GetParameterBuffer(alignment, size); +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize) +{ + return __cudaCDP2GetParameterBufferV2(func, gridDimension, blockDimension, sharedMemSize); +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream) +{ + return __cudaCDP2LaunchDevice_ptsz(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream) +{ + return __cudaCDP2LaunchDeviceV2_ptsz(parameterBuffer, stream); +} +# 800 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" + static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream) + { + return __cudaCDP2LaunchDevice(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); + } + + static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream) + { + return __cudaCDP2LaunchDeviceV2(parameterBuffer, stream); + } +# 862 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +} + + + + + +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(T **devPtr, size_t size); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, T *entry); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned int flags); +# 901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +template +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const T &value) +{ + return cudaGraphKernelNodeSetParam(node, offset, &value, sizeof(T)); +} +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 +# 287 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern "C" { +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceReset(void); +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetLimit(enum cudaLimit limit, size_t value); +# 478 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +# 501 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t *maxWidthInElements, const struct cudaChannelFormatDesc *fmtDesc, int device); +# 535 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 572 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority); +# 616 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetCacheConfig(enum cudaFuncCache cacheConfig); +# 643 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetByPCIBusId(int *device, const char *pciBusId); +# 673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetPCIBusId(char *pciBusId, int len, int device); +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t *handle, cudaEvent_t event); +# 768 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenEventHandle(cudaEvent_t *event, cudaIpcEventHandle_t handle); +# 813 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t *handle, void *devPtr); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenMemHandle(void **devPtr, cudaIpcMemHandle_t handle, unsigned int flags); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcCloseMemHandle(void *devPtr); +# 951 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(enum cudaFlushGPUDirectRDMAWritesTarget target, enum cudaFlushGPUDirectRDMAWritesScope scope); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void* userData, cudaAsyncCallbackHandle_t* callback); +# 1012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +# 1105 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaDeviceSetSharedMemConfig(enum cudaSharedMemConfig config); +# 1146 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadExit(void); +# 1172 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSynchronize(void); +# 1221 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetLimit(enum cudaLimit limit, size_t value); +# 1254 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetLimit(size_t *pValue, enum cudaLimit limit); +# 1290 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 1337 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetCacheConfig(enum cudaFuncCache cacheConfig); +# 1402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +# 1453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +# 1469 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +# 1485 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +# 1514 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +# 1818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceProperties_v2(struct cudaDeviceProp *prop, int device); +# 2024 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +# 2042 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t *memPool, int device); +# 2066 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetMemPool(cudaMemPool_t *memPool, int device); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetNvSciSyncAttributes(void *nvSciSyncAttrList, int device, int flags); +# 2188 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetP2PAttribute(int *value, enum cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2210 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaChooseDevice(int *device, const struct cudaDeviceProp *prop); +# 2239 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaInitDevice(int device, unsigned int deviceFlags, unsigned int flags); +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDevice(int device); +# 2307 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +# 2338 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetValidDevices(int *device_arr, int len); +# 2408 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDeviceFlags( unsigned int flags ); +# 2453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDeviceFlags( unsigned int *flags ); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamCreate(cudaStream_t *pStream); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +# 2585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithPriority(cudaStream_t *pStream, unsigned int flags, int priority); +# 2613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int *priority); +# 2639 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned int *flags); +# 2676 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long *streamId); +# 2702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetDevice(cudaStream_t hStream, int *device); +# 2717 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCtxResetPersistingL2Cache(void); +# 2737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2758 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 2782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamSetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2847 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags = 0); + + + + + + + +typedef void ( *cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void *userData); +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamAddCallback(cudaStream_t stream, + cudaStreamCallback_t callback, void *userData, unsigned int flags); +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamQuery(cudaStream_t stream); +# 3055 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void *devPtr, size_t length = 0, unsigned int flags = 0x04); +# 3094 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode); +# 3135 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCaptureToGraph(cudaStream_t stream, cudaGraph_t graph, const cudaGraphNode_t *dependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, enum cudaStreamCaptureMode mode); +# 3186 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode); +# 3215 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph); +# 3253 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus); +# 3303 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, size_t *numDependencies_out = 0); +# 3362 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v3(cudaStream_t stream, + enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, + cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, + const cudaGraphEdgeData **edgeData_out = 0, size_t *numDependencies_out = 0); +# 3402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t *dependencies, size_t numDependencies, unsigned int flags = 0); +# 3437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies_v2(cudaStream_t stream, cudaGraphNode_t *dependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, unsigned int flags = 0); +# 3474 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventCreate(cudaEvent_t *event); +# 3511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +# 3552 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3600 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned int flags = 0); +# 3633 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventQuery(cudaEvent_t event); +# 3664 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3694 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3787 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime_v2(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc); +# 4023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedBuffer(void **devPtr, cudaExternalMemory_t extMem, const struct cudaExternalMemoryBufferDesc *bufferDesc); +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t *mipmap, cudaExternalMemory_t extMem, const struct cudaExternalMemoryMipmappedArrayDesc *mipmapDesc); +# 4107 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t *extSem_out, const struct cudaExternalSemaphoreHandleDesc *semHandleDesc); +# 4344 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreSignalParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 4420 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreWaitParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 4443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t *config, const void *func, void **args); +# 4632 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4733 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaLaunchCooperativeKernelMultiDevice(struct cudaLaunchParams *launchParamsList, unsigned int numDevices, unsigned int flags = 0); +# 4783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFuncSetCacheConfig(const void *func, enum cudaFuncCache cacheConfig); +# 4818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +# 4877 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncSetAttribute(const void *func, enum cudaFuncAttribute attr, int value); +# 4903 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetName(const char **name, const void *func); +# 4926 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetParamInfo(const void *func, size_t paramIndex, size_t *paramOffset, size_t *paramSize); +# 4950 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForDevice(double *d); +# 4974 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForHost(double *d); +# 5040 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void *userData); +# 5114 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig(const void *func, enum cudaSharedMemConfig config); +# 5171 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize); +# 5201 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t *dynamicSmemSize, const void *func, int numBlocks, int blockSize); +# 5247 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize, unsigned int flags); +# 5283 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxPotentialClusterSize(int *clusterSize, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5323 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveClusters(int *numClusters, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags = 0x01); +# 5476 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +# 5513 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocHost(void **ptr, size_t size); +# 5556 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height); +# 5608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocArray(cudaArray_t *array, const struct cudaChannelFormatDesc *desc, size_t width, size_t height = 0, unsigned int flags = 0); +# 5647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +# 5670 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeHost(void *ptr); +# 5693 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeArray(cudaArray_t array); +# 5716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostAlloc(void **pHost, size_t size, unsigned int flags); +# 5879 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostRegister(void *ptr, size_t size, unsigned int flags); +# 5902 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostUnregister(void *ptr); +# 5947 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags); +# 5969 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetFlags(unsigned int *pFlags, void *pHost); +# 6008 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3D(struct cudaPitchedPtr* pitchedDevPtr, struct cudaExtent extent); +# 6153 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3DArray(cudaArray_t *array, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int flags = 0); +# 6298 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t *mipmappedArray, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int numLevels, unsigned int flags = 0); +# 6331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t *levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned int level); +# 6436 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3D(const struct cudaMemcpy3DParms *p); +# 6468 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p); +# 6586 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream = 0); +# 6613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeerAsync(const struct cudaMemcpy3DPeerParms *p, cudaStream_t stream = 0); +# 6647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemGetInfo(size_t *free, size_t *total); +# 6673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetInfo(struct cudaChannelFormatDesc *desc, struct cudaExtent *extent, unsigned int *flags, cudaArray_t array); +# 6702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetPlane(cudaArray_t *pPlaneArray, cudaArray_t hArray, unsigned int planeIdx); +# 6725 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaArray_t array, int device); +# 6749 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6777 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaArray_t array); +# 6807 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaMipmappedArray_t mipmap); +# 6852 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind); +# 6887 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count); +# 6936 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6986 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 7036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArray(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind); +# 7083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbol(const void *symbol, const void *src, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 7170 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbol(void *dst, const void *symbol, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 7227 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7262 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeerAsync(void *dst, int dstDevice, const void *src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 7334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyBatchAsync(void **dsts, void **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes *attrs, size_t *attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t stream); +# 7402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DBatchAsync(size_t numOps, struct cudaMemcpy3DBatchOp *opList, size_t *failIdx, unsigned long long flags, cudaStream_t stream); +# 7465 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7523 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7580 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArrayAsync(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync(const void *symbol, const void *src, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7682 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync(void *dst, const void *symbol, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7711 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset(void *devPtr, int value, size_t count); +# 7745 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height); +# 7791 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent); +# 7827 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7868 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7921 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream = 0); +# 7949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolAddress(void **devPtr, const void *symbol); +# 7976 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolSize(size_t *size, const void *symbol); +# 8048 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync(const void *devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 8129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync_v2(const void *devPtr, size_t count, struct cudaMemLocation location, unsigned int flags, cudaStream_t stream = 0); +# 8243 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, int device); +# 8366 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise_v2(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, struct cudaMemLocation location); +# 8448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttribute(void *data, size_t dataSize, enum cudaMemRangeAttribute attribute, const void *devPtr, size_t count); +# 8491 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttributes(void **data, size_t *dataSizes, enum cudaMemRangeAttribute *attributes, size_t numAttributes, const void *devPtr, size_t count); +# 8551 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind); +# 8593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArray(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind); +# 8636 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 8687 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArrayAsync(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8806 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocAsync(void **devPtr, size_t size, cudaStream_t hStream); +# 8832 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeAsync(void *devPtr, cudaStream_t hStream); +# 8857 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8964 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const struct cudaMemAccessDesc *descList, size_t count); +# 8977 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAccess(enum cudaMemAccessFlags *flags, cudaMemPool_t memPool, struct cudaMemLocation *location); +# 9021 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolCreate(cudaMemPool_t *memPool, const struct cudaMemPoolProps *poolProps); +# 9043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 9079 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocFromPoolAsync(void **ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 9104 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportToShareableHandle( + void *shareableHandle, + cudaMemPool_t memPool, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 9131 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportFromShareableHandle( + cudaMemPool_t *memPool, + void *shareableHandle, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 9154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportPointer(struct cudaMemPoolPtrExportData *exportData, void *ptr); +# 9183 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportPointer(void **ptr, cudaMemPool_t memPool, struct cudaMemPoolPtrExportData *exportData); +# 9336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr); +# 9377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice); +# 9419 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags); +# 9441 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9505 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9540 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned int flags); +# 9579 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9646 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, cudaGraphicsResource_t resource); +# 9684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t *array, cudaGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel); +# 9713 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t *mipmappedArray, cudaGraphicsResource_t resource); +# 9748 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetChannelDesc(struct cudaChannelFormatDesc *desc, cudaArray_const_t array); +# 9778 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) struct cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, enum cudaChannelFormatKind f); +# 10003 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateTextureObject(cudaTextureObject_t *pTexObject, const struct cudaResourceDesc *pResDesc, const struct cudaTextureDesc *pTexDesc, const struct cudaResourceViewDesc *pResViewDesc); +# 10023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 10043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaTextureObject_t texObject); +# 10063 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc(struct cudaTextureDesc *pTexDesc, cudaTextureObject_t texObject); +# 10084 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceViewDesc(struct cudaResourceViewDesc *pResViewDesc, cudaTextureObject_t texObject); +# 10129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t *pSurfObject, const struct cudaResourceDesc *pResDesc); +# 10149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 10168 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSurfaceObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaSurfaceObject_t surfObject); +# 10202 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDriverGetVersion(int *driverVersion); +# 10231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 10278 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphCreate(cudaGraph_t *pGraph, unsigned int flags); +# 10377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaKernelNodeParams *pNodeParams); +# 10410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, struct cudaKernelNodeParams *pNodeParams); +# 10437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 10457 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeCopyAttributes( + cudaGraphNode_t hSrc, + cudaGraphNode_t hDst); +# 10480 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 10504 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 10555 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemcpy3DParms *pCopyParams); +# 10614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10751 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode1D( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, struct cudaMemcpy3DParms *pNodeParams); +# 10810 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 10849 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10895 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10941 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams1D( + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemsetParams *pMemsetParams); +# 11012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, struct cudaMemsetParams *pNodeParams); +# 11036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 11078 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddHostNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaHostNodeParams *pNodeParams); +# 11101 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, struct cudaHostNodeParams *pNodeParams); +# 11125 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 11166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 11193 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t *pGraph); +# 11231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies); +# 11275 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11302 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11330 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11404 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11432 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11482 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11515 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreSignalNodeParams *params_out); +# 11543 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11626 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreWaitNodeParams *params_out); +# 11654 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11732 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaMemAllocNodeParams *nodeParams); +# 11759 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, struct cudaMemAllocNodeParams *params_out); +# 11820 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, void *dptr); +# 11844 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void *dptr_out); +# 11872 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGraphMemTrim(int device); +# 11909 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11943 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphClone(cudaGraph_t *pGraphClone, cudaGraph_t originalGraph); +# 11999 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t *pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 12030 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, enum cudaGraphNodeType *pType); +# 12061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t *nodes, size_t *numNodes); +# 12092 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t *pRootNodes, size_t *pNumRootNodes); +# 12126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, size_t *numEdges); +# 12166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges_v2(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, cudaGraphEdgeData *edgeData, size_t *numEdges); +# 12197 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, size_t *pNumDependencies); +# 12234 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, cudaGraphEdgeData *edgeData, size_t *pNumDependencies); +# 12266 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, size_t *pNumDependentNodes); +# 12304 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, cudaGraphEdgeData *edgeData, size_t *pNumDependentNodes); +# 12335 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 12367 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, const cudaGraphEdgeData *edgeData, size_t numDependencies); +# 12398 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 12433 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, const cudaGraphEdgeData *edgeData, size_t numDependencies); +# 12463 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12534 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiate(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12607 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams *instantiateParams); +# 12739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long *flags); +# 12799 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 12850 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 12905 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 12968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 13029 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams1D( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 13088 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 13128 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 13175 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 13220 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13265 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13313 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 13361 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 13401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int isEnabled); +# 13435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int *isEnabled); +# 13529 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo *resultInfo); +# 13554 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13629 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13648 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char *path, unsigned int flags); +# 13684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectCreate(cudaUserObject_t *object_out, void *ptr, cudaHostFn_t destroy, unsigned int initialRefcount, unsigned int flags); +# 13708 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned int count = 1); +# 13736 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned int count = 1); +# 13764 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1, unsigned int flags = 0); +# 13789 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1); +# 13831 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaGraphNodeParams *nodeParams); +# 13875 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddNode_v2(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, struct cudaGraphNodeParams *nodeParams); +# 13904 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13953 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13980 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphConditionalHandleCreate(cudaGraphConditionalHandle *pHandle_out, cudaGraph_t graph, unsigned int defaultLaunchValue = 0, unsigned int flags = 0); +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPoint(const char *symbol, void **funcPtr, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 3 4 + __null +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + ); +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPointByVersion(const char *symbol, void **funcPtr, unsigned int cudaVersion, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 3 4 + __null +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + ); +# 14212 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryLoadData(cudaLibrary_t *library, const void *code, + enum cudaJitOption *jitOptions, void **jitOptionsValues, unsigned int numJitOptions, + enum cudaLibraryOption *libraryOptions, void** libraryOptionValues, unsigned int numLibraryOptions); +# 14272 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryLoadFromFile(cudaLibrary_t *library, const char *fileName, + enum cudaJitOption *jitOptions, void **jitOptionsValues, unsigned int numJitOptions, + enum cudaLibraryOption *libraryOptions, void **libraryOptionValues, unsigned int numLibraryOptions); +# 14293 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryUnload(cudaLibrary_t library); +# 14318 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetKernel(cudaKernel_t *pKernel, cudaLibrary_t library, const char *name); +# 14352 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetGlobal(void **dptr, size_t *bytes, cudaLibrary_t library, const char *name); +# 14385 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetManaged(void **dptr, size_t *bytes, cudaLibrary_t library, const char *name); +# 14412 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetUnifiedFunction(void **fptr, cudaLibrary_t library, const char *symbol); +# 14434 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetKernelCount(unsigned int *count, cudaLibrary_t lib); +# 14456 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryEnumerateKernels(cudaKernel_t *kernels, unsigned int numKernels, cudaLibrary_t lib); +# 14525 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaKernelSetAttributeForDevice(cudaKernel_t kernel, enum cudaFuncAttribute attr, int value, int device); + + + + +extern __attribute__((host)) cudaError_t cudaGetExportTable(const void **ppExportTable, const cudaUUID_t *pExportTableId); +# 14716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetFuncBySymbol(cudaFunction_t* functionPtr, const void* symbolPtr); +# 14740 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetKernel(cudaKernel_t *kernelPtr, const void *entryFuncAddr); +# 14918 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +} +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" 2 +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf1(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf2(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf4(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(char) * 8; + + + + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); + +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescNV12(void) +{ + int e = (int)sizeof(char) * 8; + + return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +} + +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(10, 10, 10, 2, cudaChannelFormatKindUnsignedNormalized1010102); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +} +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 1 +# 53 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 55 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 2 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +{ + struct cudaPitchedPtr s; + + s.ptr = d; + s.pitch = p; + s.xsize = xsz; + s.ysize = ysz; + + return s; +} +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaPos make_cudaPos(size_t x, size_t y, size_t z) +{ + struct cudaPos p; + + p.x = x; + p.y = y; + p.z = z; + + return p; +} +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +{ + struct cudaExtent e; + + e.width = w; + e.height = h; + e.depth = d; + + return e; +} +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x); + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y); + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x); + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y); + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x); + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x); + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y); + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y); + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z); + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z); + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w); + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w); + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x); + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y); + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z); + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x); + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y); + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z); + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w); + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x) +{ + char1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x) +{ + uchar1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y) +{ + char2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y) +{ + uchar2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z) +{ + char3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +{ + uchar3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w) +{ + char4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + uchar4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x) +{ + short1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x) +{ + ushort1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y) +{ + short2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y) +{ + ushort2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z) +{ + short3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +{ + ushort3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w) +{ + short4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +{ + ushort4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x) +{ + int1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x) +{ + uint1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y) +{ + int2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y) +{ + uint2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z) +{ + int3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z) +{ + uint3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w) +{ + int4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w) +{ + uint4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x) +{ + long1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x) +{ + ulong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y) +{ + long2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y) +{ + ulong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z) +{ + long3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z) +{ + ulong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w) +{ + long4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w) +{ + ulong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x) +{ + float1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y) +{ + float2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z) +{ + float3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w) +{ + float4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x) +{ + longlong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x) +{ + ulonglong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y) +{ + longlong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y) +{ + ulonglong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z) +{ + longlong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z) +{ + ulonglong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w) +{ + longlong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w) +{ + ulonglong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x) +{ + double1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y) +{ + double2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z) +{ + double3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w) +{ + double4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" 2 +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 1 +# 71 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 72 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/usr/include/string.h" 1 3 4 +# 26 "/usr/include/string.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/string.h" 2 3 4 + + +# 28 "/usr/include/string.h" 3 4 +extern "C" { + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 34 "/usr/include/string.h" 2 3 4 +# 43 "/usr/include/string.h" 3 4 +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, + size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, const void *__src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memccpy (void *__restrict __dest, const void *__restrict __src, + int __c, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4))); + + + + +extern void *memset (void *__s, int __c, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 80 "/usr/include/string.h" 3 4 +extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern "C++" +{ +extern void *memchr (void *__s, int __c, size_t __n) + noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const void *memchr (const void *__s, int __c, size_t __n) + noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 105 "/usr/include/string.h" 3 4 +} +# 115 "/usr/include/string.h" 3 4 +extern "C++" void *rawmemchr (void *__s, int __c) + noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *rawmemchr (const void *__s, int __c) + noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" void *memrchr (void *__s, int __c, size_t __n) + noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_only__, 1, 3))); +extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) + noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_only__, 1, 3))); +# 141 "/usr/include/string.h" 3 4 +extern char *strcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, const char *__restrict __src, + size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (const char *__s1, const char *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3))); + + + + + + +extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, + locale_t __l) noexcept (true) __attribute__ ((__nonnull__ (2, 4))) + __attribute__ ((__access__ (__write_only__, 1, 3))); + + + + + +extern char *strdup (const char *__s) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (const char *__string, size_t __n) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 224 "/usr/include/string.h" 3 4 +extern "C++" +{ +extern char *strchr (char *__s, int __c) + noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strchr (const char *__s, int __c) + noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 244 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strrchr (char *__s, int __c) + noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strrchr (const char *__s, int __c) + noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 271 "/usr/include/string.h" 3 4 +} +# 281 "/usr/include/string.h" 3 4 +extern "C++" char *strchrnul (char *__s, int __c) + noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const char *strchrnul (const char *__s, int __c) + noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 293 "/usr/include/string.h" 3 4 +extern size_t strcspn (const char *__s, const char *__reject) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (const char *__s, const char *__accept) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern "C++" +{ +extern char *strpbrk (char *__s, const char *__accept) + noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strpbrk (const char *__s, const char *__accept) + noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 321 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strstr (char *__haystack, const char *__needle) + noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strstr (const char *__haystack, const char *__needle) + noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 348 "/usr/include/string.h" 3 4 +} + + + + + + + +extern char *strtok (char *__restrict __s, const char *__restrict __delim) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + + +extern char *__strtok_r (char *__restrict __s, + const char *__restrict __delim, + char **__restrict __save_ptr) + noexcept (true) __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, + char **__restrict __save_ptr) + noexcept (true) __attribute__ ((__nonnull__ (2, 3))); + + + + + +extern "C++" char *strcasestr (char *__haystack, const char *__needle) + noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern "C++" const char *strcasestr (const char *__haystack, + const char *__needle) + noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 389 "/usr/include/string.h" 3 4 +extern void *memmem (const void *__haystack, size_t __haystacklen, + const void *__needle, size_t __needlelen) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))) + __attribute__ ((__access__ (__read_only__, 1, 2))) + __attribute__ ((__access__ (__read_only__, 3, 4))); + + + +extern void *__mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern void *mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlen (const char *__s) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern size_t strnlen (const char *__string, size_t __maxlen) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern char *strerror (int __errnum) noexcept (true); +# 444 "/usr/include/string.h" 3 4 +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); + + + + +extern const char *strerrordesc_np (int __err) noexcept (true); + +extern const char *strerrorname_np (int __err) noexcept (true); + + + + + +extern char *strerror_l (int __errnum, locale_t __l) noexcept (true); + + + +# 1 "/usr/include/strings.h" 1 3 4 +# 23 "/usr/include/strings.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 24 "/usr/include/strings.h" 2 3 4 + + + + + + +extern "C" { + + + +extern int bcmp (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bcopy (const void *__src, void *__dest, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern "C++" +{ +extern char *index (char *__s, int __c) + noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *index (const char *__s, int __c) + noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 66 "/usr/include/strings.h" 3 4 +} + + + + + + + +extern "C++" +{ +extern char *rindex (char *__s, int __c) + noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *rindex (const char *__s, int __c) + noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 94 "/usr/include/strings.h" 3 4 +} +# 104 "/usr/include/strings.h" 3 4 +extern int ffs (int __i) noexcept (true) __attribute__ ((__const__)); + + + + + +extern int ffsl (long int __l) noexcept (true) __attribute__ ((__const__)); +__extension__ extern int ffsll (long long int __ll) + noexcept (true) __attribute__ ((__const__)); + + + +extern int strcasecmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + + +extern int strncasecmp_l (const char *__s1, const char *__s2, + size_t __n, locale_t __loc) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); + + +} +# 463 "/usr/include/string.h" 2 3 4 + + + +extern void explicit_bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__write_only__, 1, 2))); + + + +extern char *strsep (char **__restrict __stringp, + const char *__restrict __delim) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) noexcept (true); + + + +extern const char *sigabbrev_np (int __sig) noexcept (true); + + +extern const char *sigdescr_np (int __sig) noexcept (true); + + + +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlcpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); + + + +extern size_t strlcat (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); + + + + +extern int strverscmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strfry (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void *memfrob (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_write__, 1, 2))); + + + + + + + +extern "C++" char *basename (char *__filename) + noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); +extern "C++" const char *basename (const char *__filename) + noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); +# 552 "/usr/include/string.h" 3 4 +} +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/usr/include/time.h" 1 3 4 +# 29 "/usr/include/time.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 30 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 73 "/usr/include/bits/time.h" 3 4 +# 1 "/usr/include/bits/timex.h" 1 3 4 +# 26 "/usr/include/bits/timex.h" 3 4 +struct timex +{ +# 58 "/usr/include/bits/timex.h" 3 4 + unsigned int modes; + __syscall_slong_t offset; + __syscall_slong_t freq; + __syscall_slong_t maxerror; + __syscall_slong_t esterror; + int status; + __syscall_slong_t constant; + __syscall_slong_t precision; + __syscall_slong_t tolerance; + struct timeval time; + __syscall_slong_t tick; + __syscall_slong_t ppsfreq; + __syscall_slong_t jitter; + int shift; + __syscall_slong_t stabil; + __syscall_slong_t jitcnt; + __syscall_slong_t calcnt; + __syscall_slong_t errcnt; + __syscall_slong_t stbcnt; + + int tai; + + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; + +}; +# 74 "/usr/include/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __attribute__ ((__nonnull__ (2))); +# 90 "/usr/include/bits/time.h" 3 4 +} +# 34 "/usr/include/time.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/types/struct_tm.h" 1 3 4 + + + + + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + const char *tm_zone; + + + + +}; +# 40 "/usr/include/time.h" 2 3 4 +# 48 "/usr/include/time.h" 3 4 +# 1 "/usr/include/bits/types/struct_itimerspec.h" 1 3 4 + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; +# 49 "/usr/include/time.h" 2 3 4 +struct sigevent; +# 68 "/usr/include/time.h" 3 4 +extern "C" { + + + +extern clock_t clock (void) noexcept (true); + + + +extern time_t time (time_t *__timer) noexcept (true); + + +extern double difftime (time_t __time1, time_t __time0); + + +extern time_t mktime (struct tm *__tp) noexcept (true); +# 99 "/usr/include/time.h" 3 4 +extern size_t strftime (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp) + noexcept (true) __attribute__ ((__nonnull__ (1, 3, 4))); + + + + +extern char *strptime (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp) + noexcept (true); + + + + + + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp, + locale_t __loc) noexcept (true); + + + +extern char *strptime_l (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp, + locale_t __loc) noexcept (true); + + + + + + +extern struct tm *gmtime (const time_t *__timer) noexcept (true); + + + +extern struct tm *localtime (const time_t *__timer) noexcept (true); +# 154 "/usr/include/time.h" 3 4 +extern struct tm *gmtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) noexcept (true); + + + +extern struct tm *localtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) noexcept (true); +# 179 "/usr/include/time.h" 3 4 +extern char *asctime (const struct tm *__tp) noexcept (true); + + + +extern char *ctime (const time_t *__timer) noexcept (true); +# 197 "/usr/include/time.h" 3 4 +extern char *asctime_r (const struct tm *__restrict __tp, + char *__restrict __buf) noexcept (true); + + + +extern char *ctime_r (const time_t *__restrict __timer, + char *__restrict __buf) noexcept (true); +# 217 "/usr/include/time.h" 3 4 +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) noexcept (true); + + + +extern int daylight; +extern long int timezone; +# 246 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) noexcept (true); +# 263 "/usr/include/time.h" 3 4 +extern time_t timelocal (struct tm *__tp) noexcept (true); + + + + + + + +extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); +# 281 "/usr/include/time.h" 3 4 +extern int nanosleep (const struct timespec *__requested_time, + struct timespec *__remaining); + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) noexcept (true); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + noexcept (true) __attribute__ ((__nonnull__ (2))); +# 323 "/usr/include/time.h" 3 4 +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); +# 338 "/usr/include/time.h" 3 4 +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) noexcept (true); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) noexcept (true); + + +extern int timer_delete (timer_t __timerid) noexcept (true); + + + +extern int timer_settime (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) noexcept (true); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + noexcept (true); +# 376 "/usr/include/time.h" 3 4 +extern int timer_getoverrun (timer_t __timerid) noexcept (true); + + + + + + +extern int timespec_get (struct timespec *__ts, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 399 "/usr/include/time.h" 3 4 +extern int timespec_getres (struct timespec *__ts, int __base) + noexcept (true); +# 425 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 434 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 448 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 87 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 + + +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" +{ + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) clock_t clock(void) + + + + +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 +noexcept (true) +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memset(void*, int, size_t) +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memcpy(void*, const void*, size_t) +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; + +} +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 1 3 +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 3 + +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 1 3 +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 3 + +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 3 + + + + +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 3 +extern "C++" { + +namespace std __attribute__ ((__visibility__ ("default"))) +{ +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception.h" 3 + class exception + { + public: + exception() noexcept { } + virtual ~exception() noexcept; + + exception(const exception&) = default; + exception& operator=(const exception&) = default; + exception(exception&&) = default; + exception& operator=(exception&&) = default; + + + + + virtual const char* + what() const noexcept; + }; + + + +} + +} +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 2 3 + +#pragma GCC visibility push(default) + +extern "C++" { + +namespace std +{ + + + + + + + class bad_alloc : public exception + { + public: + bad_alloc() throw() { } + + + bad_alloc(const bad_alloc&) = default; + bad_alloc& operator=(const bad_alloc&) = default; + + + + + virtual ~bad_alloc() throw(); + + + virtual const char* what() const throw(); + }; + + + class bad_array_new_length : public bad_alloc + { + public: + bad_array_new_length() throw() { } + + + + virtual ~bad_array_new_length() throw(); + + + virtual const char* what() const throw(); + }; + + + + enum class align_val_t: size_t {}; + + + struct nothrow_t + { + + explicit nothrow_t() = default; + + }; + + extern const nothrow_t nothrow; + + + + typedef void (*new_handler)(); + + + + new_handler set_new_handler(new_handler) throw(); + + + + new_handler get_new_handler() noexcept; + +} +# 131 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 3 +[[__nodiscard__]] void* operator new(std::size_t) + __attribute__((__externally_visible__)); +[[__nodiscard__]] void* operator new[](std::size_t) + __attribute__((__externally_visible__)); +void operator delete(void*) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*) noexcept + __attribute__((__externally_visible__)); + +void operator delete(void*, std::size_t) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*, std::size_t) noexcept + __attribute__((__externally_visible__)); + +[[__nodiscard__]] void* operator new(std::size_t, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +[[__nodiscard__]] void* operator new[](std::size_t, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +void operator delete(void*, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); + +[[__nodiscard__]] void* operator new(std::size_t, std::align_val_t) + __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +[[__nodiscard__]] void* operator new(std::size_t, std::align_val_t, const std::nothrow_t&) + noexcept __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +void operator delete(void*, std::align_val_t) + noexcept __attribute__((__externally_visible__)); +void operator delete(void*, std::align_val_t, const std::nothrow_t&) + noexcept __attribute__((__externally_visible__)); +[[__nodiscard__]] void* operator new[](std::size_t, std::align_val_t) + __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +[[__nodiscard__]] void* operator new[](std::size_t, std::align_val_t, const std::nothrow_t&) + noexcept __attribute__((__externally_visible__, __alloc_size__ (1), __malloc__)); +void operator delete[](void*, std::align_val_t) + noexcept __attribute__((__externally_visible__)); +void operator delete[](void*, std::align_val_t, const std::nothrow_t&) + noexcept __attribute__((__externally_visible__)); + +void operator delete(void*, std::size_t, std::align_val_t) + noexcept __attribute__((__externally_visible__)); +void operator delete[](void*, std::size_t, std::align_val_t) + noexcept __attribute__((__externally_visible__)); + + + + +[[__nodiscard__]] inline void* operator new(std::size_t, void* __p) noexcept +{ return __p; } +[[__nodiscard__]] inline void* operator new[](std::size_t, void* __p) noexcept +{ return __p; } + + +inline void operator delete (void*, void*) noexcept { } +inline void operator delete[](void*, void*) noexcept { } + +} + + +namespace std +{ + + + template + [[nodiscard]] constexpr _Tp* + launder(_Tp* __p) noexcept + { return __builtin_launder(__p); } + + + + + template + void launder(_Ret (*)(_Args...) noexcept (_NE)) = delete; + template + void launder(_Ret (*)(_Args......) noexcept (_NE)) = delete; + + void launder(void*) = delete; + void launder(const void*) = delete; + void launder(volatile void*) = delete; + void launder(const volatile void*) = delete; + + + + inline constexpr size_t hardware_destructive_interference_size = 64; + inline constexpr size_t hardware_constructive_interference_size = 64; + +} +# 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/new" 3 +#pragma GCC visibility pop +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new(std:: size_t, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new[](std:: size_t, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, void*) throw(); + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std:: size_t) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std:: size_t) throw(); + + + + +# 1 "/usr/include/stdio.h" 1 3 4 +# 28 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 29 "/usr/include/stdio.h" 2 3 4 + + +# 30 "/usr/include/stdio.h" 3 4 +extern "C" { + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 35 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h" 1 3 4 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h" 3 4 +typedef __builtin_va_list __gnuc_va_list; +# 38 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/bits/types/__fpos_t.h" 1 3 4 + + + + +# 1 "/usr/include/bits/types/__mbstate_t.h" 1 3 4 +# 13 "/usr/include/bits/types/__mbstate_t.h" 3 4 +typedef struct +{ + int __count; + union + { + unsigned int __wch; + char __wchb[4]; + } __value; +} __mbstate_t; +# 6 "/usr/include/bits/types/__fpos_t.h" 2 3 4 + + + + +typedef struct _G_fpos_t +{ + __off_t __pos; + __mbstate_t __state; +} __fpos_t; +# 41 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/bits/types/__fpos64_t.h" 1 3 4 +# 10 "/usr/include/bits/types/__fpos64_t.h" 3 4 +typedef struct _G_fpos64_t +{ + __off64_t __pos; + __mbstate_t __state; +} __fpos64_t; +# 42 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/bits/types/__FILE.h" 1 3 4 + + + +struct _IO_FILE; +typedef struct _IO_FILE __FILE; +# 43 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/bits/types/FILE.h" 1 3 4 + + + +struct _IO_FILE; + + +typedef struct _IO_FILE FILE; +# 44 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/bits/types/struct_FILE.h" 1 3 4 +# 36 "/usr/include/bits/types/struct_FILE.h" 3 4 +struct _IO_FILE; +struct _IO_marker; +struct _IO_codecvt; +struct _IO_wide_data; + + + + +typedef void _IO_lock_t; + + + + + +struct _IO_FILE +{ + int _flags; + + + char *_IO_read_ptr; + char *_IO_read_end; + char *_IO_read_base; + char *_IO_write_base; + char *_IO_write_ptr; + char *_IO_write_end; + char *_IO_buf_base; + char *_IO_buf_end; + + + char *_IO_save_base; + char *_IO_backup_base; + char *_IO_save_end; + + struct _IO_marker *_markers; + + struct _IO_FILE *_chain; + + int _fileno; + int _flags2:24; + + char _short_backupbuf[1]; + __off_t _old_offset; + + + unsigned short _cur_column; + signed char _vtable_offset; + char _shortbuf[1]; + + _IO_lock_t *_lock; + + + + + + + + __off64_t _offset; + + struct _IO_codecvt *_codecvt; + struct _IO_wide_data *_wide_data; + struct _IO_FILE *_freeres_list; + void *_freeres_buf; + struct _IO_FILE **_prevchain; + int _mode; + + char _unused2[15 * sizeof (int) - 5 * sizeof (void *)]; +}; +# 45 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/bits/types/cookie_io_functions_t.h" 1 3 4 +# 27 "/usr/include/bits/types/cookie_io_functions_t.h" 3 4 +typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, + size_t __nbytes); + + + + + + + +typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, + size_t __nbytes); + + + + + + + +typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); + + +typedef int cookie_close_function_t (void *__cookie); + + + + + + +typedef struct _IO_cookie_io_functions_t +{ + cookie_read_function_t *read; + cookie_write_function_t *write; + cookie_seek_function_t *seek; + cookie_close_function_t *close; +} cookie_io_functions_t; +# 48 "/usr/include/stdio.h" 2 3 4 + + + + + +typedef __gnuc_va_list va_list; +# 85 "/usr/include/stdio.h" 3 4 +typedef __fpos_t fpos_t; + + + + +typedef __fpos64_t fpos64_t; +# 129 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/bits/stdio_lim.h" 1 3 4 +# 130 "/usr/include/stdio.h" 2 3 4 +# 149 "/usr/include/stdio.h" 3 4 +extern FILE *stdin; +extern FILE *stdout; +extern FILE *stderr; + + + + + + +extern int remove (const char *__filename) noexcept (true); + +extern int rename (const char *__old, const char *__new) noexcept (true); + + + +extern int renameat (int __oldfd, const char *__old, int __newfd, + const char *__new) noexcept (true); +# 176 "/usr/include/stdio.h" 3 4 +extern int renameat2 (int __oldfd, const char *__old, int __newfd, + const char *__new, unsigned int __flags) noexcept (true); + + + + + + +extern int fclose (FILE *__stream) __attribute__ ((__nonnull__ (1))); +# 194 "/usr/include/stdio.h" 3 4 +extern FILE *tmpfile (void) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; +# 206 "/usr/include/stdio.h" 3 4 +extern FILE *tmpfile64 (void) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + +extern char *tmpnam (char[20]) noexcept (true) ; + + + + +extern char *tmpnam_r (char __s[20]) noexcept (true) ; +# 228 "/usr/include/stdio.h" 3 4 +extern char *tempnam (const char *__dir, const char *__pfx) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1))); + + + + + + +extern int fflush (FILE *__stream); +# 245 "/usr/include/stdio.h" 3 4 +extern int fflush_unlocked (FILE *__stream); +# 255 "/usr/include/stdio.h" 3 4 +extern int fcloseall (void); +# 264 "/usr/include/stdio.h" 3 4 +extern FILE *fopen (const char *__restrict __filename, + const char *__restrict __modes) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + + +extern FILE *freopen (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (3))); +# 289 "/usr/include/stdio.h" 3 4 +extern FILE *fopen64 (const char *__restrict __filename, + const char *__restrict __modes) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; +extern FILE *freopen64 (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (3))); + + + + +extern FILE *fdopen (int __fd, const char *__modes) noexcept (true) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + + + +extern FILE *fopencookie (void *__restrict __magic_cookie, + const char *__restrict __modes, + cookie_io_functions_t __io_funcs) noexcept (true) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + + +extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; + + + + +extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) noexcept (true) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; +# 334 "/usr/include/stdio.h" 3 4 +extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) noexcept (true) + __attribute__ ((__nonnull__ (1))); + + + +extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, + int __modes, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, + size_t __size) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void setlinebuf (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern int fprintf (FILE *__restrict __stream, + const char *__restrict __format, ...) __attribute__ ((__nonnull__ (1))); + + + + +extern int printf (const char *__restrict __format, ...); + +extern int sprintf (char *__restrict __s, + const char *__restrict __format, ...) noexcept (true); + + + + + +extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) __attribute__ ((__nonnull__ (1))); + + + + +extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); + +extern int vsprintf (char *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) noexcept (true); + + + +extern int snprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, ...) + noexcept (true) __attribute__ ((__format__ (__printf__, 3, 4))); + +extern int vsnprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, __gnuc_va_list __arg) + noexcept (true) __attribute__ ((__format__ (__printf__, 3, 0))); + + + + + +extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, + __gnuc_va_list __arg) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))) ; +extern int __asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) ; +extern int asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))) ; + + + + +extern int vdprintf (int __fd, const char *__restrict __fmt, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__printf__, 2, 0))); +extern int dprintf (int __fd, const char *__restrict __fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); + + + + + + + +extern int fscanf (FILE *__restrict __stream, + const char *__restrict __format, ...) __attribute__ ((__nonnull__ (1))); + + + + +extern int scanf (const char *__restrict __format, ...) ; + +extern int sscanf (const char *__restrict __s, + const char *__restrict __format, ...) noexcept (true); +# 442 "/usr/include/stdio.h" 3 4 +extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc23_fscanf") + + __attribute__ ((__nonnull__ (1))); +extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc23_scanf") + ; +extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc23_sscanf") + + ; +# 490 "/usr/include/stdio.h" 3 4 +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__nonnull__ (1))); + + + + + +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 1, 0))) ; + + +extern int vsscanf (const char *__restrict __s, + const char *__restrict __format, __gnuc_va_list __arg) + noexcept (true) __attribute__ ((__format__ (__scanf__, 2, 0))); + + + + + + +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vfscanf") + + + + __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__nonnull__ (1))); +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc23_vscanf") + + __attribute__ ((__format__ (__scanf__, 1, 0))) ; +extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc23_vsscanf") + + + + __attribute__ ((__format__ (__scanf__, 2, 0))); +# 575 "/usr/include/stdio.h" 3 4 +extern int fgetc (FILE *__stream) __attribute__ ((__nonnull__ (1))); +extern int getc (FILE *__stream) __attribute__ ((__nonnull__ (1))); + + + + + +extern int getchar (void); + + + + + + +extern int getc_unlocked (FILE *__stream) __attribute__ ((__nonnull__ (1))); +extern int getchar_unlocked (void); +# 600 "/usr/include/stdio.h" 3 4 +extern int fgetc_unlocked (FILE *__stream) __attribute__ ((__nonnull__ (1))); +# 611 "/usr/include/stdio.h" 3 4 +extern int fputc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); +extern int putc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); + + + + + +extern int putchar (int __c); +# 627 "/usr/include/stdio.h" 3 4 +extern int fputc_unlocked (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); + + + + + + + +extern int putc_unlocked (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); +extern int putchar_unlocked (int __c); + + + + + + +extern int getw (FILE *__stream) __attribute__ ((__nonnull__ (1))); + + +extern int putw (int __w, FILE *__stream) __attribute__ ((__nonnull__ (2))); + + + + + + + +extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + __attribute__ ((__access__ (__write_only__, 1, 2))) __attribute__ ((__nonnull__ (3))); +# 677 "/usr/include/stdio.h" 3 4 +extern char *fgets_unlocked (char *__restrict __s, int __n, + FILE *__restrict __stream) + __attribute__ ((__access__ (__write_only__, 1, 2))) __attribute__ ((__nonnull__ (3))); +# 689 "/usr/include/stdio.h" 3 4 +extern __ssize_t __getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (4))); +extern __ssize_t getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (4))); + + +extern __ssize_t getline (char **__restrict __lineptr, + size_t *__restrict __n, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (3))); + + + + + + + +extern int fputs (const char *__restrict __s, FILE *__restrict __stream) + __attribute__ ((__nonnull__ (2))); + + + + + +extern int puts (const char *__s); + + + + + + +extern int ungetc (int __c, FILE *__stream) __attribute__ ((__nonnull__ (2))); + + + + + + +extern size_t fread (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) + __attribute__ ((__nonnull__ (4))); + + + + +extern size_t fwrite (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __s) __attribute__ ((__nonnull__ (4))); +# 745 "/usr/include/stdio.h" 3 4 +extern int fputs_unlocked (const char *__restrict __s, + FILE *__restrict __stream) __attribute__ ((__nonnull__ (2))); +# 756 "/usr/include/stdio.h" 3 4 +extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) + __attribute__ ((__nonnull__ (4))); +extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) + __attribute__ ((__nonnull__ (4))); + + + + + + + +extern int fseek (FILE *__stream, long int __off, int __whence) + __attribute__ ((__nonnull__ (1))); + + + + +extern long int ftell (FILE *__stream) __attribute__ ((__nonnull__ (1))); + + + + +extern void rewind (FILE *__stream) __attribute__ ((__nonnull__ (1))); +# 793 "/usr/include/stdio.h" 3 4 +extern int fseeko (FILE *__stream, __off_t __off, int __whence) + __attribute__ ((__nonnull__ (1))); + + + + +extern __off_t ftello (FILE *__stream) __attribute__ ((__nonnull__ (1))); +# 819 "/usr/include/stdio.h" 3 4 +extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) + __attribute__ ((__nonnull__ (1))); + + + + +extern int fsetpos (FILE *__stream, const fpos_t *__pos) __attribute__ ((__nonnull__ (1))); +# 841 "/usr/include/stdio.h" 3 4 +extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) + __attribute__ ((__nonnull__ (1))); +extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__nonnull__ (1))); +extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos) + __attribute__ ((__nonnull__ (1))); +extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos) __attribute__ ((__nonnull__ (1))); + + + +extern void clearerr (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern int feof (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern int ferror (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern void clearerr_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); +extern int feof_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); +extern int ferror_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern void perror (const char *__s) __attribute__ ((__cold__)); + + + + +extern int fileno (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +extern int fileno_unlocked (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 887 "/usr/include/stdio.h" 3 4 +extern int pclose (FILE *__stream) __attribute__ ((__nonnull__ (1))); + + + + + +extern FILE *popen (const char *__command, const char *__modes) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ; + + + + + + +extern char *ctermid (char *__s) noexcept (true) + __attribute__ ((__access__ (__write_only__, 1))); + + + + + +extern char *cuserid (char *__s) + __attribute__ ((__access__ (__write_only__, 1))); + + + + +struct obstack; + + +extern int obstack_printf (struct obstack *__restrict __obstack, + const char *__restrict __format, ...) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 3))); +extern int obstack_vprintf (struct obstack *__restrict __obstack, + const char *__restrict __format, + __gnuc_va_list __args) + noexcept (true) __attribute__ ((__format__ (__printf__, 2, 0))); + + + + + + + +extern void flockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern int ftrylockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void funlockfile (FILE *__stream) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 949 "/usr/include/stdio.h" 3 4 +extern int __uflow (FILE *); +extern int __overflow (FILE *, int); +# 973 "/usr/include/stdio.h" 3 4 +} +# 137 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 + + + + + + +# 143 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" +{ +extern + + + + + + + +__attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int printf(const char*, ...); + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* malloc(size_t) +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void free(void*) +# 158 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 158 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +# 168 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +} + + + + + +# 1 "/usr/include/assert.h" 1 3 4 +# 64 "/usr/include/assert.h" 3 4 + +# 64 "/usr/include/assert.h" 3 4 +extern "C" { + + +extern void __assert_fail (const char *__assertion, const char *__file, + unsigned int __line, const char *__function) + noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + +extern void __assert_perror_fail (int __errnum, const char *__file, + unsigned int __line, const char *__function) + noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + + + +extern void __assert (const char *__assertion, const char *__file, int __line) + noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + +} +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 + + + +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" +{ +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void __assert_fail( + const char *, const char *, unsigned int, const char *) + +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; + + + + +} +# 267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new(std:: size_t) ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new[](std:: size_t) ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*) throw(); + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std:: size_t) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std:: size_t) throw(); + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new(std:: size_t, std::align_val_t); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new[](std:: size_t, std::align_val_t); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std::align_val_t) noexcept; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std::align_val_t) noexcept; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std:: size_t, std::align_val_t) noexcept; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std:: size_t, std::align_val_t) noexcept; +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 1 +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C" +{ +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int abs(int a) +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long int labs(long int a) +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long long int llabs(long long int a) +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fabs(double x) +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fabsf(float x) +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int min(const int a, const int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umin(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmin(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmin(const unsigned long long int a, const unsigned long long int b); +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fminf(float x, float y) +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmin(double x, double y) +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int max(const int a, const int b); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umax(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmax(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmax(const unsigned long long int a, const unsigned long long int b); +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaxf(float x, float y) +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmax(double, double) +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sin(double x) +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cos(double x) +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincos(double x, double *sptr, double *cptr) +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincosf(float x, float *sptr, float *cptr) +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tan(double x) +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sqrt(double x) +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rsqrt(double x); +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rsqrtf(float x); +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log2(double x) +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp2(double x) +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp2f(float x) +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp10(double x) +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp10f(float x) +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double expm1(double x) +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expm1f(float x) +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log2f(float x) +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log10(double x) +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log(double x) +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log1p(double x) +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log1pf(float x) +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double floor(double x) +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp(double x) +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cosh(double x) +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinh(double x) +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tanh(double x) +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acosh(double x) +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acoshf(float x) +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asinh(double x) +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinhf(float x) +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atanh(double x) +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanhf(float x) +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ldexp(double x, int exp) +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ldexpf(float x, int exp) +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double logb(double x) +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logbf(float x) +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogb(double x) +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogbf(float x) +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbn(double x, int n) +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalbnf(float x, int n) +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbln(double x, long int n) +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalblnf(float x, long int n) +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double frexp(double x, int *nptr) +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float frexpf(float x, int *nptr) +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double round(double x) +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float roundf(float x) +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lround(double x) +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lroundf(float x) +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llround(double x) +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llroundf(float x) +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1694 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rint(double x) +# 1694 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1694 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rintf(float x) +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrint(double x) +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrintf(float x) +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrint(double x) +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrintf(float x) +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nearbyint(double x) +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nearbyintf(float x) +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ceil(double x) +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double trunc(double x) +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float truncf(float x) +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fdim(double x, double y) +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fdimf(float x, float y) +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan2(double y, double x) +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan(double x) +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acos(double x) +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asin(double x) +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double hypot(double x, double y) +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rhypot(double x, double y) +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float hypotf(float x, float y) +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rhypotf(float x, float y) +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm3d(double a, double b, double c) +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm3d(double a, double b, double c) +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm4d(double a, double b, double c, double d) +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm4d(double a, double b, double c, double d) +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +__attribute__((device)) __attribute__((device_builtin)) double norm(int dim, double const * p) +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm(int dim, double const * p) +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnormf(int dim, float const * p) +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +__attribute__((device)) __attribute__((device_builtin)) float normf(int dim, float const * p) +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm3df(float a, float b, float c) +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm3df(float a, float b, float c) +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm4df(float a, float b, float c, float d) +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm4df(float a, float b, float c, float d) +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cbrt(double x) +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cbrtf(float x) +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2512 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rcbrt(double x); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rcbrtf(float x); +# 2556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinpi(double x) noexcept (true); +# 2579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinpif(float x) noexcept (true); +# 2601 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cospi(double x) noexcept (true); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cospif(float x) noexcept (true); +# 2636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospi(double x, double *sptr, double *cptr); +# 2649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospif(float x, float *sptr, float *cptr); +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double pow(double x, double y) +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double modf(double x, double *iptr) +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmod(double x, double y) +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remainder(double x, double y) +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remainderf(float x, float y) +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remquo(double x, double y, int *quo) +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remquof(float x, float y, int *quo) +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j0(double x) +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j0f(float x) +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j1(double x) +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j1f(float x) +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double jn(int n, double x) +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float jnf(int n, float x) +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y0(double x) +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y0f(float x) +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y1(double x) +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y1f(float x) +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double yn(int n, double x) +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ynf(int n, float x) +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i0(double x) +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i0f(float x) +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i1(double x) +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i1f(float x) +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erf(double x) +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erff(float x) +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfinv(double x); +# 3406 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfinvf(float x); +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfc(double x) +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcf(float x) +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double lgamma(double x) +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcinv(double x); +# 3534 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcinvf(float x); +# 3556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdfinv(double x); +# 3578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdfinvf(float x); +# 3597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdf(double x); +# 3616 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdff(float x); +# 3636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcx(double x); +# 3656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcxf(float x); +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float lgammaf(float x) +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tgamma(double x) +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tgammaf(float x) +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double copysign(double x, double y) +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float copysignf(float x, float y) +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nextafter(double x, double y) +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nextafterf(float x, float y) +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nan(const char *tagp) +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nanf(const char *tagp) +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinff(float) +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanf(float) +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finite(double) +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitef(float) +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbit(double) +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnan(double) +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinf(double) +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitf(float) +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fma(double x, double y, double z) +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaf(float x, float y, float z) +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitl(long double) +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitel(long double) +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinfl(long double) +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanl(long double) +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acosf(float x) +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinf(float x) +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanf(float x) +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atan2f(float y, float x) +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cosf(float x) +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinf(float x) +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanf(float x) +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float coshf(float x) +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinhf(float x) +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanhf(float x) +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logf(float x) +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expf(float x) +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log10f(float x) +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float modff(float x, float *iptr) +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float powf(float x, float y) +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sqrtf(float x) +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ceilf(float x) +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float floorf(float x) +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmodf(float x, float y) +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/requires_hosted.h" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 2 3 +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +extern "C++" { + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + struct __true_type { }; + struct __false_type { }; + + template + struct __truth_type + { typedef __false_type __type; }; + + template<> + struct __truth_type + { typedef __true_type __type; }; + + + + template + struct __traitor + { + enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; + typedef typename __truth_type<__value>::__type __type; + }; + + + template + struct __are_same + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __are_same<_Tp, _Tp> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_void + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_void + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_integer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 273 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +__extension__ template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; __extension__ template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template + struct __is_floating + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 367 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template + struct __is_pointer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __is_pointer<_Tp*> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_arithmetic + : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > + { }; + + + + + template + struct __is_scalar + : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > + { }; + + + + + template + struct __is_char + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_byte + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + enum class byte : unsigned char; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 471 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template struct iterator_traits; + + + template + struct __is_nonvolatile_trivially_copyable + { + enum { __value = __is_trivially_copyable(_Tp) }; + }; + + + + + template + struct __is_nonvolatile_trivially_copyable + { + enum { __value = 0 }; + }; + + + template + struct __memcpyable + { + enum { __value = 0 }; + }; + + template + struct __memcpyable<_Tp*, _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcpyable<_Tp*, const _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + + + + + + template + struct __memcmpable + { + enum { __value = 0 }; + }; + + + template + struct __memcmpable<_Tp*, _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcmpable + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcmpable<_Tp*, const _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + + + + + + + template::__value + + > + struct __is_memcmp_ordered + { + static const bool __value = _Tp(-1) > _Tp(1); + }; + + template + struct __is_memcmp_ordered<_Tp, false> + { + static const bool __value = false; + }; + + + template + struct __is_memcmp_ordered_with + { + static const bool __value = __is_memcmp_ordered<_Tp>::__value + && __is_memcmp_ordered<_Up>::__value; + }; + + template + struct __is_memcmp_ordered_with<_Tp, _Up, false> + { + static const bool __value = false; + }; +# 580 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template<> + struct __is_memcmp_ordered_with + { static constexpr bool __value = true; }; + + template + struct __is_memcmp_ordered_with<_Tp, std::byte, _SameSize> + { static constexpr bool __value = false; }; + + template + struct __is_memcmp_ordered_with + { static constexpr bool __value = false; }; + + + + + + template + struct __is_move_iterator + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + template + + inline _Iterator + __miter_base(_Iterator __it) + { return __it; } + + +} +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + + + + +extern "C++" { + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct __enable_if + { }; + + template + struct __enable_if + { typedef _Tp __type; }; + + + + template + struct __conditional_type + { typedef _Iftrue __type; }; + + template + struct __conditional_type + { typedef _Iffalse __type; }; + + + + template + struct __add_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned short __type; }; + + template<> + struct __add_unsigned + { typedef unsigned int __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __add_unsigned; + + template<> + struct __add_unsigned; + + + + template + struct __remove_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef short __type; }; + + template<> + struct __remove_unsigned + { typedef int __type; }; + + template<> + struct __remove_unsigned + { typedef long __type; }; + + template<> + struct __remove_unsigned + { typedef long long __type; }; + + + template<> + struct __remove_unsigned; + + template<> + struct __remove_unsigned; + + + + template + constexpr + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + constexpr + inline bool + __is_null_pointer(_Type) + { return false; } + + + constexpr bool + __is_null_pointer(std::nullptr_t) + { return true; } + + + + + template::__value> + struct __promote + { typedef double __type; }; + + + + + template + struct __promote<_Tp, false> + { }; + + template<> + struct __promote + { typedef long double __type; }; + + template<> + struct __promote + { typedef double __type; }; + + template<> + struct __promote + { typedef float __type; }; +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + template + using __promoted_t = decltype((typename __promote<_Tp>::__type(0) + ...)); + + + + template + using __promote_2 = __promote<__promoted_t<_Tp, _Up>>; + + template + using __promote_3 = __promote<__promoted_t<_Tp, _Up, _Vp>>; + + template + using __promote_4 = __promote<__promoted_t<_Tp, _Up, _Vp, _Wp>>; +# 269 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + +} +} +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + +# 1 "/usr/include/math.h" 1 3 4 +# 27 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/math.h" 2 3 4 + + + + + + +extern "C" { + + + + + +# 1 "/usr/include/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/bits/math-vector.h" 3 4 +# 1 "/usr/include/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/bits/math-vector.h" 2 3 4 +# 41 "/usr/include/math.h" 2 3 4 +# 156 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/flt-eval-method.h" 1 3 4 +# 157 "/usr/include/math.h" 2 3 4 +# 167 "/usr/include/math.h" 3 4 +typedef float float_t; +typedef double double_t; +# 208 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/fp-logb.h" 1 3 4 +# 209 "/usr/include/math.h" 2 3 4 +# 251 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/fp-fast.h" 1 3 4 +# 252 "/usr/include/math.h" 2 3 4 + + + +enum + { + FP_INT_UPWARD = + + 0, + FP_INT_DOWNWARD = + + 1, + FP_INT_TOWARDZERO = + + 2, + FP_INT_TONEARESTFROMZERO = + + 3, + FP_INT_TONEAREST = + + 4, + }; + + +# 1 "/usr/include/bits/mathcalls-macros.h" 1 3 4 +# 276 "/usr/include/math.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassify (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbit (double __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinf (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finite (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnan (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsig (double __x, double __y) noexcept (true); + + +extern int __issignaling (double __value) noexcept (true) + __attribute__ ((__const__)); +# 282 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern double acos (double __x) noexcept (true); extern double __acos (double __x) noexcept (true); + + extern double asin (double __x) noexcept (true); extern double __asin (double __x) noexcept (true); + + extern double atan (double __x) noexcept (true); extern double __atan (double __x) noexcept (true); + + extern double atan2 (double __y, double __x) noexcept (true); extern double __atan2 (double __y, double __x) noexcept (true); + + + extern double cos (double __x) noexcept (true); extern double __cos (double __x) noexcept (true); + + extern double sin (double __x) noexcept (true); extern double __sin (double __x) noexcept (true); + + extern double tan (double __x) noexcept (true); extern double __tan (double __x) noexcept (true); + + + +extern double acospi (double __x) noexcept (true); extern double __acospi (double __x) noexcept (true); + +extern double asinpi (double __x) noexcept (true); extern double __asinpi (double __x) noexcept (true); + +extern double atanpi (double __x) noexcept (true); extern double __atanpi (double __x) noexcept (true); + +extern double atan2pi (double __y, double __x) noexcept (true); extern double __atan2pi (double __y, double __x) noexcept (true); + + + extern double cospi (double __x) noexcept (true); extern double __cospi (double __x) noexcept (true); + + extern double sinpi (double __x) noexcept (true); extern double __sinpi (double __x) noexcept (true); + + extern double tanpi (double __x) noexcept (true); extern double __tanpi (double __x) noexcept (true); + + + + + + extern double cosh (double __x) noexcept (true); extern double __cosh (double __x) noexcept (true); + + extern double sinh (double __x) noexcept (true); extern double __sinh (double __x) noexcept (true); + + extern double tanh (double __x) noexcept (true); extern double __tanh (double __x) noexcept (true); + + + + extern void sincos (double __x, double *__sinx, double *__cosx) noexcept (true); extern void __sincos (double __x, double *__sinx, double *__cosx) noexcept (true) + ; + + + + + extern double acosh (double __x) noexcept (true); extern double __acosh (double __x) noexcept (true); + + extern double asinh (double __x) noexcept (true); extern double __asinh (double __x) noexcept (true); + + extern double atanh (double __x) noexcept (true); extern double __atanh (double __x) noexcept (true); + + + + + + extern double exp (double __x) noexcept (true); extern double __exp (double __x) noexcept (true); + + +extern double frexp (double __x, int *__exponent) noexcept (true); extern double __frexp (double __x, int *__exponent) noexcept (true); + + +extern double ldexp (double __x, int __exponent) noexcept (true); extern double __ldexp (double __x, int __exponent) noexcept (true); + + + extern double log (double __x) noexcept (true); extern double __log (double __x) noexcept (true); + + + extern double log10 (double __x) noexcept (true); extern double __log10 (double __x) noexcept (true); + + +extern double modf (double __x, double *__iptr) noexcept (true); extern double __modf (double __x, double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern double exp10 (double __x) noexcept (true); extern double __exp10 (double __x) noexcept (true); + + +extern double exp2m1 (double __x) noexcept (true); extern double __exp2m1 (double __x) noexcept (true); + + +extern double exp10m1 (double __x) noexcept (true); extern double __exp10m1 (double __x) noexcept (true); + + +extern double log2p1 (double __x) noexcept (true); extern double __log2p1 (double __x) noexcept (true); + + +extern double log10p1 (double __x) noexcept (true); extern double __log10p1 (double __x) noexcept (true); + + + extern double logp1 (double __x) noexcept (true); extern double __logp1 (double __x) noexcept (true); + + + + + extern double expm1 (double __x) noexcept (true); extern double __expm1 (double __x) noexcept (true); + + + extern double log1p (double __x) noexcept (true); extern double __log1p (double __x) noexcept (true); + + +extern double logb (double __x) noexcept (true); extern double __logb (double __x) noexcept (true); + + + + + extern double exp2 (double __x) noexcept (true); extern double __exp2 (double __x) noexcept (true); + + + extern double log2 (double __x) noexcept (true); extern double __log2 (double __x) noexcept (true); + + + + + + + extern double pow (double __x, double __y) noexcept (true); extern double __pow (double __x, double __y) noexcept (true); + + +extern double sqrt (double __x) noexcept (true); extern double __sqrt (double __x) noexcept (true); + + + + extern double hypot (double __x, double __y) noexcept (true); extern double __hypot (double __x, double __y) noexcept (true); + + + + + extern double cbrt (double __x) noexcept (true); extern double __cbrt (double __x) noexcept (true); + + + + + + +extern double ceil (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fabs (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double floor (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fmod (double __x, double __y) noexcept (true); extern double __fmod (double __x, double __y) noexcept (true); +# 216 "/usr/include/bits/mathcalls.h" 3 4 +extern int finite (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern double drem (double __x, double __y) noexcept (true); extern double __drem (double __x, double __y) noexcept (true); + + + +extern double significand (double __x) noexcept (true); extern double __significand (double __x) noexcept (true); + + + + + + +extern double copysign (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern double nan (const char *__tagb) noexcept (true); extern double __nan (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern double j0 (double) noexcept (true); extern double __j0 (double) noexcept (true); +extern double j1 (double) noexcept (true); extern double __j1 (double) noexcept (true); +extern double jn (int, double) noexcept (true); extern double __jn (int, double) noexcept (true); +extern double y0 (double) noexcept (true); extern double __y0 (double) noexcept (true); +extern double y1 (double) noexcept (true); extern double __y1 (double) noexcept (true); +extern double yn (int, double) noexcept (true); extern double __yn (int, double) noexcept (true); + + + + + + extern double erf (double) noexcept (true); extern double __erf (double) noexcept (true); + extern double erfc (double) noexcept (true); extern double __erfc (double) noexcept (true); +extern double lgamma (double) noexcept (true); extern double __lgamma (double) noexcept (true); + + + + +extern double tgamma (double) noexcept (true); extern double __tgamma (double) noexcept (true); + + + + + +extern double gamma (double) noexcept (true); extern double __gamma (double) noexcept (true); + + + + + + + +extern double lgamma_r (double, int *__signgamp) noexcept (true); extern double __lgamma_r (double, int *__signgamp) noexcept (true); + + + + + + +extern double rint (double __x) noexcept (true); extern double __rint (double __x) noexcept (true); + + +extern double nextafter (double __x, double __y) noexcept (true); extern double __nextafter (double __x, double __y) noexcept (true); + +extern double nexttoward (double __x, long double __y) noexcept (true); extern double __nexttoward (double __x, long double __y) noexcept (true); + + + + +extern double nextdown (double __x) noexcept (true); extern double __nextdown (double __x) noexcept (true); + +extern double nextup (double __x) noexcept (true); extern double __nextup (double __x) noexcept (true); + + + +extern double remainder (double __x, double __y) noexcept (true); extern double __remainder (double __x, double __y) noexcept (true); + + + +extern double scalbn (double __x, int __n) noexcept (true); extern double __scalbn (double __x, int __n) noexcept (true); + + + +extern int ilogb (double __x) noexcept (true); extern int __ilogb (double __x) noexcept (true); + + + + +extern long int llogb (double __x) noexcept (true); extern long int __llogb (double __x) noexcept (true); + + + + +extern double scalbln (double __x, long int __n) noexcept (true); extern double __scalbln (double __x, long int __n) noexcept (true); + + + +extern double nearbyint (double __x) noexcept (true); extern double __nearbyint (double __x) noexcept (true); + + + +extern double round (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern double trunc (double __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern double remquo (double __x, double __y, int *__quo) noexcept (true); extern double __remquo (double __x, double __y, int *__quo) noexcept (true); + + + + + + +extern long int lrint (double __x) noexcept (true); extern long int __lrint (double __x) noexcept (true); +__extension__ +extern long long int llrint (double __x) noexcept (true); extern long long int __llrint (double __x) noexcept (true); + + + +extern long int lround (double __x) noexcept (true); extern long int __lround (double __x) noexcept (true); +__extension__ +extern long long int llround (double __x) noexcept (true); extern long long int __llround (double __x) noexcept (true); + + + +extern double fdim (double __x, double __y) noexcept (true); extern double __fdim (double __x, double __y) noexcept (true); + + + +extern double fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmin (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + +extern double fma (double __x, double __y, double __z) noexcept (true); extern double __fma (double __x, double __y, double __z) noexcept (true); + + + + +extern double roundeven (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalize (double *__cx, const double *__x) noexcept (true); + + + + + + +extern double fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern double fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorder (const double *__x, const double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermag (const double *__x, const double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern double getpayload (const double *__x) noexcept (true); extern double __getpayload (const double *__x) noexcept (true); + + +extern int setpayload (double *__x, double __payload) noexcept (true); + + +extern int setpayloadsig (double *__x, double __payload) noexcept (true); + + + + + + + +extern double scalb (double __x, double __n) noexcept (true); extern double __scalb (double __x, double __n) noexcept (true); +# 283 "/usr/include/math.h" 2 3 4 +# 298 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitf (float __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinff (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitef (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanf (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigf (float __x, float __y) noexcept (true); + + +extern int __issignalingf (float __value) noexcept (true) + __attribute__ ((__const__)); +# 299 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern float acosf (float __x) noexcept (true); extern float __acosf (float __x) noexcept (true); + + extern float asinf (float __x) noexcept (true); extern float __asinf (float __x) noexcept (true); + + extern float atanf (float __x) noexcept (true); extern float __atanf (float __x) noexcept (true); + + extern float atan2f (float __y, float __x) noexcept (true); extern float __atan2f (float __y, float __x) noexcept (true); + + + extern float cosf (float __x) noexcept (true); extern float __cosf (float __x) noexcept (true); + + extern float sinf (float __x) noexcept (true); extern float __sinf (float __x) noexcept (true); + + extern float tanf (float __x) noexcept (true); extern float __tanf (float __x) noexcept (true); + + + +extern float acospif (float __x) noexcept (true); extern float __acospif (float __x) noexcept (true); + +extern float asinpif (float __x) noexcept (true); extern float __asinpif (float __x) noexcept (true); + +extern float atanpif (float __x) noexcept (true); extern float __atanpif (float __x) noexcept (true); + +extern float atan2pif (float __y, float __x) noexcept (true); extern float __atan2pif (float __y, float __x) noexcept (true); + + + extern float cospif (float __x) noexcept (true); extern float __cospif (float __x) noexcept (true); + + extern float sinpif (float __x) noexcept (true); extern float __sinpif (float __x) noexcept (true); + + extern float tanpif (float __x) noexcept (true); extern float __tanpif (float __x) noexcept (true); + + + + + + extern float coshf (float __x) noexcept (true); extern float __coshf (float __x) noexcept (true); + + extern float sinhf (float __x) noexcept (true); extern float __sinhf (float __x) noexcept (true); + + extern float tanhf (float __x) noexcept (true); extern float __tanhf (float __x) noexcept (true); + + + + extern void sincosf (float __x, float *__sinx, float *__cosx) noexcept (true); extern void __sincosf (float __x, float *__sinx, float *__cosx) noexcept (true) + ; + + + + + extern float acoshf (float __x) noexcept (true); extern float __acoshf (float __x) noexcept (true); + + extern float asinhf (float __x) noexcept (true); extern float __asinhf (float __x) noexcept (true); + + extern float atanhf (float __x) noexcept (true); extern float __atanhf (float __x) noexcept (true); + + + + + + extern float expf (float __x) noexcept (true); extern float __expf (float __x) noexcept (true); + + +extern float frexpf (float __x, int *__exponent) noexcept (true); extern float __frexpf (float __x, int *__exponent) noexcept (true); + + +extern float ldexpf (float __x, int __exponent) noexcept (true); extern float __ldexpf (float __x, int __exponent) noexcept (true); + + + extern float logf (float __x) noexcept (true); extern float __logf (float __x) noexcept (true); + + + extern float log10f (float __x) noexcept (true); extern float __log10f (float __x) noexcept (true); + + +extern float modff (float __x, float *__iptr) noexcept (true); extern float __modff (float __x, float *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern float exp10f (float __x) noexcept (true); extern float __exp10f (float __x) noexcept (true); + + +extern float exp2m1f (float __x) noexcept (true); extern float __exp2m1f (float __x) noexcept (true); + + +extern float exp10m1f (float __x) noexcept (true); extern float __exp10m1f (float __x) noexcept (true); + + +extern float log2p1f (float __x) noexcept (true); extern float __log2p1f (float __x) noexcept (true); + + +extern float log10p1f (float __x) noexcept (true); extern float __log10p1f (float __x) noexcept (true); + + + extern float logp1f (float __x) noexcept (true); extern float __logp1f (float __x) noexcept (true); + + + + + extern float expm1f (float __x) noexcept (true); extern float __expm1f (float __x) noexcept (true); + + + extern float log1pf (float __x) noexcept (true); extern float __log1pf (float __x) noexcept (true); + + +extern float logbf (float __x) noexcept (true); extern float __logbf (float __x) noexcept (true); + + + + + extern float exp2f (float __x) noexcept (true); extern float __exp2f (float __x) noexcept (true); + + + extern float log2f (float __x) noexcept (true); extern float __log2f (float __x) noexcept (true); + + + + + + + extern float powf (float __x, float __y) noexcept (true); extern float __powf (float __x, float __y) noexcept (true); + + +extern float sqrtf (float __x) noexcept (true); extern float __sqrtf (float __x) noexcept (true); + + + + extern float hypotf (float __x, float __y) noexcept (true); extern float __hypotf (float __x, float __y) noexcept (true); + + + + + extern float cbrtf (float __x) noexcept (true); extern float __cbrtf (float __x) noexcept (true); + + + + + + +extern float ceilf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fabsf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float floorf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fmodf (float __x, float __y) noexcept (true); extern float __fmodf (float __x, float __y) noexcept (true); +# 210 "/usr/include/bits/mathcalls.h" 3 4 +extern int isinff (float __value) noexcept (true) + __attribute__ ((__const__)); + + + + +extern int finitef (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern float dremf (float __x, float __y) noexcept (true); extern float __dremf (float __x, float __y) noexcept (true); + + + +extern float significandf (float __x) noexcept (true); extern float __significandf (float __x) noexcept (true); + + + + + + +extern float copysignf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern float nanf (const char *__tagb) noexcept (true); extern float __nanf (const char *__tagb) noexcept (true); +# 246 "/usr/include/bits/mathcalls.h" 3 4 +extern int isnanf (float __value) noexcept (true) + __attribute__ ((__const__)); + + + + + +extern float j0f (float) noexcept (true); extern float __j0f (float) noexcept (true); +extern float j1f (float) noexcept (true); extern float __j1f (float) noexcept (true); +extern float jnf (int, float) noexcept (true); extern float __jnf (int, float) noexcept (true); +extern float y0f (float) noexcept (true); extern float __y0f (float) noexcept (true); +extern float y1f (float) noexcept (true); extern float __y1f (float) noexcept (true); +extern float ynf (int, float) noexcept (true); extern float __ynf (int, float) noexcept (true); + + + + + + extern float erff (float) noexcept (true); extern float __erff (float) noexcept (true); + extern float erfcf (float) noexcept (true); extern float __erfcf (float) noexcept (true); +extern float lgammaf (float) noexcept (true); extern float __lgammaf (float) noexcept (true); + + + + +extern float tgammaf (float) noexcept (true); extern float __tgammaf (float) noexcept (true); + + + + + +extern float gammaf (float) noexcept (true); extern float __gammaf (float) noexcept (true); + + + + + + + +extern float lgammaf_r (float, int *__signgamp) noexcept (true); extern float __lgammaf_r (float, int *__signgamp) noexcept (true); + + + + + + +extern float rintf (float __x) noexcept (true); extern float __rintf (float __x) noexcept (true); + + +extern float nextafterf (float __x, float __y) noexcept (true); extern float __nextafterf (float __x, float __y) noexcept (true); + +extern float nexttowardf (float __x, long double __y) noexcept (true); extern float __nexttowardf (float __x, long double __y) noexcept (true); + + + + +extern float nextdownf (float __x) noexcept (true); extern float __nextdownf (float __x) noexcept (true); + +extern float nextupf (float __x) noexcept (true); extern float __nextupf (float __x) noexcept (true); + + + +extern float remainderf (float __x, float __y) noexcept (true); extern float __remainderf (float __x, float __y) noexcept (true); + + + +extern float scalbnf (float __x, int __n) noexcept (true); extern float __scalbnf (float __x, int __n) noexcept (true); + + + +extern int ilogbf (float __x) noexcept (true); extern int __ilogbf (float __x) noexcept (true); + + + + +extern long int llogbf (float __x) noexcept (true); extern long int __llogbf (float __x) noexcept (true); + + + + +extern float scalblnf (float __x, long int __n) noexcept (true); extern float __scalblnf (float __x, long int __n) noexcept (true); + + + +extern float nearbyintf (float __x) noexcept (true); extern float __nearbyintf (float __x) noexcept (true); + + + +extern float roundf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern float truncf (float __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern float remquof (float __x, float __y, int *__quo) noexcept (true); extern float __remquof (float __x, float __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf (float __x) noexcept (true); extern long int __lrintf (float __x) noexcept (true); +__extension__ +extern long long int llrintf (float __x) noexcept (true); extern long long int __llrintf (float __x) noexcept (true); + + + +extern long int lroundf (float __x) noexcept (true); extern long int __lroundf (float __x) noexcept (true); +__extension__ +extern long long int llroundf (float __x) noexcept (true); extern long long int __llroundf (float __x) noexcept (true); + + + +extern float fdimf (float __x, float __y) noexcept (true); extern float __fdimf (float __x, float __y) noexcept (true); + + + +extern float fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + +extern float fmaf (float __x, float __y, float __z) noexcept (true); extern float __fmaf (float __x, float __y, float __z) noexcept (true); + + + + +extern float roundevenf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef (float *__cx, const float *__x) noexcept (true); + + + + + + +extern float fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern float fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf (const float *__x, const float *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf (const float *__x, const float *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern float getpayloadf (const float *__x) noexcept (true); extern float __getpayloadf (const float *__x) noexcept (true); + + +extern int setpayloadf (float *__x, float __payload) noexcept (true); + + +extern int setpayloadsigf (float *__x, float __payload) noexcept (true); + + + + + + + +extern float scalbf (float __x, float __n) noexcept (true); extern float __scalbf (float __x, float __n) noexcept (true); +# 300 "/usr/include/math.h" 2 3 4 +# 367 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinfl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitel (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigl (long double __x, long double __y) noexcept (true); + + +extern int __issignalingl (long double __value) noexcept (true) + __attribute__ ((__const__)); +# 368 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern long double acosl (long double __x) noexcept (true); extern long double __acosl (long double __x) noexcept (true); + + extern long double asinl (long double __x) noexcept (true); extern long double __asinl (long double __x) noexcept (true); + + extern long double atanl (long double __x) noexcept (true); extern long double __atanl (long double __x) noexcept (true); + + extern long double atan2l (long double __y, long double __x) noexcept (true); extern long double __atan2l (long double __y, long double __x) noexcept (true); + + + extern long double cosl (long double __x) noexcept (true); extern long double __cosl (long double __x) noexcept (true); + + extern long double sinl (long double __x) noexcept (true); extern long double __sinl (long double __x) noexcept (true); + + extern long double tanl (long double __x) noexcept (true); extern long double __tanl (long double __x) noexcept (true); + + + +extern long double acospil (long double __x) noexcept (true); extern long double __acospil (long double __x) noexcept (true); + +extern long double asinpil (long double __x) noexcept (true); extern long double __asinpil (long double __x) noexcept (true); + +extern long double atanpil (long double __x) noexcept (true); extern long double __atanpil (long double __x) noexcept (true); + +extern long double atan2pil (long double __y, long double __x) noexcept (true); extern long double __atan2pil (long double __y, long double __x) noexcept (true); + + + extern long double cospil (long double __x) noexcept (true); extern long double __cospil (long double __x) noexcept (true); + + extern long double sinpil (long double __x) noexcept (true); extern long double __sinpil (long double __x) noexcept (true); + + extern long double tanpil (long double __x) noexcept (true); extern long double __tanpil (long double __x) noexcept (true); + + + + + + extern long double coshl (long double __x) noexcept (true); extern long double __coshl (long double __x) noexcept (true); + + extern long double sinhl (long double __x) noexcept (true); extern long double __sinhl (long double __x) noexcept (true); + + extern long double tanhl (long double __x) noexcept (true); extern long double __tanhl (long double __x) noexcept (true); + + + + extern void sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true) + ; + + + + + extern long double acoshl (long double __x) noexcept (true); extern long double __acoshl (long double __x) noexcept (true); + + extern long double asinhl (long double __x) noexcept (true); extern long double __asinhl (long double __x) noexcept (true); + + extern long double atanhl (long double __x) noexcept (true); extern long double __atanhl (long double __x) noexcept (true); + + + + + + extern long double expl (long double __x) noexcept (true); extern long double __expl (long double __x) noexcept (true); + + +extern long double frexpl (long double __x, int *__exponent) noexcept (true); extern long double __frexpl (long double __x, int *__exponent) noexcept (true); + + +extern long double ldexpl (long double __x, int __exponent) noexcept (true); extern long double __ldexpl (long double __x, int __exponent) noexcept (true); + + + extern long double logl (long double __x) noexcept (true); extern long double __logl (long double __x) noexcept (true); + + + extern long double log10l (long double __x) noexcept (true); extern long double __log10l (long double __x) noexcept (true); + + +extern long double modfl (long double __x, long double *__iptr) noexcept (true); extern long double __modfl (long double __x, long double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern long double exp10l (long double __x) noexcept (true); extern long double __exp10l (long double __x) noexcept (true); + + +extern long double exp2m1l (long double __x) noexcept (true); extern long double __exp2m1l (long double __x) noexcept (true); + + +extern long double exp10m1l (long double __x) noexcept (true); extern long double __exp10m1l (long double __x) noexcept (true); + + +extern long double log2p1l (long double __x) noexcept (true); extern long double __log2p1l (long double __x) noexcept (true); + + +extern long double log10p1l (long double __x) noexcept (true); extern long double __log10p1l (long double __x) noexcept (true); + + + extern long double logp1l (long double __x) noexcept (true); extern long double __logp1l (long double __x) noexcept (true); + + + + + extern long double expm1l (long double __x) noexcept (true); extern long double __expm1l (long double __x) noexcept (true); + + + extern long double log1pl (long double __x) noexcept (true); extern long double __log1pl (long double __x) noexcept (true); + + +extern long double logbl (long double __x) noexcept (true); extern long double __logbl (long double __x) noexcept (true); + + + + + extern long double exp2l (long double __x) noexcept (true); extern long double __exp2l (long double __x) noexcept (true); + + + extern long double log2l (long double __x) noexcept (true); extern long double __log2l (long double __x) noexcept (true); + + + + + + + extern long double powl (long double __x, long double __y) noexcept (true); extern long double __powl (long double __x, long double __y) noexcept (true); + + +extern long double sqrtl (long double __x) noexcept (true); extern long double __sqrtl (long double __x) noexcept (true); + + + + extern long double hypotl (long double __x, long double __y) noexcept (true); extern long double __hypotl (long double __x, long double __y) noexcept (true); + + + + + extern long double cbrtl (long double __x) noexcept (true); extern long double __cbrtl (long double __x) noexcept (true); + + + + + + +extern long double ceill (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fabsl (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double floorl (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmodl (long double __x, long double __y) noexcept (true); extern long double __fmodl (long double __x, long double __y) noexcept (true); +# 210 "/usr/include/bits/mathcalls.h" 3 4 +extern int isinfl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + + +extern int finitel (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern long double dreml (long double __x, long double __y) noexcept (true); extern long double __dreml (long double __x, long double __y) noexcept (true); + + + +extern long double significandl (long double __x) noexcept (true); extern long double __significandl (long double __x) noexcept (true); + + + + + + +extern long double copysignl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double nanl (const char *__tagb) noexcept (true); extern long double __nanl (const char *__tagb) noexcept (true); +# 246 "/usr/include/bits/mathcalls.h" 3 4 +extern int isnanl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + + + +extern long double j0l (long double) noexcept (true); extern long double __j0l (long double) noexcept (true); +extern long double j1l (long double) noexcept (true); extern long double __j1l (long double) noexcept (true); +extern long double jnl (int, long double) noexcept (true); extern long double __jnl (int, long double) noexcept (true); +extern long double y0l (long double) noexcept (true); extern long double __y0l (long double) noexcept (true); +extern long double y1l (long double) noexcept (true); extern long double __y1l (long double) noexcept (true); +extern long double ynl (int, long double) noexcept (true); extern long double __ynl (int, long double) noexcept (true); + + + + + + extern long double erfl (long double) noexcept (true); extern long double __erfl (long double) noexcept (true); + extern long double erfcl (long double) noexcept (true); extern long double __erfcl (long double) noexcept (true); +extern long double lgammal (long double) noexcept (true); extern long double __lgammal (long double) noexcept (true); + + + + +extern long double tgammal (long double) noexcept (true); extern long double __tgammal (long double) noexcept (true); + + + + + +extern long double gammal (long double) noexcept (true); extern long double __gammal (long double) noexcept (true); + + + + + + + +extern long double lgammal_r (long double, int *__signgamp) noexcept (true); extern long double __lgammal_r (long double, int *__signgamp) noexcept (true); + + + + + + +extern long double rintl (long double __x) noexcept (true); extern long double __rintl (long double __x) noexcept (true); + + +extern long double nextafterl (long double __x, long double __y) noexcept (true); extern long double __nextafterl (long double __x, long double __y) noexcept (true); + +extern long double nexttowardl (long double __x, long double __y) noexcept (true); extern long double __nexttowardl (long double __x, long double __y) noexcept (true); + + + + +extern long double nextdownl (long double __x) noexcept (true); extern long double __nextdownl (long double __x) noexcept (true); + +extern long double nextupl (long double __x) noexcept (true); extern long double __nextupl (long double __x) noexcept (true); + + + +extern long double remainderl (long double __x, long double __y) noexcept (true); extern long double __remainderl (long double __x, long double __y) noexcept (true); + + + +extern long double scalbnl (long double __x, int __n) noexcept (true); extern long double __scalbnl (long double __x, int __n) noexcept (true); + + + +extern int ilogbl (long double __x) noexcept (true); extern int __ilogbl (long double __x) noexcept (true); + + + + +extern long int llogbl (long double __x) noexcept (true); extern long int __llogbl (long double __x) noexcept (true); + + + + +extern long double scalblnl (long double __x, long int __n) noexcept (true); extern long double __scalblnl (long double __x, long int __n) noexcept (true); + + + +extern long double nearbyintl (long double __x) noexcept (true); extern long double __nearbyintl (long double __x) noexcept (true); + + + +extern long double roundl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern long double truncl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double remquol (long double __x, long double __y, int *__quo) noexcept (true); extern long double __remquol (long double __x, long double __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintl (long double __x) noexcept (true); extern long int __lrintl (long double __x) noexcept (true); +__extension__ +extern long long int llrintl (long double __x) noexcept (true); extern long long int __llrintl (long double __x) noexcept (true); + + + +extern long int lroundl (long double __x) noexcept (true); extern long int __lroundl (long double __x) noexcept (true); +__extension__ +extern long long int llroundl (long double __x) noexcept (true); extern long long int __llroundl (long double __x) noexcept (true); + + + +extern long double fdiml (long double __x, long double __y) noexcept (true); extern long double __fdiml (long double __x, long double __y) noexcept (true); + + + +extern long double fmaxl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + +extern long double fmal (long double __x, long double __y, long double __z) noexcept (true); extern long double __fmal (long double __x, long double __y, long double __z) noexcept (true); + + + + +extern long double roundevenl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizel (long double *__cx, const long double *__x) noexcept (true); + + + + + + +extern long double fmaxmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double fmaximuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderl (const long double *__x, const long double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagl (const long double *__x, const long double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern long double getpayloadl (const long double *__x) noexcept (true); extern long double __getpayloadl (const long double *__x) noexcept (true); + + +extern int setpayloadl (long double *__x, long double __payload) noexcept (true); + + +extern int setpayloadsigl (long double *__x, long double __payload) noexcept (true); + + + + + + + +extern long double scalbl (long double __x, long double __n) noexcept (true); extern long double __scalbl (long double __x, long double __n) noexcept (true); +# 369 "/usr/include/math.h" 2 3 4 +# 419 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float32 acosf32 (_Float32 __x) noexcept (true); extern _Float32 __acosf32 (_Float32 __x) noexcept (true); + + extern _Float32 asinf32 (_Float32 __x) noexcept (true); extern _Float32 __asinf32 (_Float32 __x) noexcept (true); + + extern _Float32 atanf32 (_Float32 __x) noexcept (true); extern _Float32 __atanf32 (_Float32 __x) noexcept (true); + + extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); + + + extern _Float32 cosf32 (_Float32 __x) noexcept (true); extern _Float32 __cosf32 (_Float32 __x) noexcept (true); + + extern _Float32 sinf32 (_Float32 __x) noexcept (true); extern _Float32 __sinf32 (_Float32 __x) noexcept (true); + + extern _Float32 tanf32 (_Float32 __x) noexcept (true); extern _Float32 __tanf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 acospif32 (_Float32 __x) noexcept (true); extern _Float32 __acospif32 (_Float32 __x) noexcept (true); + +extern _Float32 asinpif32 (_Float32 __x) noexcept (true); extern _Float32 __asinpif32 (_Float32 __x) noexcept (true); + +extern _Float32 atanpif32 (_Float32 __x) noexcept (true); extern _Float32 __atanpif32 (_Float32 __x) noexcept (true); + +extern _Float32 atan2pif32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2pif32 (_Float32 __y, _Float32 __x) noexcept (true); + + + extern _Float32 cospif32 (_Float32 __x) noexcept (true); extern _Float32 __cospif32 (_Float32 __x) noexcept (true); + + extern _Float32 sinpif32 (_Float32 __x) noexcept (true); extern _Float32 __sinpif32 (_Float32 __x) noexcept (true); + + extern _Float32 tanpif32 (_Float32 __x) noexcept (true); extern _Float32 __tanpif32 (_Float32 __x) noexcept (true); + + + + + + extern _Float32 coshf32 (_Float32 __x) noexcept (true); extern _Float32 __coshf32 (_Float32 __x) noexcept (true); + + extern _Float32 sinhf32 (_Float32 __x) noexcept (true); extern _Float32 __sinhf32 (_Float32 __x) noexcept (true); + + extern _Float32 tanhf32 (_Float32 __x) noexcept (true); extern _Float32 __tanhf32 (_Float32 __x) noexcept (true); + + + + extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true) + ; + + + + + extern _Float32 acoshf32 (_Float32 __x) noexcept (true); extern _Float32 __acoshf32 (_Float32 __x) noexcept (true); + + extern _Float32 asinhf32 (_Float32 __x) noexcept (true); extern _Float32 __asinhf32 (_Float32 __x) noexcept (true); + + extern _Float32 atanhf32 (_Float32 __x) noexcept (true); extern _Float32 __atanhf32 (_Float32 __x) noexcept (true); + + + + + + extern _Float32 expf32 (_Float32 __x) noexcept (true); extern _Float32 __expf32 (_Float32 __x) noexcept (true); + + +extern _Float32 frexpf32 (_Float32 __x, int *__exponent) noexcept (true); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) noexcept (true); + + +extern _Float32 ldexpf32 (_Float32 __x, int __exponent) noexcept (true); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) noexcept (true); + + + extern _Float32 logf32 (_Float32 __x) noexcept (true); extern _Float32 __logf32 (_Float32 __x) noexcept (true); + + + extern _Float32 log10f32 (_Float32 __x) noexcept (true); extern _Float32 __log10f32 (_Float32 __x) noexcept (true); + + +extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float32 exp10f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10f32 (_Float32 __x) noexcept (true); + + +extern _Float32 exp2m1f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2m1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 exp10m1f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10m1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 log2p1f32 (_Float32 __x) noexcept (true); extern _Float32 __log2p1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 log10p1f32 (_Float32 __x) noexcept (true); extern _Float32 __log10p1f32 (_Float32 __x) noexcept (true); + + + extern _Float32 logp1f32 (_Float32 __x) noexcept (true); extern _Float32 __logp1f32 (_Float32 __x) noexcept (true); + + + + + extern _Float32 expm1f32 (_Float32 __x) noexcept (true); extern _Float32 __expm1f32 (_Float32 __x) noexcept (true); + + + extern _Float32 log1pf32 (_Float32 __x) noexcept (true); extern _Float32 __log1pf32 (_Float32 __x) noexcept (true); + + +extern _Float32 logbf32 (_Float32 __x) noexcept (true); extern _Float32 __logbf32 (_Float32 __x) noexcept (true); + + + + + extern _Float32 exp2f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2f32 (_Float32 __x) noexcept (true); + + + extern _Float32 log2f32 (_Float32 __x) noexcept (true); extern _Float32 __log2f32 (_Float32 __x) noexcept (true); + + + + + + + extern _Float32 powf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) noexcept (true); + + +extern _Float32 sqrtf32 (_Float32 __x) noexcept (true); extern _Float32 __sqrtf32 (_Float32 __x) noexcept (true); + + + + extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + + + extern _Float32 cbrtf32 (_Float32 __x) noexcept (true); extern _Float32 __cbrtf32 (_Float32 __x) noexcept (true); + + + + + + +extern _Float32 ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fabsf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 floorf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 nanf32 (const char *__tagb) noexcept (true); extern _Float32 __nanf32 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 j0f32 (_Float32) noexcept (true); extern _Float32 __j0f32 (_Float32) noexcept (true); +extern _Float32 j1f32 (_Float32) noexcept (true); extern _Float32 __j1f32 (_Float32) noexcept (true); +extern _Float32 jnf32 (int, _Float32) noexcept (true); extern _Float32 __jnf32 (int, _Float32) noexcept (true); +extern _Float32 y0f32 (_Float32) noexcept (true); extern _Float32 __y0f32 (_Float32) noexcept (true); +extern _Float32 y1f32 (_Float32) noexcept (true); extern _Float32 __y1f32 (_Float32) noexcept (true); +extern _Float32 ynf32 (int, _Float32) noexcept (true); extern _Float32 __ynf32 (int, _Float32) noexcept (true); + + + + + + extern _Float32 erff32 (_Float32) noexcept (true); extern _Float32 __erff32 (_Float32) noexcept (true); + extern _Float32 erfcf32 (_Float32) noexcept (true); extern _Float32 __erfcf32 (_Float32) noexcept (true); +extern _Float32 lgammaf32 (_Float32) noexcept (true); extern _Float32 __lgammaf32 (_Float32) noexcept (true); + + + + +extern _Float32 tgammaf32 (_Float32) noexcept (true); extern _Float32 __tgammaf32 (_Float32) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 lgammaf32_r (_Float32, int *__signgamp) noexcept (true); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) noexcept (true); + + + + + + +extern _Float32 rintf32 (_Float32 __x) noexcept (true); extern _Float32 __rintf32 (_Float32 __x) noexcept (true); + + +extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + + + + +extern _Float32 nextdownf32 (_Float32 __x) noexcept (true); extern _Float32 __nextdownf32 (_Float32 __x) noexcept (true); + +extern _Float32 nextupf32 (_Float32 __x) noexcept (true); extern _Float32 __nextupf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + +extern _Float32 scalbnf32 (_Float32 __x, int __n) noexcept (true); extern _Float32 __scalbnf32 (_Float32 __x, int __n) noexcept (true); + + + +extern int ilogbf32 (_Float32 __x) noexcept (true); extern int __ilogbf32 (_Float32 __x) noexcept (true); + + + + +extern long int llogbf32 (_Float32 __x) noexcept (true); extern long int __llogbf32 (_Float32 __x) noexcept (true); + + + + +extern _Float32 scalblnf32 (_Float32 __x, long int __n) noexcept (true); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) noexcept (true); + + + +extern _Float32 nearbyintf32 (_Float32 __x) noexcept (true); extern _Float32 __nearbyintf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 truncf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf32 (_Float32 __x) noexcept (true); extern long int __lrintf32 (_Float32 __x) noexcept (true); +__extension__ +extern long long int llrintf32 (_Float32 __x) noexcept (true); extern long long int __llrintf32 (_Float32 __x) noexcept (true); + + + +extern long int lroundf32 (_Float32 __x) noexcept (true); extern long int __lroundf32 (_Float32 __x) noexcept (true); +__extension__ +extern long long int llroundf32 (_Float32 __x) noexcept (true); extern long long int __llroundf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + +extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); + + + + +extern _Float32 roundevenf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) noexcept (true); + + + + + + +extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float32 getpayloadf32 (const _Float32 *__x) noexcept (true); extern _Float32 __getpayloadf32 (const _Float32 *__x) noexcept (true); + + +extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) noexcept (true); + + +extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) noexcept (true); +# 420 "/usr/include/math.h" 2 3 4 +# 436 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float64 acosf64 (_Float64 __x) noexcept (true); extern _Float64 __acosf64 (_Float64 __x) noexcept (true); + + extern _Float64 asinf64 (_Float64 __x) noexcept (true); extern _Float64 __asinf64 (_Float64 __x) noexcept (true); + + extern _Float64 atanf64 (_Float64 __x) noexcept (true); extern _Float64 __atanf64 (_Float64 __x) noexcept (true); + + extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); + + + extern _Float64 cosf64 (_Float64 __x) noexcept (true); extern _Float64 __cosf64 (_Float64 __x) noexcept (true); + + extern _Float64 sinf64 (_Float64 __x) noexcept (true); extern _Float64 __sinf64 (_Float64 __x) noexcept (true); + + extern _Float64 tanf64 (_Float64 __x) noexcept (true); extern _Float64 __tanf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 acospif64 (_Float64 __x) noexcept (true); extern _Float64 __acospif64 (_Float64 __x) noexcept (true); + +extern _Float64 asinpif64 (_Float64 __x) noexcept (true); extern _Float64 __asinpif64 (_Float64 __x) noexcept (true); + +extern _Float64 atanpif64 (_Float64 __x) noexcept (true); extern _Float64 __atanpif64 (_Float64 __x) noexcept (true); + +extern _Float64 atan2pif64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2pif64 (_Float64 __y, _Float64 __x) noexcept (true); + + + extern _Float64 cospif64 (_Float64 __x) noexcept (true); extern _Float64 __cospif64 (_Float64 __x) noexcept (true); + + extern _Float64 sinpif64 (_Float64 __x) noexcept (true); extern _Float64 __sinpif64 (_Float64 __x) noexcept (true); + + extern _Float64 tanpif64 (_Float64 __x) noexcept (true); extern _Float64 __tanpif64 (_Float64 __x) noexcept (true); + + + + + + extern _Float64 coshf64 (_Float64 __x) noexcept (true); extern _Float64 __coshf64 (_Float64 __x) noexcept (true); + + extern _Float64 sinhf64 (_Float64 __x) noexcept (true); extern _Float64 __sinhf64 (_Float64 __x) noexcept (true); + + extern _Float64 tanhf64 (_Float64 __x) noexcept (true); extern _Float64 __tanhf64 (_Float64 __x) noexcept (true); + + + + extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true) + ; + + + + + extern _Float64 acoshf64 (_Float64 __x) noexcept (true); extern _Float64 __acoshf64 (_Float64 __x) noexcept (true); + + extern _Float64 asinhf64 (_Float64 __x) noexcept (true); extern _Float64 __asinhf64 (_Float64 __x) noexcept (true); + + extern _Float64 atanhf64 (_Float64 __x) noexcept (true); extern _Float64 __atanhf64 (_Float64 __x) noexcept (true); + + + + + + extern _Float64 expf64 (_Float64 __x) noexcept (true); extern _Float64 __expf64 (_Float64 __x) noexcept (true); + + +extern _Float64 frexpf64 (_Float64 __x, int *__exponent) noexcept (true); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) noexcept (true); + + +extern _Float64 ldexpf64 (_Float64 __x, int __exponent) noexcept (true); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) noexcept (true); + + + extern _Float64 logf64 (_Float64 __x) noexcept (true); extern _Float64 __logf64 (_Float64 __x) noexcept (true); + + + extern _Float64 log10f64 (_Float64 __x) noexcept (true); extern _Float64 __log10f64 (_Float64 __x) noexcept (true); + + +extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float64 exp10f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10f64 (_Float64 __x) noexcept (true); + + +extern _Float64 exp2m1f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2m1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 exp10m1f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10m1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 log2p1f64 (_Float64 __x) noexcept (true); extern _Float64 __log2p1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 log10p1f64 (_Float64 __x) noexcept (true); extern _Float64 __log10p1f64 (_Float64 __x) noexcept (true); + + + extern _Float64 logp1f64 (_Float64 __x) noexcept (true); extern _Float64 __logp1f64 (_Float64 __x) noexcept (true); + + + + + extern _Float64 expm1f64 (_Float64 __x) noexcept (true); extern _Float64 __expm1f64 (_Float64 __x) noexcept (true); + + + extern _Float64 log1pf64 (_Float64 __x) noexcept (true); extern _Float64 __log1pf64 (_Float64 __x) noexcept (true); + + +extern _Float64 logbf64 (_Float64 __x) noexcept (true); extern _Float64 __logbf64 (_Float64 __x) noexcept (true); + + + + + extern _Float64 exp2f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2f64 (_Float64 __x) noexcept (true); + + + extern _Float64 log2f64 (_Float64 __x) noexcept (true); extern _Float64 __log2f64 (_Float64 __x) noexcept (true); + + + + + + + extern _Float64 powf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float64 sqrtf64 (_Float64 __x) noexcept (true); extern _Float64 __sqrtf64 (_Float64 __x) noexcept (true); + + + + extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + + + extern _Float64 cbrtf64 (_Float64 __x) noexcept (true); extern _Float64 __cbrtf64 (_Float64 __x) noexcept (true); + + + + + + +extern _Float64 ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fabsf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 floorf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 nanf64 (const char *__tagb) noexcept (true); extern _Float64 __nanf64 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 j0f64 (_Float64) noexcept (true); extern _Float64 __j0f64 (_Float64) noexcept (true); +extern _Float64 j1f64 (_Float64) noexcept (true); extern _Float64 __j1f64 (_Float64) noexcept (true); +extern _Float64 jnf64 (int, _Float64) noexcept (true); extern _Float64 __jnf64 (int, _Float64) noexcept (true); +extern _Float64 y0f64 (_Float64) noexcept (true); extern _Float64 __y0f64 (_Float64) noexcept (true); +extern _Float64 y1f64 (_Float64) noexcept (true); extern _Float64 __y1f64 (_Float64) noexcept (true); +extern _Float64 ynf64 (int, _Float64) noexcept (true); extern _Float64 __ynf64 (int, _Float64) noexcept (true); + + + + + + extern _Float64 erff64 (_Float64) noexcept (true); extern _Float64 __erff64 (_Float64) noexcept (true); + extern _Float64 erfcf64 (_Float64) noexcept (true); extern _Float64 __erfcf64 (_Float64) noexcept (true); +extern _Float64 lgammaf64 (_Float64) noexcept (true); extern _Float64 __lgammaf64 (_Float64) noexcept (true); + + + + +extern _Float64 tgammaf64 (_Float64) noexcept (true); extern _Float64 __tgammaf64 (_Float64) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 lgammaf64_r (_Float64, int *__signgamp) noexcept (true); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) noexcept (true); + + + + + + +extern _Float64 rintf64 (_Float64 __x) noexcept (true); extern _Float64 __rintf64 (_Float64 __x) noexcept (true); + + +extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + + + + +extern _Float64 nextdownf64 (_Float64 __x) noexcept (true); extern _Float64 __nextdownf64 (_Float64 __x) noexcept (true); + +extern _Float64 nextupf64 (_Float64 __x) noexcept (true); extern _Float64 __nextupf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + +extern _Float64 scalbnf64 (_Float64 __x, int __n) noexcept (true); extern _Float64 __scalbnf64 (_Float64 __x, int __n) noexcept (true); + + + +extern int ilogbf64 (_Float64 __x) noexcept (true); extern int __ilogbf64 (_Float64 __x) noexcept (true); + + + + +extern long int llogbf64 (_Float64 __x) noexcept (true); extern long int __llogbf64 (_Float64 __x) noexcept (true); + + + + +extern _Float64 scalblnf64 (_Float64 __x, long int __n) noexcept (true); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) noexcept (true); + + + +extern _Float64 nearbyintf64 (_Float64 __x) noexcept (true); extern _Float64 __nearbyintf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 truncf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf64 (_Float64 __x) noexcept (true); extern long int __lrintf64 (_Float64 __x) noexcept (true); +__extension__ +extern long long int llrintf64 (_Float64 __x) noexcept (true); extern long long int __llrintf64 (_Float64 __x) noexcept (true); + + + +extern long int lroundf64 (_Float64 __x) noexcept (true); extern long int __lroundf64 (_Float64 __x) noexcept (true); +__extension__ +extern long long int llroundf64 (_Float64 __x) noexcept (true); extern long long int __llroundf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + +extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + + + +extern _Float64 roundevenf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) noexcept (true); + + + + + + +extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float64 getpayloadf64 (const _Float64 *__x) noexcept (true); extern _Float64 __getpayloadf64 (const _Float64 *__x) noexcept (true); + + +extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) noexcept (true); + + +extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) noexcept (true); +# 437 "/usr/include/math.h" 2 3 4 +# 450 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinff128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitef128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern int __issignalingf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); +# 451 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float128 acosf128 (_Float128 __x) noexcept (true); extern _Float128 __acosf128 (_Float128 __x) noexcept (true); + + extern _Float128 asinf128 (_Float128 __x) noexcept (true); extern _Float128 __asinf128 (_Float128 __x) noexcept (true); + + extern _Float128 atanf128 (_Float128 __x) noexcept (true); extern _Float128 __atanf128 (_Float128 __x) noexcept (true); + + extern _Float128 atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); + + + extern _Float128 cosf128 (_Float128 __x) noexcept (true); extern _Float128 __cosf128 (_Float128 __x) noexcept (true); + + extern _Float128 sinf128 (_Float128 __x) noexcept (true); extern _Float128 __sinf128 (_Float128 __x) noexcept (true); + + extern _Float128 tanf128 (_Float128 __x) noexcept (true); extern _Float128 __tanf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 acospif128 (_Float128 __x) noexcept (true); extern _Float128 __acospif128 (_Float128 __x) noexcept (true); + +extern _Float128 asinpif128 (_Float128 __x) noexcept (true); extern _Float128 __asinpif128 (_Float128 __x) noexcept (true); + +extern _Float128 atanpif128 (_Float128 __x) noexcept (true); extern _Float128 __atanpif128 (_Float128 __x) noexcept (true); + +extern _Float128 atan2pif128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2pif128 (_Float128 __y, _Float128 __x) noexcept (true); + + + extern _Float128 cospif128 (_Float128 __x) noexcept (true); extern _Float128 __cospif128 (_Float128 __x) noexcept (true); + + extern _Float128 sinpif128 (_Float128 __x) noexcept (true); extern _Float128 __sinpif128 (_Float128 __x) noexcept (true); + + extern _Float128 tanpif128 (_Float128 __x) noexcept (true); extern _Float128 __tanpif128 (_Float128 __x) noexcept (true); + + + + + + extern _Float128 coshf128 (_Float128 __x) noexcept (true); extern _Float128 __coshf128 (_Float128 __x) noexcept (true); + + extern _Float128 sinhf128 (_Float128 __x) noexcept (true); extern _Float128 __sinhf128 (_Float128 __x) noexcept (true); + + extern _Float128 tanhf128 (_Float128 __x) noexcept (true); extern _Float128 __tanhf128 (_Float128 __x) noexcept (true); + + + + extern void sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true); extern void __sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true) + ; + + + + + extern _Float128 acoshf128 (_Float128 __x) noexcept (true); extern _Float128 __acoshf128 (_Float128 __x) noexcept (true); + + extern _Float128 asinhf128 (_Float128 __x) noexcept (true); extern _Float128 __asinhf128 (_Float128 __x) noexcept (true); + + extern _Float128 atanhf128 (_Float128 __x) noexcept (true); extern _Float128 __atanhf128 (_Float128 __x) noexcept (true); + + + + + + extern _Float128 expf128 (_Float128 __x) noexcept (true); extern _Float128 __expf128 (_Float128 __x) noexcept (true); + + +extern _Float128 frexpf128 (_Float128 __x, int *__exponent) noexcept (true); extern _Float128 __frexpf128 (_Float128 __x, int *__exponent) noexcept (true); + + +extern _Float128 ldexpf128 (_Float128 __x, int __exponent) noexcept (true); extern _Float128 __ldexpf128 (_Float128 __x, int __exponent) noexcept (true); + + + extern _Float128 logf128 (_Float128 __x) noexcept (true); extern _Float128 __logf128 (_Float128 __x) noexcept (true); + + + extern _Float128 log10f128 (_Float128 __x) noexcept (true); extern _Float128 __log10f128 (_Float128 __x) noexcept (true); + + +extern _Float128 modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true); extern _Float128 __modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float128 exp10f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10f128 (_Float128 __x) noexcept (true); + + +extern _Float128 exp2m1f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2m1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 exp10m1f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10m1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 log2p1f128 (_Float128 __x) noexcept (true); extern _Float128 __log2p1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 log10p1f128 (_Float128 __x) noexcept (true); extern _Float128 __log10p1f128 (_Float128 __x) noexcept (true); + + + extern _Float128 logp1f128 (_Float128 __x) noexcept (true); extern _Float128 __logp1f128 (_Float128 __x) noexcept (true); + + + + + extern _Float128 expm1f128 (_Float128 __x) noexcept (true); extern _Float128 __expm1f128 (_Float128 __x) noexcept (true); + + + extern _Float128 log1pf128 (_Float128 __x) noexcept (true); extern _Float128 __log1pf128 (_Float128 __x) noexcept (true); + + +extern _Float128 logbf128 (_Float128 __x) noexcept (true); extern _Float128 __logbf128 (_Float128 __x) noexcept (true); + + + + + extern _Float128 exp2f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2f128 (_Float128 __x) noexcept (true); + + + extern _Float128 log2f128 (_Float128 __x) noexcept (true); extern _Float128 __log2f128 (_Float128 __x) noexcept (true); + + + + + + + extern _Float128 powf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __powf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float128 sqrtf128 (_Float128 __x) noexcept (true); extern _Float128 __sqrtf128 (_Float128 __x) noexcept (true); + + + + extern _Float128 hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + + + extern _Float128 cbrtf128 (_Float128 __x) noexcept (true); extern _Float128 __cbrtf128 (_Float128 __x) noexcept (true); + + + + + + +extern _Float128 ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fabsf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 floorf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 nanf128 (const char *__tagb) noexcept (true); extern _Float128 __nanf128 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 j0f128 (_Float128) noexcept (true); extern _Float128 __j0f128 (_Float128) noexcept (true); +extern _Float128 j1f128 (_Float128) noexcept (true); extern _Float128 __j1f128 (_Float128) noexcept (true); +extern _Float128 jnf128 (int, _Float128) noexcept (true); extern _Float128 __jnf128 (int, _Float128) noexcept (true); +extern _Float128 y0f128 (_Float128) noexcept (true); extern _Float128 __y0f128 (_Float128) noexcept (true); +extern _Float128 y1f128 (_Float128) noexcept (true); extern _Float128 __y1f128 (_Float128) noexcept (true); +extern _Float128 ynf128 (int, _Float128) noexcept (true); extern _Float128 __ynf128 (int, _Float128) noexcept (true); + + + + + + extern _Float128 erff128 (_Float128) noexcept (true); extern _Float128 __erff128 (_Float128) noexcept (true); + extern _Float128 erfcf128 (_Float128) noexcept (true); extern _Float128 __erfcf128 (_Float128) noexcept (true); +extern _Float128 lgammaf128 (_Float128) noexcept (true); extern _Float128 __lgammaf128 (_Float128) noexcept (true); + + + + +extern _Float128 tgammaf128 (_Float128) noexcept (true); extern _Float128 __tgammaf128 (_Float128) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 lgammaf128_r (_Float128, int *__signgamp) noexcept (true); extern _Float128 __lgammaf128_r (_Float128, int *__signgamp) noexcept (true); + + + + + + +extern _Float128 rintf128 (_Float128 __x) noexcept (true); extern _Float128 __rintf128 (_Float128 __x) noexcept (true); + + +extern _Float128 nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + + + + +extern _Float128 nextdownf128 (_Float128 __x) noexcept (true); extern _Float128 __nextdownf128 (_Float128 __x) noexcept (true); + +extern _Float128 nextupf128 (_Float128 __x) noexcept (true); extern _Float128 __nextupf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + +extern _Float128 scalbnf128 (_Float128 __x, int __n) noexcept (true); extern _Float128 __scalbnf128 (_Float128 __x, int __n) noexcept (true); + + + +extern int ilogbf128 (_Float128 __x) noexcept (true); extern int __ilogbf128 (_Float128 __x) noexcept (true); + + + + +extern long int llogbf128 (_Float128 __x) noexcept (true); extern long int __llogbf128 (_Float128 __x) noexcept (true); + + + + +extern _Float128 scalblnf128 (_Float128 __x, long int __n) noexcept (true); extern _Float128 __scalblnf128 (_Float128 __x, long int __n) noexcept (true); + + + +extern _Float128 nearbyintf128 (_Float128 __x) noexcept (true); extern _Float128 __nearbyintf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 truncf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); extern _Float128 __remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf128 (_Float128 __x) noexcept (true); extern long int __lrintf128 (_Float128 __x) noexcept (true); +__extension__ +extern long long int llrintf128 (_Float128 __x) noexcept (true); extern long long int __llrintf128 (_Float128 __x) noexcept (true); + + + +extern long int lroundf128 (_Float128 __x) noexcept (true); extern long int __lroundf128 (_Float128 __x) noexcept (true); +__extension__ +extern long long int llroundf128 (_Float128 __x) noexcept (true); extern long long int __llroundf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + +extern _Float128 fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); extern _Float128 __fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + + + +extern _Float128 roundevenf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef128 (_Float128 *__cx, const _Float128 *__x) noexcept (true); + + + + + + +extern _Float128 fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float128 getpayloadf128 (const _Float128 *__x) noexcept (true); extern _Float128 __getpayloadf128 (const _Float128 *__x) noexcept (true); + + +extern int setpayloadf128 (_Float128 *__x, _Float128 __payload) noexcept (true); + + +extern int setpayloadsigf128 (_Float128 *__x, _Float128 __payload) noexcept (true); +# 454 "/usr/include/math.h" 2 3 4 +# 470 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float32x acosf32x (_Float32x __x) noexcept (true); extern _Float32x __acosf32x (_Float32x __x) noexcept (true); + + extern _Float32x asinf32x (_Float32x __x) noexcept (true); extern _Float32x __asinf32x (_Float32x __x) noexcept (true); + + extern _Float32x atanf32x (_Float32x __x) noexcept (true); extern _Float32x __atanf32x (_Float32x __x) noexcept (true); + + extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); + + + extern _Float32x cosf32x (_Float32x __x) noexcept (true); extern _Float32x __cosf32x (_Float32x __x) noexcept (true); + + extern _Float32x sinf32x (_Float32x __x) noexcept (true); extern _Float32x __sinf32x (_Float32x __x) noexcept (true); + + extern _Float32x tanf32x (_Float32x __x) noexcept (true); extern _Float32x __tanf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x acospif32x (_Float32x __x) noexcept (true); extern _Float32x __acospif32x (_Float32x __x) noexcept (true); + +extern _Float32x asinpif32x (_Float32x __x) noexcept (true); extern _Float32x __asinpif32x (_Float32x __x) noexcept (true); + +extern _Float32x atanpif32x (_Float32x __x) noexcept (true); extern _Float32x __atanpif32x (_Float32x __x) noexcept (true); + +extern _Float32x atan2pif32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2pif32x (_Float32x __y, _Float32x __x) noexcept (true); + + + extern _Float32x cospif32x (_Float32x __x) noexcept (true); extern _Float32x __cospif32x (_Float32x __x) noexcept (true); + + extern _Float32x sinpif32x (_Float32x __x) noexcept (true); extern _Float32x __sinpif32x (_Float32x __x) noexcept (true); + + extern _Float32x tanpif32x (_Float32x __x) noexcept (true); extern _Float32x __tanpif32x (_Float32x __x) noexcept (true); + + + + + + extern _Float32x coshf32x (_Float32x __x) noexcept (true); extern _Float32x __coshf32x (_Float32x __x) noexcept (true); + + extern _Float32x sinhf32x (_Float32x __x) noexcept (true); extern _Float32x __sinhf32x (_Float32x __x) noexcept (true); + + extern _Float32x tanhf32x (_Float32x __x) noexcept (true); extern _Float32x __tanhf32x (_Float32x __x) noexcept (true); + + + + extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true) + ; + + + + + extern _Float32x acoshf32x (_Float32x __x) noexcept (true); extern _Float32x __acoshf32x (_Float32x __x) noexcept (true); + + extern _Float32x asinhf32x (_Float32x __x) noexcept (true); extern _Float32x __asinhf32x (_Float32x __x) noexcept (true); + + extern _Float32x atanhf32x (_Float32x __x) noexcept (true); extern _Float32x __atanhf32x (_Float32x __x) noexcept (true); + + + + + + extern _Float32x expf32x (_Float32x __x) noexcept (true); extern _Float32x __expf32x (_Float32x __x) noexcept (true); + + +extern _Float32x frexpf32x (_Float32x __x, int *__exponent) noexcept (true); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) noexcept (true); + + +extern _Float32x ldexpf32x (_Float32x __x, int __exponent) noexcept (true); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) noexcept (true); + + + extern _Float32x logf32x (_Float32x __x) noexcept (true); extern _Float32x __logf32x (_Float32x __x) noexcept (true); + + + extern _Float32x log10f32x (_Float32x __x) noexcept (true); extern _Float32x __log10f32x (_Float32x __x) noexcept (true); + + +extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float32x exp10f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10f32x (_Float32x __x) noexcept (true); + + +extern _Float32x exp2m1f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2m1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x exp10m1f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10m1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x log2p1f32x (_Float32x __x) noexcept (true); extern _Float32x __log2p1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x log10p1f32x (_Float32x __x) noexcept (true); extern _Float32x __log10p1f32x (_Float32x __x) noexcept (true); + + + extern _Float32x logp1f32x (_Float32x __x) noexcept (true); extern _Float32x __logp1f32x (_Float32x __x) noexcept (true); + + + + + extern _Float32x expm1f32x (_Float32x __x) noexcept (true); extern _Float32x __expm1f32x (_Float32x __x) noexcept (true); + + + extern _Float32x log1pf32x (_Float32x __x) noexcept (true); extern _Float32x __log1pf32x (_Float32x __x) noexcept (true); + + +extern _Float32x logbf32x (_Float32x __x) noexcept (true); extern _Float32x __logbf32x (_Float32x __x) noexcept (true); + + + + + extern _Float32x exp2f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2f32x (_Float32x __x) noexcept (true); + + + extern _Float32x log2f32x (_Float32x __x) noexcept (true); extern _Float32x __log2f32x (_Float32x __x) noexcept (true); + + + + + + + extern _Float32x powf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32x sqrtf32x (_Float32x __x) noexcept (true); extern _Float32x __sqrtf32x (_Float32x __x) noexcept (true); + + + + extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + + + extern _Float32x cbrtf32x (_Float32x __x) noexcept (true); extern _Float32x __cbrtf32x (_Float32x __x) noexcept (true); + + + + + + +extern _Float32x ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fabsf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x floorf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x nanf32x (const char *__tagb) noexcept (true); extern _Float32x __nanf32x (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x j0f32x (_Float32x) noexcept (true); extern _Float32x __j0f32x (_Float32x) noexcept (true); +extern _Float32x j1f32x (_Float32x) noexcept (true); extern _Float32x __j1f32x (_Float32x) noexcept (true); +extern _Float32x jnf32x (int, _Float32x) noexcept (true); extern _Float32x __jnf32x (int, _Float32x) noexcept (true); +extern _Float32x y0f32x (_Float32x) noexcept (true); extern _Float32x __y0f32x (_Float32x) noexcept (true); +extern _Float32x y1f32x (_Float32x) noexcept (true); extern _Float32x __y1f32x (_Float32x) noexcept (true); +extern _Float32x ynf32x (int, _Float32x) noexcept (true); extern _Float32x __ynf32x (int, _Float32x) noexcept (true); + + + + + + extern _Float32x erff32x (_Float32x) noexcept (true); extern _Float32x __erff32x (_Float32x) noexcept (true); + extern _Float32x erfcf32x (_Float32x) noexcept (true); extern _Float32x __erfcf32x (_Float32x) noexcept (true); +extern _Float32x lgammaf32x (_Float32x) noexcept (true); extern _Float32x __lgammaf32x (_Float32x) noexcept (true); + + + + +extern _Float32x tgammaf32x (_Float32x) noexcept (true); extern _Float32x __tgammaf32x (_Float32x) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); + + + + + + +extern _Float32x rintf32x (_Float32x __x) noexcept (true); extern _Float32x __rintf32x (_Float32x __x) noexcept (true); + + +extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + + + + +extern _Float32x nextdownf32x (_Float32x __x) noexcept (true); extern _Float32x __nextdownf32x (_Float32x __x) noexcept (true); + +extern _Float32x nextupf32x (_Float32x __x) noexcept (true); extern _Float32x __nextupf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + +extern _Float32x scalbnf32x (_Float32x __x, int __n) noexcept (true); extern _Float32x __scalbnf32x (_Float32x __x, int __n) noexcept (true); + + + +extern int ilogbf32x (_Float32x __x) noexcept (true); extern int __ilogbf32x (_Float32x __x) noexcept (true); + + + + +extern long int llogbf32x (_Float32x __x) noexcept (true); extern long int __llogbf32x (_Float32x __x) noexcept (true); + + + + +extern _Float32x scalblnf32x (_Float32x __x, long int __n) noexcept (true); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) noexcept (true); + + + +extern _Float32x nearbyintf32x (_Float32x __x) noexcept (true); extern _Float32x __nearbyintf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x truncf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf32x (_Float32x __x) noexcept (true); extern long int __lrintf32x (_Float32x __x) noexcept (true); +__extension__ +extern long long int llrintf32x (_Float32x __x) noexcept (true); extern long long int __llrintf32x (_Float32x __x) noexcept (true); + + + +extern long int lroundf32x (_Float32x __x) noexcept (true); extern long int __lroundf32x (_Float32x __x) noexcept (true); +__extension__ +extern long long int llroundf32x (_Float32x __x) noexcept (true); extern long long int __llroundf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + +extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); + + + + +extern _Float32x roundevenf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) noexcept (true); + + + + + + +extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float32x getpayloadf32x (const _Float32x *__x) noexcept (true); extern _Float32x __getpayloadf32x (const _Float32x *__x) noexcept (true); + + +extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) noexcept (true); + + +extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) noexcept (true); +# 471 "/usr/include/math.h" 2 3 4 +# 487 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float64x acosf64x (_Float64x __x) noexcept (true); extern _Float64x __acosf64x (_Float64x __x) noexcept (true); + + extern _Float64x asinf64x (_Float64x __x) noexcept (true); extern _Float64x __asinf64x (_Float64x __x) noexcept (true); + + extern _Float64x atanf64x (_Float64x __x) noexcept (true); extern _Float64x __atanf64x (_Float64x __x) noexcept (true); + + extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); + + + extern _Float64x cosf64x (_Float64x __x) noexcept (true); extern _Float64x __cosf64x (_Float64x __x) noexcept (true); + + extern _Float64x sinf64x (_Float64x __x) noexcept (true); extern _Float64x __sinf64x (_Float64x __x) noexcept (true); + + extern _Float64x tanf64x (_Float64x __x) noexcept (true); extern _Float64x __tanf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x acospif64x (_Float64x __x) noexcept (true); extern _Float64x __acospif64x (_Float64x __x) noexcept (true); + +extern _Float64x asinpif64x (_Float64x __x) noexcept (true); extern _Float64x __asinpif64x (_Float64x __x) noexcept (true); + +extern _Float64x atanpif64x (_Float64x __x) noexcept (true); extern _Float64x __atanpif64x (_Float64x __x) noexcept (true); + +extern _Float64x atan2pif64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2pif64x (_Float64x __y, _Float64x __x) noexcept (true); + + + extern _Float64x cospif64x (_Float64x __x) noexcept (true); extern _Float64x __cospif64x (_Float64x __x) noexcept (true); + + extern _Float64x sinpif64x (_Float64x __x) noexcept (true); extern _Float64x __sinpif64x (_Float64x __x) noexcept (true); + + extern _Float64x tanpif64x (_Float64x __x) noexcept (true); extern _Float64x __tanpif64x (_Float64x __x) noexcept (true); + + + + + + extern _Float64x coshf64x (_Float64x __x) noexcept (true); extern _Float64x __coshf64x (_Float64x __x) noexcept (true); + + extern _Float64x sinhf64x (_Float64x __x) noexcept (true); extern _Float64x __sinhf64x (_Float64x __x) noexcept (true); + + extern _Float64x tanhf64x (_Float64x __x) noexcept (true); extern _Float64x __tanhf64x (_Float64x __x) noexcept (true); + + + + extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true) + ; + + + + + extern _Float64x acoshf64x (_Float64x __x) noexcept (true); extern _Float64x __acoshf64x (_Float64x __x) noexcept (true); + + extern _Float64x asinhf64x (_Float64x __x) noexcept (true); extern _Float64x __asinhf64x (_Float64x __x) noexcept (true); + + extern _Float64x atanhf64x (_Float64x __x) noexcept (true); extern _Float64x __atanhf64x (_Float64x __x) noexcept (true); + + + + + + extern _Float64x expf64x (_Float64x __x) noexcept (true); extern _Float64x __expf64x (_Float64x __x) noexcept (true); + + +extern _Float64x frexpf64x (_Float64x __x, int *__exponent) noexcept (true); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) noexcept (true); + + +extern _Float64x ldexpf64x (_Float64x __x, int __exponent) noexcept (true); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) noexcept (true); + + + extern _Float64x logf64x (_Float64x __x) noexcept (true); extern _Float64x __logf64x (_Float64x __x) noexcept (true); + + + extern _Float64x log10f64x (_Float64x __x) noexcept (true); extern _Float64x __log10f64x (_Float64x __x) noexcept (true); + + +extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float64x exp10f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10f64x (_Float64x __x) noexcept (true); + + +extern _Float64x exp2m1f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2m1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x exp10m1f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10m1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x log2p1f64x (_Float64x __x) noexcept (true); extern _Float64x __log2p1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x log10p1f64x (_Float64x __x) noexcept (true); extern _Float64x __log10p1f64x (_Float64x __x) noexcept (true); + + + extern _Float64x logp1f64x (_Float64x __x) noexcept (true); extern _Float64x __logp1f64x (_Float64x __x) noexcept (true); + + + + + extern _Float64x expm1f64x (_Float64x __x) noexcept (true); extern _Float64x __expm1f64x (_Float64x __x) noexcept (true); + + + extern _Float64x log1pf64x (_Float64x __x) noexcept (true); extern _Float64x __log1pf64x (_Float64x __x) noexcept (true); + + +extern _Float64x logbf64x (_Float64x __x) noexcept (true); extern _Float64x __logbf64x (_Float64x __x) noexcept (true); + + + + + extern _Float64x exp2f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2f64x (_Float64x __x) noexcept (true); + + + extern _Float64x log2f64x (_Float64x __x) noexcept (true); extern _Float64x __log2f64x (_Float64x __x) noexcept (true); + + + + + + + extern _Float64x powf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64x sqrtf64x (_Float64x __x) noexcept (true); extern _Float64x __sqrtf64x (_Float64x __x) noexcept (true); + + + + extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + + + extern _Float64x cbrtf64x (_Float64x __x) noexcept (true); extern _Float64x __cbrtf64x (_Float64x __x) noexcept (true); + + + + + + +extern _Float64x ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fabsf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x floorf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x nanf64x (const char *__tagb) noexcept (true); extern _Float64x __nanf64x (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x j0f64x (_Float64x) noexcept (true); extern _Float64x __j0f64x (_Float64x) noexcept (true); +extern _Float64x j1f64x (_Float64x) noexcept (true); extern _Float64x __j1f64x (_Float64x) noexcept (true); +extern _Float64x jnf64x (int, _Float64x) noexcept (true); extern _Float64x __jnf64x (int, _Float64x) noexcept (true); +extern _Float64x y0f64x (_Float64x) noexcept (true); extern _Float64x __y0f64x (_Float64x) noexcept (true); +extern _Float64x y1f64x (_Float64x) noexcept (true); extern _Float64x __y1f64x (_Float64x) noexcept (true); +extern _Float64x ynf64x (int, _Float64x) noexcept (true); extern _Float64x __ynf64x (int, _Float64x) noexcept (true); + + + + + + extern _Float64x erff64x (_Float64x) noexcept (true); extern _Float64x __erff64x (_Float64x) noexcept (true); + extern _Float64x erfcf64x (_Float64x) noexcept (true); extern _Float64x __erfcf64x (_Float64x) noexcept (true); +extern _Float64x lgammaf64x (_Float64x) noexcept (true); extern _Float64x __lgammaf64x (_Float64x) noexcept (true); + + + + +extern _Float64x tgammaf64x (_Float64x) noexcept (true); extern _Float64x __tgammaf64x (_Float64x) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); + + + + + + +extern _Float64x rintf64x (_Float64x __x) noexcept (true); extern _Float64x __rintf64x (_Float64x __x) noexcept (true); + + +extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + + + + +extern _Float64x nextdownf64x (_Float64x __x) noexcept (true); extern _Float64x __nextdownf64x (_Float64x __x) noexcept (true); + +extern _Float64x nextupf64x (_Float64x __x) noexcept (true); extern _Float64x __nextupf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + +extern _Float64x scalbnf64x (_Float64x __x, int __n) noexcept (true); extern _Float64x __scalbnf64x (_Float64x __x, int __n) noexcept (true); + + + +extern int ilogbf64x (_Float64x __x) noexcept (true); extern int __ilogbf64x (_Float64x __x) noexcept (true); + + + + +extern long int llogbf64x (_Float64x __x) noexcept (true); extern long int __llogbf64x (_Float64x __x) noexcept (true); + + + + +extern _Float64x scalblnf64x (_Float64x __x, long int __n) noexcept (true); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) noexcept (true); + + + +extern _Float64x nearbyintf64x (_Float64x __x) noexcept (true); extern _Float64x __nearbyintf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x truncf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf64x (_Float64x __x) noexcept (true); extern long int __lrintf64x (_Float64x __x) noexcept (true); +__extension__ +extern long long int llrintf64x (_Float64x __x) noexcept (true); extern long long int __llrintf64x (_Float64x __x) noexcept (true); + + + +extern long int lroundf64x (_Float64x __x) noexcept (true); extern long int __lroundf64x (_Float64x __x) noexcept (true); +__extension__ +extern long long int llroundf64x (_Float64x __x) noexcept (true); extern long long int __llroundf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + +extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + + + +extern _Float64x roundevenf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) noexcept (true); + + + + + + +extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float64x getpayloadf64x (const _Float64x *__x) noexcept (true); extern _Float64x __getpayloadf64x (const _Float64x *__x) noexcept (true); + + +extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) noexcept (true); + + +extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) noexcept (true); +# 488 "/usr/include/math.h" 2 3 4 +# 535 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern float fadd (double __x, double __y) noexcept (true); + + +extern float fdiv (double __x, double __y) noexcept (true); + + +extern float ffma (double __x, double __y, double __z) noexcept (true); + + +extern float fmul (double __x, double __y) noexcept (true); + + +extern float fsqrt (double __x) noexcept (true); + + +extern float fsub (double __x, double __y) noexcept (true); +# 536 "/usr/include/math.h" 2 3 4 +# 556 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern float faddl (long double __x, long double __y) noexcept (true); + + +extern float fdivl (long double __x, long double __y) noexcept (true); + + +extern float ffmal (long double __x, long double __y, long double __z) noexcept (true); + + +extern float fmull (long double __x, long double __y) noexcept (true); + + +extern float fsqrtl (long double __x) noexcept (true); + + +extern float fsubl (long double __x, long double __y) noexcept (true); +# 557 "/usr/include/math.h" 2 3 4 +# 585 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern double daddl (long double __x, long double __y) noexcept (true); + + +extern double ddivl (long double __x, long double __y) noexcept (true); + + +extern double dfmal (long double __x, long double __y, long double __z) noexcept (true); + + +extern double dmull (long double __x, long double __y) noexcept (true); + + +extern double dsqrtl (long double __x) noexcept (true); + + +extern double dsubl (long double __x, long double __y) noexcept (true); +# 586 "/usr/include/math.h" 2 3 4 +# 666 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); + + +extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32sqrtf32x (_Float32x __x) noexcept (true); + + +extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) noexcept (true); +# 667 "/usr/include/math.h" 2 3 4 +# 676 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + +extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32sqrtf64 (_Float64 __x) noexcept (true); + + +extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 677 "/usr/include/math.h" 2 3 4 +# 686 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32sqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 687 "/usr/include/math.h" 2 3 4 +# 696 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32divf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float32 f32mulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32sqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float32 f32subf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 697 "/usr/include/math.h" 2 3 4 +# 716 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xfmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + +extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xsqrtf64 (_Float64 __x) noexcept (true); + + +extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 717 "/usr/include/math.h" 2 3 4 +# 726 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xfmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xsqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 727 "/usr/include/math.h" 2 3 4 +# 736 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float32x f32xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xsqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float32x f32xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 737 "/usr/include/math.h" 2 3 4 +# 756 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64sqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 757 "/usr/include/math.h" 2 3 4 +# 766 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64divf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float64 f64mulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64sqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float64 f64subf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 767 "/usr/include/math.h" 2 3 4 +# 786 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64x f64xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float64x f64xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xsqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float64x f64xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 787 "/usr/include/math.h" 2 3 4 +# 823 "/usr/include/math.h" 3 4 +extern int signgam; +# 903 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 1024 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/iscanonical.h" 1 3 4 +# 23 "/usr/include/bits/iscanonical.h" 3 4 +extern int __iscanonicall (long double __x) + noexcept (true) __attribute__ ((__const__)); +# 46 "/usr/include/bits/iscanonical.h" 3 4 +extern "C++" { +inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (long double __val) { return __iscanonicall (__val); } + +inline int iscanonical (_Float128 __val) { return ((void) (__typeof (__val)) (__val), 1); } + +} +# 1025 "/usr/include/math.h" 2 3 4 +# 1036 "/usr/include/math.h" 3 4 +extern "C++" { +inline int issignaling (float __val) { return __issignalingf (__val); } +inline int issignaling (double __val) { return __issignaling (__val); } +inline int +issignaling (long double __val) +{ + + + + return __issignalingl (__val); + +} + + + +inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } + +} +# 1067 "/usr/include/math.h" 3 4 +extern "C++" { +# 1098 "/usr/include/math.h" 3 4 +template inline bool +iszero (__T __val) +{ + return __val == 0; +} + +} +# 1333 "/usr/include/math.h" 3 4 +extern "C++" { +template struct __iseqsig_type; + +template<> struct __iseqsig_type +{ + static int __call (float __x, float __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (double __x, double __y) throw () + { + return __iseqsig (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (long double __x, long double __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; + + +template<> struct __iseqsig_type<_Float32> +{ + static int __call (_Float32 __x, _Float32 __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + + + +template<> struct __iseqsig_type<_Float64> +{ + static int __call (_Float64 __x, _Float64 __y) throw () + { + return __iseqsig (__x, __y); + } +}; + + + + + +template<> struct __iseqsig_type<_Float128> +{ + static int __call (_Float128 __x, _Float128 __y) throw () + { + + return __iseqsigf128 (__x, __y); + + + + } +}; + + + +template<> struct __iseqsig_type<_Float32x> +{ + static int __call (_Float32x __x, _Float32x __y) throw () + { + return __iseqsig (__x, __y); + } +}; + + + +template<> struct __iseqsig_type<_Float64x> +{ + static int __call (_Float64x __x, _Float64x __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; + + +template +inline int +iseqsig (_T1 __x, _T2 __y) throw () +{ + + typedef decltype (((__x) + (__y) + 0.0f)) _T3; + + + + return __iseqsig_type<_T3>::__call (__x, __y); +} + +} + + + + +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::acos; + + + inline constexpr float + acos(float __x) + { return __builtin_acosf(__x); } + + inline constexpr long double + acos(long double __x) + { return __builtin_acosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acos(_Tp __x) + { return __builtin_acos(__x); } + + using ::asin; + + + inline constexpr float + asin(float __x) + { return __builtin_asinf(__x); } + + inline constexpr long double + asin(long double __x) + { return __builtin_asinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asin(_Tp __x) + { return __builtin_asin(__x); } + + using ::atan; + + + inline constexpr float + atan(float __x) + { return __builtin_atanf(__x); } + + inline constexpr long double + atan(long double __x) + { return __builtin_atanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atan(_Tp __x) + { return __builtin_atan(__x); } + + using ::atan2; + + + inline constexpr float + atan2(float __y, float __x) + { return __builtin_atan2f(__y, __x); } + + inline constexpr long double + atan2(long double __y, long double __x) + { return __builtin_atan2l(__y, __x); } + + + using ::ceil; + + + inline constexpr float + ceil(float __x) + { return __builtin_ceilf(__x); } + + inline constexpr long double + ceil(long double __x) + { return __builtin_ceill(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ceil(_Tp __x) + { return __builtin_ceil(__x); } + + using ::cos; + + + inline constexpr float + cos(float __x) + { return __builtin_cosf(__x); } + + inline constexpr long double + cos(long double __x) + { return __builtin_cosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cos(_Tp __x) + { return __builtin_cos(__x); } + + using ::cosh; + + + inline constexpr float + cosh(float __x) + { return __builtin_coshf(__x); } + + inline constexpr long double + cosh(long double __x) + { return __builtin_coshl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cosh(_Tp __x) + { return __builtin_cosh(__x); } + + using ::exp; + + + inline constexpr float + exp(float __x) + { return __builtin_expf(__x); } + + inline constexpr long double + exp(long double __x) + { return __builtin_expl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp(_Tp __x) + { return __builtin_exp(__x); } + + using ::fabs; + + + inline constexpr float + fabs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + fabs(long double __x) + { return __builtin_fabsl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + fabs(_Tp __x) + { return __builtin_fabs(__x); } + + using ::floor; + + + inline constexpr float + floor(float __x) + { return __builtin_floorf(__x); } + + inline constexpr long double + floor(long double __x) + { return __builtin_floorl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + floor(_Tp __x) + { return __builtin_floor(__x); } + + using ::fmod; + + + inline constexpr float + fmod(float __x, float __y) + { return __builtin_fmodf(__x, __y); } + + inline constexpr long double + fmod(long double __x, long double __y) + { return __builtin_fmodl(__x, __y); } + + + using ::frexp; + + + inline float + frexp(float __x, int* __exp) + { return __builtin_frexpf(__x, __exp); } + + inline long double + frexp(long double __x, int* __exp) + { return __builtin_frexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + frexp(_Tp __x, int* __exp) + { return __builtin_frexp(__x, __exp); } + + using ::ldexp; + + + inline constexpr float + ldexp(float __x, int __exp) + { return __builtin_ldexpf(__x, __exp); } + + inline constexpr long double + ldexp(long double __x, int __exp) + { return __builtin_ldexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ldexp(_Tp __x, int __exp) + { return __builtin_ldexp(__x, __exp); } + + using ::log; + + + inline constexpr float + log(float __x) + { return __builtin_logf(__x); } + + inline constexpr long double + log(long double __x) + { return __builtin_logl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log(_Tp __x) + { return __builtin_log(__x); } + + using ::log10; + + + inline constexpr float + log10(float __x) + { return __builtin_log10f(__x); } + + inline constexpr long double + log10(long double __x) + { return __builtin_log10l(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log10(_Tp __x) + { return __builtin_log10(__x); } + + using ::modf; + + + inline float + modf(float __x, float* __iptr) + { return __builtin_modff(__x, __iptr); } + + inline long double + modf(long double __x, long double* __iptr) + { return __builtin_modfl(__x, __iptr); } + + + using ::pow; + + + inline constexpr float + pow(float __x, float __y) + { return __builtin_powf(__x, __y); } + + inline constexpr long double + pow(long double __x, long double __y) + { return __builtin_powl(__x, __y); } +# 400 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::sin; + + + inline constexpr float + sin(float __x) + { return __builtin_sinf(__x); } + + inline constexpr long double + sin(long double __x) + { return __builtin_sinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sin(_Tp __x) + { return __builtin_sin(__x); } + + using ::sinh; + + + inline constexpr float + sinh(float __x) + { return __builtin_sinhf(__x); } + + inline constexpr long double + sinh(long double __x) + { return __builtin_sinhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sinh(_Tp __x) + { return __builtin_sinh(__x); } + + using ::sqrt; + + + inline constexpr float + sqrt(float __x) + { return __builtin_sqrtf(__x); } + + inline constexpr long double + sqrt(long double __x) + { return __builtin_sqrtl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sqrt(_Tp __x) + { return __builtin_sqrt(__x); } + + using ::tan; + + + inline constexpr float + tan(float __x) + { return __builtin_tanf(__x); } + + inline constexpr long double + tan(long double __x) + { return __builtin_tanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tan(_Tp __x) + { return __builtin_tan(__x); } + + using ::tanh; + + + inline constexpr float + tanh(float __x) + { return __builtin_tanhf(__x); } + + inline constexpr long double + tanh(long double __x) + { return __builtin_tanhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tanh(_Tp __x) + { return __builtin_tanh(__x); } +# 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + atan2(_Tp __y, _Up __x) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return atan2(__type(__y), __type(__x)); + } + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmod(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmod(__type(__x), __type(__y)); + } + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + pow(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return pow(__type(__x), __type(__y)); + } +# 1100 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + constexpr int + fpclassify(float __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(long double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + fpclassify(_Tp __x) + { return __x != 0 ? 4 : 2; } + + + + constexpr bool + isfinite(float __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(double __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(long double __x) + { return __builtin_isfinite(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isfinite(_Tp) + { return true; } + + + + constexpr bool + isinf(float __x) + { return __builtin_isinf(__x); } + + + + + + constexpr bool + isinf(double __x) + { return __builtin_isinf(__x); } + + + constexpr bool + isinf(long double __x) + { return __builtin_isinf(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isinf(_Tp) + { return false; } + + + + constexpr bool + isnan(float __x) + { return __builtin_isnan(__x); } + + + + + + constexpr bool + isnan(double __x) + { return __builtin_isnan(__x); } + + + constexpr bool + isnan(long double __x) + { return __builtin_isnan(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnan(_Tp) + { return false; } + + + + constexpr bool + isnormal(float __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(double __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(long double __x) + { return __builtin_isnormal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnormal(_Tp __x) + { return __x != 0 ? true : false; } + + + + + constexpr bool + signbit(float __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(double __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(long double __x) + { return __builtin_signbit(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + signbit(_Tp __x) + { return __x < 0 ? true : false; } + + + + constexpr bool + isgreater(float __x, float __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(double __x, double __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(long double __x, long double __y) + { return __builtin_isgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isgreaterequal(float __x, float __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(double __x, double __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(long double __x, long double __y) + { return __builtin_isgreaterequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreaterequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreaterequal(__type(__x), __type(__y)); + } + + + + constexpr bool + isless(float __x, float __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(double __x, double __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(long double __x, long double __y) + { return __builtin_isless(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isless(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isless(__type(__x), __type(__y)); + } + + + + constexpr bool + islessequal(float __x, float __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(double __x, double __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(long double __x, long double __y) + { return __builtin_islessequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessequal(__type(__x), __type(__y)); + } + + + + constexpr bool + islessgreater(float __x, float __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(double __x, double __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(long double __x, long double __y) + { return __builtin_islessgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isunordered(float __x, float __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(double __x, double __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(long double __x, long double __y) + { return __builtin_isunordered(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isunordered(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isunordered(__type(__x), __type(__y)); + } +# 1820 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::acosf; + + + using ::acosl; + + + + using ::asinf; + + + using ::asinl; + + + + using ::atanf; + + + using ::atanl; + + + + using ::atan2f; + + + using ::atan2l; + + + + using ::ceilf; + + + using ::ceill; + + + + using ::cosf; + + + using ::cosl; + + + + using ::coshf; + + + using ::coshl; + + + + using ::expf; + + + using ::expl; + + + + using ::fabsf; + + + using ::fabsl; + + + + using ::floorf; + + + using ::floorl; + + + + using ::fmodf; + + + using ::fmodl; + + + + using ::frexpf; + + + using ::frexpl; + + + + using ::ldexpf; + + + using ::ldexpl; + + + + using ::logf; + + + using ::logl; + + + + using ::log10f; + + + using ::log10l; + + + + using ::modff; + + + using ::modfl; + + + + using ::powf; + + + using ::powl; + + + + using ::sinf; + + + using ::sinl; + + + + using ::sinhf; + + + using ::sinhl; + + + + using ::sqrtf; + + + using ::sqrtl; + + + + using ::tanf; + + + using ::tanl; + + + + using ::tanhf; + + + using ::tanhl; +# 2085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::double_t; + using ::float_t; + + + + using ::acosh; + using ::acoshf; + using ::acoshl; + + using ::asinh; + using ::asinhf; + using ::asinhl; + + using ::atanh; + using ::atanhf; + using ::atanhl; + + using ::cbrt; + using ::cbrtf; + using ::cbrtl; + + using ::copysign; + using ::copysignf; + using ::copysignl; + + using ::erf; + using ::erff; + using ::erfl; + + using ::erfc; + using ::erfcf; + using ::erfcl; + + using ::exp2; + using ::exp2f; + using ::exp2l; + + using ::expm1; + using ::expm1f; + using ::expm1l; + + using ::fdim; + using ::fdimf; + using ::fdiml; + + using ::fma; + using ::fmaf; + using ::fmal; + + using ::fmax; + using ::fmaxf; + using ::fmaxl; + + using ::fmin; + using ::fminf; + using ::fminl; + + using ::hypot; + using ::hypotf; + using ::hypotl; + + using ::ilogb; + using ::ilogbf; + using ::ilogbl; + + using ::lgamma; + using ::lgammaf; + using ::lgammal; + + + using ::llrint; + using ::llrintf; + using ::llrintl; + + using ::llround; + using ::llroundf; + using ::llroundl; + + + using ::log1p; + using ::log1pf; + using ::log1pl; + + using ::log2; + using ::log2f; + using ::log2l; + + using ::logb; + using ::logbf; + using ::logbl; + + using ::lrint; + using ::lrintf; + using ::lrintl; + + using ::lround; + using ::lroundf; + using ::lroundl; + + using ::nan; + using ::nanf; + using ::nanl; + + using ::nearbyint; + using ::nearbyintf; + using ::nearbyintl; + + using ::nextafter; + using ::nextafterf; + using ::nextafterl; + + using ::nexttoward; + using ::nexttowardf; + using ::nexttowardl; + + using ::remainder; + using ::remainderf; + using ::remainderl; + + using ::remquo; + using ::remquof; + using ::remquol; + + using ::rint; + using ::rintf; + using ::rintl; + + using ::round; + using ::roundf; + using ::roundl; + + using ::scalbln; + using ::scalblnf; + using ::scalblnl; + + using ::scalbn; + using ::scalbnf; + using ::scalbnl; + + using ::tgamma; + using ::tgammaf; + using ::tgammal; + + using ::trunc; + using ::truncf; + using ::truncl; + + + + constexpr float + acosh(float __x) + { return __builtin_acoshf(__x); } + + constexpr long double + acosh(long double __x) + { return __builtin_acoshl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acosh(_Tp __x) + { return __builtin_acosh(__x); } + + + + constexpr float + asinh(float __x) + { return __builtin_asinhf(__x); } + + constexpr long double + asinh(long double __x) + { return __builtin_asinhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asinh(_Tp __x) + { return __builtin_asinh(__x); } + + + + constexpr float + atanh(float __x) + { return __builtin_atanhf(__x); } + + constexpr long double + atanh(long double __x) + { return __builtin_atanhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atanh(_Tp __x) + { return __builtin_atanh(__x); } + + + + constexpr float + cbrt(float __x) + { return __builtin_cbrtf(__x); } + + constexpr long double + cbrt(long double __x) + { return __builtin_cbrtl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cbrt(_Tp __x) + { return __builtin_cbrt(__x); } + + + + constexpr float + copysign(float __x, float __y) + { return __builtin_copysignf(__x, __y); } + + constexpr long double + copysign(long double __x, long double __y) + { return __builtin_copysignl(__x, __y); } + + + + constexpr float + erf(float __x) + { return __builtin_erff(__x); } + + constexpr long double + erf(long double __x) + { return __builtin_erfl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erf(_Tp __x) + { return __builtin_erf(__x); } + + + + constexpr float + erfc(float __x) + { return __builtin_erfcf(__x); } + + constexpr long double + erfc(long double __x) + { return __builtin_erfcl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erfc(_Tp __x) + { return __builtin_erfc(__x); } + + + + constexpr float + exp2(float __x) + { return __builtin_exp2f(__x); } + + constexpr long double + exp2(long double __x) + { return __builtin_exp2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp2(_Tp __x) + { return __builtin_exp2(__x); } + + + + constexpr float + expm1(float __x) + { return __builtin_expm1f(__x); } + + constexpr long double + expm1(long double __x) + { return __builtin_expm1l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + expm1(_Tp __x) + { return __builtin_expm1(__x); } + + + + constexpr float + fdim(float __x, float __y) + { return __builtin_fdimf(__x, __y); } + + constexpr long double + fdim(long double __x, long double __y) + { return __builtin_fdiml(__x, __y); } + + + + constexpr float + fma(float __x, float __y, float __z) + { return __builtin_fmaf(__x, __y, __z); } + + constexpr long double + fma(long double __x, long double __y, long double __z) + { return __builtin_fmal(__x, __y, __z); } + + + + constexpr float + fmax(float __x, float __y) + { return __builtin_fmaxf(__x, __y); } + + constexpr long double + fmax(long double __x, long double __y) + { return __builtin_fmaxl(__x, __y); } + + + + constexpr float + fmin(float __x, float __y) + { return __builtin_fminf(__x, __y); } + + constexpr long double + fmin(long double __x, long double __y) + { return __builtin_fminl(__x, __y); } + + + + constexpr float + hypot(float __x, float __y) + { return __builtin_hypotf(__x, __y); } + + constexpr long double + hypot(long double __x, long double __y) + { return __builtin_hypotl(__x, __y); } + + + + constexpr int + ilogb(float __x) + { return __builtin_ilogbf(__x); } + + constexpr int + ilogb(long double __x) + { return __builtin_ilogbl(__x); } + + + + template + constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + ilogb(_Tp __x) + { return __builtin_ilogb(__x); } + + + + constexpr float + lgamma(float __x) + { return __builtin_lgammaf(__x); } + + constexpr long double + lgamma(long double __x) + { return __builtin_lgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + lgamma(_Tp __x) + { return __builtin_lgamma(__x); } + + + + constexpr long long + llrint(float __x) + { return __builtin_llrintf(__x); } + + constexpr long long + llrint(long double __x) + { return __builtin_llrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llrint(_Tp __x) + { return __builtin_llrint(__x); } + + + + constexpr long long + llround(float __x) + { return __builtin_llroundf(__x); } + + constexpr long long + llround(long double __x) + { return __builtin_llroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llround(_Tp __x) + { return __builtin_llround(__x); } + + + + constexpr float + log1p(float __x) + { return __builtin_log1pf(__x); } + + constexpr long double + log1p(long double __x) + { return __builtin_log1pl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log1p(_Tp __x) + { return __builtin_log1p(__x); } + + + + + constexpr float + log2(float __x) + { return __builtin_log2f(__x); } + + constexpr long double + log2(long double __x) + { return __builtin_log2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log2(_Tp __x) + { return __builtin_log2(__x); } + + + + constexpr float + logb(float __x) + { return __builtin_logbf(__x); } + + constexpr long double + logb(long double __x) + { return __builtin_logbl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + logb(_Tp __x) + { return __builtin_logb(__x); } + + + + constexpr long + lrint(float __x) + { return __builtin_lrintf(__x); } + + constexpr long + lrint(long double __x) + { return __builtin_lrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lrint(_Tp __x) + { return __builtin_lrint(__x); } + + + + constexpr long + lround(float __x) + { return __builtin_lroundf(__x); } + + constexpr long + lround(long double __x) + { return __builtin_lroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lround(_Tp __x) + { return __builtin_lround(__x); } + + + + constexpr float + nearbyint(float __x) + { return __builtin_nearbyintf(__x); } + + constexpr long double + nearbyint(long double __x) + { return __builtin_nearbyintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nearbyint(_Tp __x) + { return __builtin_nearbyint(__x); } + + + + constexpr float + nextafter(float __x, float __y) + { return __builtin_nextafterf(__x, __y); } + + constexpr long double + nextafter(long double __x, long double __y) + { return __builtin_nextafterl(__x, __y); } + + + + constexpr float + nexttoward(float __x, long double __y) + { return __builtin_nexttowardf(__x, __y); } + + constexpr long double + nexttoward(long double __x, long double __y) + { return __builtin_nexttowardl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nexttoward(_Tp __x, long double __y) + { return __builtin_nexttoward(__x, __y); } + + + + constexpr float + remainder(float __x, float __y) + { return __builtin_remainderf(__x, __y); } + + constexpr long double + remainder(long double __x, long double __y) + { return __builtin_remainderl(__x, __y); } + + + + inline float + remquo(float __x, float __y, int* __pquo) + { return __builtin_remquof(__x, __y, __pquo); } + + inline long double + remquo(long double __x, long double __y, int* __pquo) + { return __builtin_remquol(__x, __y, __pquo); } + + + + constexpr float + rint(float __x) + { return __builtin_rintf(__x); } + + constexpr long double + rint(long double __x) + { return __builtin_rintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + rint(_Tp __x) + { return __builtin_rint(__x); } + + + + constexpr float + round(float __x) + { return __builtin_roundf(__x); } + + constexpr long double + round(long double __x) + { return __builtin_roundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + round(_Tp __x) + { return __builtin_round(__x); } + + + + constexpr float + scalbln(float __x, long __ex) + { return __builtin_scalblnf(__x, __ex); } + + constexpr long double + scalbln(long double __x, long __ex) + { return __builtin_scalblnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbln(_Tp __x, long __ex) + { return __builtin_scalbln(__x, __ex); } + + + + constexpr float + scalbn(float __x, int __ex) + { return __builtin_scalbnf(__x, __ex); } + + constexpr long double + scalbn(long double __x, int __ex) + { return __builtin_scalbnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbn(_Tp __x, int __ex) + { return __builtin_scalbn(__x, __ex); } + + + + constexpr float + tgamma(float __x) + { return __builtin_tgammaf(__x); } + + constexpr long double + tgamma(long double __x) + { return __builtin_tgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tgamma(_Tp __x) + { return __builtin_tgamma(__x); } + + + + constexpr float + trunc(float __x) + { return __builtin_truncf(__x); } + + constexpr long double + trunc(long double __x) + { return __builtin_truncl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + trunc(_Tp __x) + { return __builtin_trunc(__x); } +# 3682 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + copysign(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return copysign(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fdim(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fdim(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmax(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmax(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmin(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmin(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + hypot(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return hypot(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + nextafter(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return nextafter(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remainder(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remainder(__type(__x), __type(__y)); + } + + template + inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remquo(_Tp __x, _Up __y, int* __pquo) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remquo(__type(__x), __type(__y), __pquo); + } + + template + constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type + fma(_Tp __x, _Up __y, _Vp __z) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; + return fma(__type(__x), __type(__y), __type(__z)); + } + + + + + + + + template + inline _Tp + __hypot3(_Tp __x, _Tp __y, _Tp __z) + { + __x = std::abs(__x); + __y = std::abs(__y); + __z = std::abs(__z); + if (_Tp __a = __x < __y ? __y < __z ? __z : __y : __x < __z ? __z : __x) + return __a * std::sqrt((__x / __a) * (__x / __a) + + (__y / __a) * (__y / __a) + + (__z / __a) * (__z / __a)); + else + return {}; + } + + inline float + hypot(float __x, float __y, float __z) + { return std::__hypot3(__x, __y, __z); } + + inline double + hypot(double __x, double __y, double __z) + { return std::__hypot3(__x, __y, __z); } + + inline long double + hypot(long double __x, long double __y, long double __z) + { return std::__hypot3(__x, __y, __z); } + + template + __gnu_cxx::__promoted_t<_Tp, _Up, _Vp> + hypot(_Tp __x, _Up __y, _Vp __z) + { + using __type = __gnu_cxx::__promoted_t<_Tp, _Up, _Vp>; + return std::__hypot3<__type>(__x, __y, __z); + } +# 3902 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +} + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 1 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 1 3 +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_defines.h" 1 3 +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + void + __throw_bad_exception(void) __attribute__((__noreturn__)); + + + void + __throw_bad_alloc(void) __attribute__((__noreturn__)); + + void + __throw_bad_array_new_length(void) __attribute__((__noreturn__)); + + + void + __throw_bad_cast(void) __attribute__((__noreturn__,__cold__)); + + void + __throw_bad_typeid(void) __attribute__((__noreturn__,__cold__)); + + + void + __throw_logic_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_domain_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_invalid_argument(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_length_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_out_of_range(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__,__cold__)) + __attribute__((__format__(__gnu_printf__, 1, 2))); + + void + __throw_runtime_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_range_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_overflow_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_underflow_error(const char*) __attribute__((__noreturn__,__cold__)); + + + void + __throw_ios_failure(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_ios_failure(const char*, int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_system_error(int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_future_error(int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_bad_function_call() __attribute__((__noreturn__,__cold__)); +# 140 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 + +} +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + struct __is_integer_nonstrict + : public std::__is_integer<_Tp> + { + using std::__is_integer<_Tp>::__value; + + + enum { __width = __value ? sizeof(_Tp) * 8 : 0 }; + }; + + template + struct __numeric_traits_integer + { + + static_assert(__is_integer_nonstrict<_Value>::__value, + "invalid specialization"); + + + + + static const bool __is_signed = (_Value)(-1) < 0; + static const int __digits + = __is_integer_nonstrict<_Value>::__width - __is_signed; + + + static const _Value __max = __is_signed + ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1) + : ~(_Value)0; + static const _Value __min = __is_signed ? -__max - 1 : (_Value)0; + }; + + template + const _Value __numeric_traits_integer<_Value>::__min; + + template + const _Value __numeric_traits_integer<_Value>::__max; + + template + const bool __numeric_traits_integer<_Value>::__is_signed; + + template + const int __numeric_traits_integer<_Value>::__digits; +# 137 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + using __int_traits = __numeric_traits_integer<_Tp>; +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + struct __numeric_traits_floating + { + + static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); + + + static const bool __is_signed = true; + static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); + static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); + }; + + template + const int __numeric_traits_floating<_Value>::__max_digits10; + + template + const bool __numeric_traits_floating<_Value>::__is_signed; + + template + const int __numeric_traits_floating<_Value>::__digits10; + + template + const int __numeric_traits_floating<_Value>::__max_exponent10; + + + + + + + template + struct __numeric_traits + : public __numeric_traits_integer<_Value> + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; +# 238 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + +} +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 1 3 +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + class reference_wrapper; +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + using value_type = _Tp; + using type = integral_constant<_Tp, __v>; + constexpr operator value_type() const noexcept { return value; } + + + constexpr value_type operator()() const noexcept { return value; } + + }; +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + using __bool_constant = integral_constant; + + + + using true_type = __bool_constant; + + + using false_type = __bool_constant; + + + + + template + using bool_constant = __bool_constant<__v>; + + + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { using type = _Tp; }; + + + template + using __enable_if_t = typename enable_if<_Cond, _Tp>::type; + + template + struct __conditional + { + template + using type = _Tp; + }; + + template<> + struct __conditional + { + template + using type = _Up; + }; + + + template + using __conditional_t + = typename __conditional<_Cond>::template type<_If, _Else>; + + + template + struct __type_identity + { using type = _Type; }; + + template + using __type_identity_t = typename __type_identity<_Tp>::type; + + namespace __detail + { + + template + using __first_t = _Tp; + + + template + auto __or_fn(int) -> __first_t...>; + + template + auto __or_fn(...) -> true_type; + + template + auto __and_fn(int) -> __first_t...>; + + template + auto __and_fn(...) -> false_type; + } + + + + + template + struct __or_ + : decltype(__detail::__or_fn<_Bn...>(0)) + { }; + + template + struct __and_ + : decltype(__detail::__and_fn<_Bn...>(0)) + { }; + + template + struct __not_ + : __bool_constant + { }; + + + + + + template + inline constexpr bool __or_v = __or_<_Bn...>::value; + template + inline constexpr bool __and_v = __and_<_Bn...>::value; + + namespace __detail + { + template + struct __disjunction_impl + { using type = _B1; }; + + template + struct __disjunction_impl<__enable_if_t, _B1, _B2, _Bn...> + { using type = typename __disjunction_impl::type; }; + + template + struct __conjunction_impl + { using type = _B1; }; + + template + struct __conjunction_impl<__enable_if_t, _B1, _B2, _Bn...> + { using type = typename __conjunction_impl::type; }; + } + + + template + struct conjunction + : __detail::__conjunction_impl::type + { }; + + template<> + struct conjunction<> + : true_type + { }; + + template + struct disjunction + : __detail::__disjunction_impl::type + { }; + + template<> + struct disjunction<> + : false_type + { }; + + template + struct negation + : __not_<_Pp>::type + { }; + + + + + template + inline constexpr bool conjunction_v = conjunction<_Bn...>::value; + + template + inline constexpr bool disjunction_v = disjunction<_Bn...>::value; + + template + inline constexpr bool negation_v = negation<_Pp>::value; + + + + + + template + struct is_reference; + template + struct is_function; + template + struct is_void; + template + struct remove_cv; + template + struct is_const; + + + template + struct __is_array_unknown_bounds; + + + + + template + constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>) + { return {}; } + + template + constexpr typename __or_< + is_reference<_NestedType>, + is_function<_NestedType>, + is_void<_NestedType>, + __is_array_unknown_bounds<_NestedType> + >::type __is_complete_or_unbounded(_TypeIdentity) + { return {}; } + + + template + using __remove_cv_t = typename remove_cv<_Tp>::type; + + + + + + template + struct is_void + : public false_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + + template + struct __is_integral_helper + : public false_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + + + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + __extension__ + template<> + struct __is_integral_helper<__int128> + : public true_type { }; + + __extension__ + template<> + struct __is_integral_helper + : public true_type { }; +# 460 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_integral + : public __is_integral_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct __is_floating_point_helper + : public false_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; +# 513 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __is_floating_point_helper<__float128> + : public true_type { }; + + + + + template + struct is_floating_point + : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type + { }; + + + + template + struct is_array + : public __bool_constant<__is_array(_Tp)> + { }; +# 545 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __is_pointer_helper + : public false_type { }; + + template + struct __is_pointer_helper<_Tp*> + : public true_type { }; + + + template + struct is_pointer + : public __is_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct is_lvalue_reference + : public false_type { }; + + template + struct is_lvalue_reference<_Tp&> + : public true_type { }; + + + template + struct is_rvalue_reference + : public false_type { }; + + template + struct is_rvalue_reference<_Tp&&> + : public true_type { }; + + + + template + struct is_member_object_pointer + : public __bool_constant<__is_member_object_pointer(_Tp)> + { }; +# 601 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_member_function_pointer + : public __bool_constant<__is_member_function_pointer(_Tp)> + { }; +# 622 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_enum + : public __bool_constant<__is_enum(_Tp)> + { }; + + + template + struct is_union + : public __bool_constant<__is_union(_Tp)> + { }; + + + template + struct is_class + : public __bool_constant<__is_class(_Tp)> + { }; + + + + template + struct is_function + : public __bool_constant<__is_function(_Tp)> + { }; +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_null_pointer + : public false_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); + + + + + + + template + struct is_reference + : public __bool_constant<__is_reference(_Tp)> + { }; +# 715 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_arithmetic + : public __or_, is_floating_point<_Tp>>::type + { }; + + + template + struct is_fundamental + : public __or_, is_void<_Tp>, + is_null_pointer<_Tp>>::type + { }; + + + + template + struct is_object + : public __bool_constant<__is_object(_Tp)> + { }; +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_member_pointer; + + + template + struct is_scalar + : public __or_, is_enum<_Tp>, is_pointer<_Tp>, + is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type + { }; + + + template + struct is_compound + : public __bool_constant::value> { }; + + + + template + struct is_member_pointer + : public __bool_constant<__is_member_pointer(_Tp)> + { }; +# 779 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_same; + + + template + using __is_one_of = __or_...>; + + + __extension__ + template + using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>, + signed char, signed short, signed int, signed long, + signed long long + + , signed __int128 +# 804 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + >; + + + __extension__ + template + using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>, + unsigned char, unsigned short, unsigned int, unsigned long, + unsigned long long + + , unsigned __int128 +# 824 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + >; + + + template + using __is_standard_integer + = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>; + + + template using __void_t = void; + + + + + + template + struct is_const + : public false_type { }; + + template + struct is_const<_Tp const> + : public true_type { }; + + + template + struct is_volatile + : public false_type { }; + + template + struct is_volatile<_Tp volatile> + : public true_type { }; + + + template + struct is_trivial + : public __bool_constant<__is_trivial(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_copyable + : public __bool_constant<__is_trivially_copyable(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_standard_layout + : public __bool_constant<__is_standard_layout(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + + template + struct + + is_pod + : public __bool_constant<__is_pod(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + template + struct + [[__deprecated__]] + is_literal_type + : public __bool_constant<__is_literal_type(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_empty + : public __bool_constant<__is_empty(_Tp)> + { }; + + + template + struct is_polymorphic + : public __bool_constant<__is_polymorphic(_Tp)> + { }; + + + + + template + struct is_final + : public __bool_constant<__is_final(_Tp)> + { }; + + + + template + struct is_abstract + : public __bool_constant<__is_abstract(_Tp)> + { }; + + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public __bool_constant<_Tp(-1) < _Tp(0)> + { }; + + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>>::type + { }; + + + template + _Up + __declval(int); + + template + _Tp + __declval(long); + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)); + + template + struct remove_all_extents; + + + template + struct __is_array_known_bounds + : public false_type + { }; + + template + struct __is_array_known_bounds<_Tp[_Size]> + : public true_type + { }; + + template + struct __is_array_unknown_bounds + : public false_type + { }; + + template + struct __is_array_unknown_bounds<_Tp[]> + : public true_type + { }; +# 1006 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + struct __do_is_destructible_impl + { + template().~_Tp())> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_destructible_impl + : public __do_is_destructible_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_destructible_safe; + + template + struct __is_destructible_safe<_Tp, false, false> + : public __is_destructible_impl::type>::type + { }; + + template + struct __is_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_destructible_safe<_Tp, false, true> + : public true_type { }; + + + + template + struct is_destructible + : public __is_destructible_safe<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + + + struct __do_is_nt_destructible_impl + { + template + static __bool_constant().~_Tp())> + __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_nt_destructible_impl + : public __do_is_nt_destructible_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_nt_destructible_safe; + + template + struct __is_nt_destructible_safe<_Tp, false, false> + : public __is_nt_destructible_impl::type>::type + { }; + + template + struct __is_nt_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_nt_destructible_safe<_Tp, false, true> + : public true_type { }; + + + + template + struct is_nothrow_destructible + : public __is_nt_destructible_safe<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_constructible_impl + = __bool_constant<__is_constructible(_Tp, _Args...)>; + + + + template + struct is_constructible + : public __is_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_default_constructible + : public __is_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct __add_lvalue_reference_helper + { using type = _Tp; }; + + template + struct __add_lvalue_reference_helper<_Tp, __void_t<_Tp&>> + { using type = _Tp&; }; + + template + using __add_lval_ref_t = typename __add_lvalue_reference_helper<_Tp>::type; + + + + template + struct is_copy_constructible + : public __is_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct __add_rvalue_reference_helper + { using type = _Tp; }; + + template + struct __add_rvalue_reference_helper<_Tp, __void_t<_Tp&&>> + { using type = _Tp&&; }; + + template + using __add_rval_ref_t = typename __add_rvalue_reference_helper<_Tp>::type; + + + + template + struct is_move_constructible + : public __is_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_nothrow_constructible_impl + = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; + + + + template + struct is_nothrow_constructible + : public __is_nothrow_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_default_constructible + : public __is_nothrow_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_assignable_impl = __bool_constant<__is_assignable(_Tp, _Up)>; + + + + template + struct is_assignable + : public __is_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_copy_assignable + : public __is_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_move_assignable + : public __is_assignable_impl<__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_nothrow_assignable_impl + = __bool_constant<__is_nothrow_assignable(_Tp, _Up)>; + + + + template + struct is_nothrow_assignable + : public __is_nothrow_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_copy_assignable + : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_move_assignable + : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_trivially_constructible_impl + = __bool_constant<__is_trivially_constructible(_Tp, _Args...)>; + + + + template + struct is_trivially_constructible + : public __is_trivially_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_default_constructible + : public __is_trivially_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; +# 1319 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + struct __do_is_implicitly_default_constructible_impl + { + template + static void __helper(const _Tp&); + + template + static true_type __test(const _Tp&, + decltype(__helper({}))* = 0); + + static false_type __test(...); + }; + + template + struct __is_implicitly_default_constructible_impl + : public __do_is_implicitly_default_constructible_impl + { + using type = decltype(__test(declval<_Tp>())); + }; + + template + struct __is_implicitly_default_constructible_safe + : public __is_implicitly_default_constructible_impl<_Tp>::type + { }; + + template + struct __is_implicitly_default_constructible + : public __and_<__is_constructible_impl<_Tp>, + __is_implicitly_default_constructible_safe<_Tp>>::type + { }; + + + + template + struct is_trivially_copy_constructible + : public __is_trivially_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_move_constructible + : public __is_trivially_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_trivially_assignable_impl + = __bool_constant<__is_trivially_assignable(_Tp, _Up)>; + + + + template + struct is_trivially_assignable + : public __is_trivially_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_copy_assignable + : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_move_assignable + : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_destructible + : public __and_<__is_destructible_safe<_Tp>, + __bool_constant<__has_trivial_destructor(_Tp)>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + struct has_virtual_destructor + : public __bool_constant<__has_virtual_destructor(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + template + struct alignment_of + : public integral_constant + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct rank + : public integral_constant { }; + + template + struct rank<_Tp[_Size]> + : public integral_constant::value> { }; + + template + struct rank<_Tp[]> + : public integral_constant::value> { }; + + + template + struct extent + : public integral_constant { }; + + template + struct extent<_Tp[_Size], 0> + : public integral_constant { }; + + template + struct extent<_Tp[_Size], _Uint> + : public extent<_Tp, _Uint - 1>::type { }; + + template + struct extent<_Tp[], 0> + : public integral_constant { }; + + template + struct extent<_Tp[], _Uint> + : public extent<_Tp, _Uint - 1>::type { }; + + + + + + + template + struct is_same + : public __bool_constant<__is_same(_Tp, _Up)> + { }; +# 1491 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_base_of + : public __bool_constant<__is_base_of(_Base, _Derived)> + { }; + + + template + struct is_convertible + : public __bool_constant<__is_convertible(_From, _To)> + { }; +# 1540 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + using __is_array_convertible + = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; +# 1600 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++14-extensions" + template + struct __is_nothrow_new_constructible_impl + : __bool_constant< + noexcept(::new(std::declval()) _Tp(std::declval<_Args>()...)) + > + { }; + + template + inline constexpr bool __is_nothrow_new_constructible + = __and_, + __is_nothrow_new_constructible_impl<_Tp, _Args...>>::value; +#pragma GCC diagnostic pop + + + + + template + struct remove_const + { using type = _Tp; }; + + template + struct remove_const<_Tp const> + { using type = _Tp; }; + + + template + struct remove_volatile + { using type = _Tp; }; + + template + struct remove_volatile<_Tp volatile> + { using type = _Tp; }; + + + + template + struct remove_cv + { using type = __remove_cv(_Tp); }; +# 1659 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct add_const + { using type = _Tp const; }; + + + template + struct add_volatile + { using type = _Tp volatile; }; + + + template + struct add_cv + { using type = _Tp const volatile; }; + + + + template + using remove_const_t = typename remove_const<_Tp>::type; + + + template + using remove_volatile_t = typename remove_volatile<_Tp>::type; + + + template + using remove_cv_t = typename remove_cv<_Tp>::type; + + + template + using add_const_t = typename add_const<_Tp>::type; + + + template + using add_volatile_t = typename add_volatile<_Tp>::type; + + + template + using add_cv_t = typename add_cv<_Tp>::type; + + + + + + + template + struct remove_reference + { using type = __remove_reference(_Tp); }; +# 1721 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct add_lvalue_reference + { using type = __add_lval_ref_t<_Tp>; }; + + + template + struct add_rvalue_reference + { using type = __add_rval_ref_t<_Tp>; }; + + + + template + using remove_reference_t = typename remove_reference<_Tp>::type; + + + template + using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; + + + template + using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; + + + + + + + + template + struct __cv_selector; + + template + struct __cv_selector<_Unqualified, false, false> + { using __type = _Unqualified; }; + + template + struct __cv_selector<_Unqualified, false, true> + { using __type = volatile _Unqualified; }; + + template + struct __cv_selector<_Unqualified, true, false> + { using __type = const _Unqualified; }; + + template + struct __cv_selector<_Unqualified, true, true> + { using __type = const volatile _Unqualified; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + using __match = __cv_selector<_Unqualified, _IsConst, _IsVol>; + + public: + using __type = typename __match::__type; + }; + + + template + struct __make_unsigned + { using __type = _Tp; }; + + template<> + struct __make_unsigned + { using __type = unsigned char; }; + + template<> + struct __make_unsigned + { using __type = unsigned char; }; + + template<> + struct __make_unsigned + { using __type = unsigned short; }; + + template<> + struct __make_unsigned + { using __type = unsigned int; }; + + template<> + struct __make_unsigned + { using __type = unsigned long; }; + + template<> + struct __make_unsigned + { using __type = unsigned long long; }; + + + __extension__ + template<> + struct __make_unsigned<__int128> + { using __type = unsigned __int128; }; +# 1834 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, + bool _IsEnum = __is_enum(_Tp)> + class __make_unsigned_selector; + + template + class __make_unsigned_selector<_Tp, true, false> + { + using __unsigned_type + = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + class __make_unsigned_selector_base + { + protected: + template struct _List { }; + + template + struct _List<_Tp, _Up...> : _List<_Up...> + { static constexpr size_t __size = sizeof(_Tp); }; + + template + struct __select; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, true> + { using __type = _Uint; }; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, false> + : __select<_Sz, _List<_UInts...>> + { }; + }; + + + template + class __make_unsigned_selector<_Tp, false, true> + : __make_unsigned_selector_base + { + + using _UInts = _List; + + using __unsigned_type = typename __select::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + + + + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; +# 1908 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + + + + + + template + struct make_unsigned + { using type = typename __make_unsigned_selector<_Tp>::__type; }; + + + template<> struct make_unsigned; + template<> struct make_unsigned; + template<> struct make_unsigned; + template<> struct make_unsigned; + + + + + template + struct __make_signed + { using __type = _Tp; }; + + template<> + struct __make_signed + { using __type = signed char; }; + + template<> + struct __make_signed + { using __type = signed char; }; + + template<> + struct __make_signed + { using __type = signed short; }; + + template<> + struct __make_signed + { using __type = signed int; }; + + template<> + struct __make_signed + { using __type = signed long; }; + + template<> + struct __make_signed + { using __type = signed long long; }; + + + __extension__ + template<> + struct __make_signed + { using __type = __int128; }; +# 1994 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, + bool _IsEnum = __is_enum(_Tp)> + class __make_signed_selector; + + template + class __make_signed_selector<_Tp, true, false> + { + using __signed_type + = typename __make_signed<__remove_cv_t<_Tp>>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; + }; + + + template + class __make_signed_selector<_Tp, false, true> + { + using __unsigned_type = typename __make_unsigned_selector<_Tp>::__type; + + public: + using __type = typename __make_signed_selector<__unsigned_type>::__type; + }; + + + + + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; +# 2040 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + + + + + + template + struct make_signed + { using type = typename __make_signed_selector<_Tp>::__type; }; + + + template<> struct make_signed; + template<> struct make_signed; + template<> struct make_signed; + template<> struct make_signed; + + + + template + using make_signed_t = typename make_signed<_Tp>::type; + + + template + using make_unsigned_t = typename make_unsigned<_Tp>::type; + + + + + + template + struct remove_extent + { using type = _Tp; }; + + template + struct remove_extent<_Tp[_Size]> + { using type = _Tp; }; + + template + struct remove_extent<_Tp[]> + { using type = _Tp; }; + + + template + struct remove_all_extents + { using type = _Tp; }; + + template + struct remove_all_extents<_Tp[_Size]> + { using type = typename remove_all_extents<_Tp>::type; }; + + template + struct remove_all_extents<_Tp[]> + { using type = typename remove_all_extents<_Tp>::type; }; + + + + template + using remove_extent_t = typename remove_extent<_Tp>::type; + + + template + using remove_all_extents_t = typename remove_all_extents<_Tp>::type; + + + + + + + template + struct remove_pointer + { using type = __remove_pointer(_Tp); }; +# 2139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __add_pointer_helper + { using type = _Tp; }; + + template + struct __add_pointer_helper<_Tp, __void_t<_Tp*>> + { using type = _Tp*; }; + + + template + struct add_pointer + : public __add_pointer_helper<_Tp> + { }; + + template + struct add_pointer<_Tp&> + { using type = _Tp*; }; + + template + struct add_pointer<_Tp&&> + { using type = _Tp*; }; + + + + template + using remove_pointer_t = typename remove_pointer<_Tp>::type; + + + template + using add_pointer_t = typename add_pointer<_Tp>::type; + + + template + struct __aligned_storage_msa + { + union __type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__)) { } __align; + }; + }; +# 2194 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::__type)> + struct + + aligned_storage + { + union type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__((_Align)))) { } __align; + }; + }; + + template + struct __strictest_alignment + { + static const size_t _S_alignment = 0; + static const size_t _S_size = 0; + }; + + template + struct __strictest_alignment<_Tp, _Types...> + { + static const size_t _S_alignment = + alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment + ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; + static const size_t _S_size = + sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size + ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 2240 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct + + aligned_union + { + private: + static_assert(sizeof...(_Types) != 0, "At least one type is required"); + + using __strictest = __strictest_alignment<_Types...>; + static const size_t _S_len = _Len > __strictest::_S_size + ? _Len : __strictest::_S_size; + public: + + static const size_t alignment_value = __strictest::_S_alignment; + + using type = typename aligned_storage<_S_len, alignment_value>::type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; +#pragma GCC diagnostic pop + + + + + + template + struct __decay_selector + : __conditional_t::value, + remove_cv<_Up>, + add_pointer<_Up>> + { }; + + template + struct __decay_selector<_Up[_Nm]> + { using type = _Up*; }; + + template + struct __decay_selector<_Up[]> + { using type = _Up*; }; + + + + + template + struct decay + { using type = typename __decay_selector<_Tp>::type; }; + + template + struct decay<_Tp&> + { using type = typename __decay_selector<_Tp>::type; }; + + template + struct decay<_Tp&&> + { using type = typename __decay_selector<_Tp>::type; }; + + + + + template + struct __strip_reference_wrapper + { + using __type = _Tp; + }; + + template + struct __strip_reference_wrapper > + { + using __type = _Tp&; + }; + + + template + using __decay_t = typename decay<_Tp>::type; + + template + using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; + + + + + + template + using _Require = __enable_if_t<__and_<_Cond...>::value>; + + + template + using __remove_cvref_t + = typename remove_cv::type>::type; + + + + + template + struct conditional + { using type = _Iftrue; }; + + + template + struct conditional + { using type = _Iffalse; }; + + + template + struct common_type; +# 2355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __success_type + { using type = _Tp; }; + + struct __failure_type + { }; + + struct __do_common_type_impl + { + template + using __cond_t + = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); + + + + template + static __success_type<__decay_t<__cond_t<_Tp, _Up>>> + _S_test(int); +# 2382 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + static __failure_type + _S_test_2(...); + + template + static decltype(_S_test_2<_Tp, _Up>(0)) + _S_test(...); + }; + + + template<> + struct common_type<> + { }; + + + template + struct common_type<_Tp0> + : public common_type<_Tp0, _Tp0> + { }; + + + template, typename _Dp2 = __decay_t<_Tp2>> + struct __common_type_impl + { + + + using type = common_type<_Dp1, _Dp2>; + }; + + template + struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> + : private __do_common_type_impl + { + + + using type = decltype(_S_test<_Tp1, _Tp2>(0)); + }; + + + template + struct common_type<_Tp1, _Tp2> + : public __common_type_impl<_Tp1, _Tp2>::type + { }; + + template + struct __common_type_pack + { }; + + template + struct __common_type_fold; + + + template + struct common_type<_Tp1, _Tp2, _Rp...> + : public __common_type_fold, + __common_type_pack<_Rp...>> + { }; + + + + + template + struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, + __void_t> + : public common_type + { }; + + + template + struct __common_type_fold<_CTp, _Rp, void> + { }; + + template + struct __underlying_type_impl + { + using type = __underlying_type(_Tp); + }; + + template + struct __underlying_type_impl<_Tp, false> + { }; + + + + template + struct underlying_type + : public __underlying_type_impl<_Tp> + { }; + + + template + struct __declval_protector + { + static const bool __stop = false; + }; + + + + + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)) + { + static_assert(__declval_protector<_Tp>::__stop, + "declval() must not be used!"); + return __declval<_Tp>(0); + } + + + template + struct result_of; + + + + + struct __invoke_memfun_ref { }; + struct __invoke_memfun_deref { }; + struct __invoke_memobj_ref { }; + struct __invoke_memobj_deref { }; + struct __invoke_other { }; + + + template + struct __result_of_success : __success_type<_Tp> + { using __invoke_type = _Tag; }; + + + struct __result_of_memfun_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_ref + : private __result_of_memfun_ref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); + }; + + + struct __result_of_memfun_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_deref + : private __result_of_memfun_deref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); + }; + + + struct __result_of_memobj_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>() + ), __invoke_memobj_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_ref + : private __result_of_memobj_ref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg>(0)); + }; + + + struct __result_of_memobj_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>() + ), __invoke_memobj_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_deref + : private __result_of_memobj_deref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg>(0)); + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + using _Argval = __remove_cvref_t<_Arg>; + using _MemPtr = _Res _Class::*; + using type = typename __conditional_t<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + using _Argval = typename remove_reference<_Arg>::type; + using _MemPtr = _Res _Class::*; + using type = typename __conditional_t::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type; + }; + + + + + + + template> + struct __inv_unwrap + { + using type = _Tp; + }; + + template + struct __inv_unwrap<_Tp, reference_wrapper<_Up>> + { + using type = _Up&; + }; + + template + struct __result_of_impl + { + using type = __failure_type; + }; + + template + struct __result_of_impl + : public __result_of_memobj<__decay_t<_MemPtr>, + typename __inv_unwrap<_Arg>::type> + { }; + + template + struct __result_of_impl + : public __result_of_memfun<__decay_t<_MemPtr>, + typename __inv_unwrap<_Arg>::type, _Args...> + { }; + + + struct __result_of_other_impl + { + template + static __result_of_success()(std::declval<_Args>()...) + ), __invoke_other> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_impl + : private __result_of_other_impl + { + using type = decltype(_S_test<_Functor, _ArgTypes...>(0)); + }; + + + template + struct __invoke_result + : public __result_of_impl< + is_member_object_pointer< + typename remove_reference<_Functor>::type + >::value, + is_member_function_pointer< + typename remove_reference<_Functor>::type + >::value, + _Functor, _ArgTypes... + >::type + { }; + + + template + using __invoke_result_t = typename __invoke_result<_Fn, _Args...>::type; + + + template + struct result_of<_Functor(_ArgTypes...)> + : public __invoke_result<_Functor, _ArgTypes...> + { } __attribute__ ((__deprecated__ ("use '" "std::invoke_result" "' instead"))); + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + + template::__type)> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + + template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; +#pragma GCC diagnostic pop + + + template + using decay_t = typename decay<_Tp>::type; + + + template + using enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template + using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; + + + template + using common_type_t = typename common_type<_Tp...>::type; + + + template + using underlying_type_t = typename underlying_type<_Tp>::type; + + + template + using result_of_t = typename result_of<_Tp>::type; + + + + + template using void_t = void; +# 2759 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template class _Op, typename... _Args> + struct __detector + { + using type = _Default; + using __is_detected = false_type; + }; + + + template class _Op, + typename... _Args> + struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> + { + using type = _Op<_Args...>; + using __is_detected = true_type; + }; + + template class _Op, + typename... _Args> + using __detected_or = __detector<_Default, void, _Op, _Args...>; + + + + template class _Op, + typename... _Args> + using __detected_or_t + = typename __detected_or<_Default, _Op, _Args...>::type; +# 2801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __is_swappable; + + template + struct __is_nothrow_swappable; + + template + struct __is_tuple_like_impl : false_type + { }; + + + template + struct __is_tuple_like + : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type + { }; + + + template + + inline + _Require<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>> + swap(_Tp&, _Tp&) + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value); + + template + + inline + __enable_if_t<__is_swappable<_Tp>::value> + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value); + + + namespace __swappable_details { + using std::swap; + + struct __do_is_swappable_impl + { + template(), std::declval<_Tp&>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_impl + : public __swappable_details::__do_is_swappable_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template + struct __is_nothrow_swappable_impl + : public __swappable_details::__do_is_nothrow_swappable_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template + struct __is_swappable + : public __is_swappable_impl<_Tp>::type + { }; + + template + struct __is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { }; + + + + + + + template + struct is_swappable + : public __is_swappable_impl<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool is_swappable_v = + is_swappable<_Tp>::value; + + + template + inline constexpr bool is_nothrow_swappable_v = + is_nothrow_swappable<_Tp>::value; + + + + namespace __swappable_with_details { + using std::swap; + + struct __do_is_swappable_with_impl + { + template(), std::declval<_Up>())), + typename + = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_with_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) + && + noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_with_impl + : public __swappable_with_details::__do_is_swappable_with_impl + { + using type = decltype(__test<_Tp, _Up>(0)); + }; + + + template + struct __is_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_swappable_impl + { + using type = decltype(__test<_Tp&>(0)); + }; + + template + struct __is_nothrow_swappable_with_impl + : public __swappable_with_details::__do_is_nothrow_swappable_with_impl + { + using type = decltype(__test<_Tp, _Up>(0)); + }; + + + template + struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_nothrow_swappable_impl + { + using type = decltype(__test<_Tp&>(0)); + }; + + + + template + struct is_swappable_with + : public __is_swappable_with_impl<_Tp, _Up>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "first template argument must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), + "second template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_swappable_with + : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "first template argument must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), + "second template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool is_swappable_with_v = + is_swappable_with<_Tp, _Up>::value; + + + template + inline constexpr bool is_nothrow_swappable_with_v = + is_nothrow_swappable_with<_Tp, _Up>::value; +# 3023 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, typename = void> + struct __is_invocable_impl + : false_type + { + using __nothrow_conv = false_type; + }; + + + template + struct __is_invocable_impl<_Result, _Ret, + true, + __void_t> + : true_type + { + using __nothrow_conv = true_type; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + + template + struct __is_invocable_impl<_Result, _Ret, + false, + __void_t> + { + private: + + using _Res_t = typename _Result::type; + + + + static _Res_t _S_get() noexcept; + + + template + static void _S_conv(__type_identity_t<_Tp>) noexcept; + + + template(_S_get())), + typename = decltype(_S_conv<_Tp>(_S_get())), + + bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t) + + + + > + static __bool_constant<_Nothrow && !_Dangle> + _S_test(int); + + template + static false_type + _S_test(...); + + public: + + using type = decltype(_S_test<_Ret, true>(1)); + + + using __nothrow_conv = decltype(_S_test<_Ret>(1)); + }; +#pragma GCC diagnostic pop + + template + struct __is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { }; + + template + constexpr bool __call_is_nt(__invoke_memfun_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept((std::declval<_Up>().*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memfun_deref) + { + return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept(std::declval<_Up>().*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_deref) + { + return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_other) + { + return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); + } + + template + struct __call_is_nothrow + : __bool_constant< + std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) + > + { }; + + template + using __call_is_nothrow_ + = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; + + + template + struct __is_nothrow_invocable + : __and_<__is_invocable<_Fn, _Args...>, + __call_is_nothrow_<_Fn, _Args...>>::type + { }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + struct __nonesuchbase {}; + struct __nonesuch : private __nonesuchbase { + ~__nonesuch() = delete; + __nonesuch(__nonesuch const&) = delete; + void operator=(__nonesuch const&) = delete; + }; +#pragma GCC diagnostic pop + + + + + template + struct invoke_result + : public __invoke_result<_Functor, _ArgTypes...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Functor>{}), + "_Functor must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + template + using invoke_result_t = typename invoke_result<_Fn, _Args...>::type; + + + template + struct is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + template + struct is_invocable_r + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), + "_Ret must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_invocable + : __and_<__is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>, + __call_is_nothrow_<_Fn, _ArgTypes...>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + + + + template + using __is_nt_invocable_impl + = typename __is_invocable_impl<_Result, _Ret>::__nothrow_conv; + + + + template + struct is_nothrow_invocable_r + : __and_<__is_nt_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>, + __call_is_nothrow_<_Fn, _ArgTypes...>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), + "_Ret must be a complete class or an unbounded array"); + }; +# 3251 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_void_v = is_void<_Tp>::value; +template + inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value; +template + inline constexpr bool is_integral_v = is_integral<_Tp>::value; +template + inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value; + + +template + inline constexpr bool is_array_v = __is_array(_Tp); +# 3272 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_pointer_v = is_pointer<_Tp>::value; +template + inline constexpr bool is_lvalue_reference_v = false; +template + inline constexpr bool is_lvalue_reference_v<_Tp&> = true; +template + inline constexpr bool is_rvalue_reference_v = false; +template + inline constexpr bool is_rvalue_reference_v<_Tp&&> = true; + + +template + inline constexpr bool is_member_object_pointer_v = + __is_member_object_pointer(_Tp); + + + + + + + +template + inline constexpr bool is_member_function_pointer_v = + __is_member_function_pointer(_Tp); + + + + + + +template + inline constexpr bool is_enum_v = __is_enum(_Tp); +template + inline constexpr bool is_union_v = __is_union(_Tp); +template + inline constexpr bool is_class_v = __is_class(_Tp); + + + +template + inline constexpr bool is_reference_v = __is_reference(_Tp); +# 3323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value; +template + inline constexpr bool is_fundamental_v = is_fundamental<_Tp>::value; + + +template + inline constexpr bool is_object_v = __is_object(_Tp); + + + + + +template + inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; +template + inline constexpr bool is_compound_v = !is_fundamental_v<_Tp>; + + +template + inline constexpr bool is_member_pointer_v = __is_member_pointer(_Tp); + + + + + +template + inline constexpr bool is_const_v = false; +template + inline constexpr bool is_const_v = true; + + +template + inline constexpr bool is_function_v = __is_function(_Tp); +# 3366 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_volatile_v = false; +template + inline constexpr bool is_volatile_v = true; + +template + inline constexpr bool is_trivial_v = __is_trivial(_Tp); +template + inline constexpr bool is_trivially_copyable_v = __is_trivially_copyable(_Tp); +template + inline constexpr bool is_standard_layout_v = __is_standard_layout(_Tp); +template + + inline constexpr bool is_pod_v = __is_pod(_Tp); +template + [[__deprecated__]] + inline constexpr bool is_literal_type_v = __is_literal_type(_Tp); +template + inline constexpr bool is_empty_v = __is_empty(_Tp); +template + inline constexpr bool is_polymorphic_v = __is_polymorphic(_Tp); +template + inline constexpr bool is_abstract_v = __is_abstract(_Tp); +template + inline constexpr bool is_final_v = __is_final(_Tp); + +template + inline constexpr bool is_signed_v = is_signed<_Tp>::value; +template + inline constexpr bool is_unsigned_v = is_unsigned<_Tp>::value; + +template + inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...); +template + inline constexpr bool is_default_constructible_v = __is_constructible(_Tp); +template + inline constexpr bool is_copy_constructible_v + = __is_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_move_constructible_v + = __is_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_assignable_v = __is_assignable(_Tp, _Up); +template + inline constexpr bool is_copy_assignable_v + = __is_assignable(__add_lval_ref_t<_Tp>, __add_lval_ref_t); +template + inline constexpr bool is_move_assignable_v + = __is_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; + +template + inline constexpr bool is_trivially_constructible_v + = __is_trivially_constructible(_Tp, _Args...); +template + inline constexpr bool is_trivially_default_constructible_v + = __is_trivially_constructible(_Tp); +template + inline constexpr bool is_trivially_copy_constructible_v + = __is_trivially_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_trivially_move_constructible_v + = __is_trivially_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_trivially_assignable_v + = __is_trivially_assignable(_Tp, _Up); +template + inline constexpr bool is_trivially_copy_assignable_v + = __is_trivially_assignable(__add_lval_ref_t<_Tp>, + __add_lval_ref_t); +template + inline constexpr bool is_trivially_move_assignable_v + = __is_trivially_assignable(__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>); +# 3461 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_trivially_destructible_v = + is_trivially_destructible<_Tp>::value; + + +template + inline constexpr bool is_nothrow_constructible_v + = __is_nothrow_constructible(_Tp, _Args...); +template + inline constexpr bool is_nothrow_default_constructible_v + = __is_nothrow_constructible(_Tp); +template + inline constexpr bool is_nothrow_copy_constructible_v + = __is_nothrow_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_nothrow_move_constructible_v + = __is_nothrow_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_nothrow_assignable_v + = __is_nothrow_assignable(_Tp, _Up); +template + inline constexpr bool is_nothrow_copy_assignable_v + = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, + __add_lval_ref_t); +template + inline constexpr bool is_nothrow_move_assignable_v + = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_nothrow_destructible_v = + is_nothrow_destructible<_Tp>::value; + +template + inline constexpr bool has_virtual_destructor_v + = __has_virtual_destructor(_Tp); + +template + inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; + +template + inline constexpr size_t rank_v = 0; +template + inline constexpr size_t rank_v<_Tp[_Size]> = 1 + rank_v<_Tp>; +template + inline constexpr size_t rank_v<_Tp[]> = 1 + rank_v<_Tp>; + +template + inline constexpr size_t extent_v = 0; +template + inline constexpr size_t extent_v<_Tp[_Size], 0> = _Size; +template + inline constexpr size_t extent_v<_Tp[_Size], _Idx> = extent_v<_Tp, _Idx - 1>; +template + inline constexpr size_t extent_v<_Tp[], 0> = 0; +template + inline constexpr size_t extent_v<_Tp[], _Idx> = extent_v<_Tp, _Idx - 1>; + + +template + inline constexpr bool is_same_v = __is_same(_Tp, _Up); + + + + + + +template + inline constexpr bool is_base_of_v = __is_base_of(_Base, _Derived); + +template + inline constexpr bool is_convertible_v = __is_convertible(_From, _To); + + + + +template + inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value; +template + inline constexpr bool is_nothrow_invocable_v + = is_nothrow_invocable<_Fn, _Args...>::value; +template + inline constexpr bool is_invocable_r_v + = is_invocable_r<_Ret, _Fn, _Args...>::value; +template + inline constexpr bool is_nothrow_invocable_r_v + = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value; + + + + + + + template + struct has_unique_object_representations + : bool_constant<__has_unique_object_representations( + remove_cv_t> + )> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool has_unique_object_representations_v + = has_unique_object_representations<_Tp>::value; + + + + + + + template + struct is_aggregate + : bool_constant<__is_aggregate(remove_cv_t<_Tp>)> + { }; + + + + + + + template + inline constexpr bool is_aggregate_v = __is_aggregate(remove_cv_t<_Tp>); +# 4017 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + +} +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline constexpr _Tp* + __addressof(_Tp& __r) noexcept + { return __builtin_addressof(__r); } +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type&& __t) noexcept + { + static_assert(!std::is_lvalue_reference<_Tp>::value, + "std::forward must not be used to convert an rvalue to an lvalue"); + return static_cast<_Tp&&>(__t); + } +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr typename std::remove_reference<_Tp>::type&& + move(_Tp&& __t) noexcept + { return static_cast::type&&>(__t); } + + + template + struct __move_if_noexcept_cond + : public __and_<__not_>, + is_copy_constructible<_Tp>>::type { }; +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr + __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&> + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + inline constexpr _Tp* + addressof(_Tp& __r) noexcept + { return std::__addressof(__r); } + + + + template + const _Tp* addressof(const _Tp&&) = delete; + + + template + + inline _Tp + __exchange(_Tp& __obj, _Up&& __new_val) + { + _Tp __old_val = std::move(__obj); + __obj = std::forward<_Up>(__new_val); + return __old_val; + } +# 216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + + inline + + typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>>::value>::type + + + + swap(_Tp& __a, _Tp& __b) + noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) + + { + + + + + _Tp __tmp = std::move(__a); + __a = std::move(__b); + __b = std::move(__tmp); + } + + + + + template + + inline + + typename enable_if<__is_swappable<_Tp>::value>::type + + + + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value) + { + for (size_t __n = 0; __n < _Nm; ++__n) + swap(__a[__n], __b[__n]); + } + + + +} +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct tuple_size; + + + + + + template::type, + typename = typename enable_if::value>::type, + size_t = tuple_size<_Tp>::value> + using __enable_if_has_tuple_size = _Tp; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + + template + inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; + + + + template + struct tuple_element; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + using type = const __tuple_element_t<__i, _Tp>; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + using type = volatile __tuple_element_t<__i, _Tp>; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + using type = const volatile __tuple_element_t<__i, _Tp>; + }; + + + + + + template + constexpr size_t + __find_uniq_type_in_pack() + { + constexpr size_t __sz = sizeof...(_Types); + constexpr bool __found[__sz] = { __is_same(_Tp, _Types) ... }; + size_t __n = __sz; + for (size_t __i = 0; __i < __sz; ++__i) + { + if (__found[__i]) + { + if (__n < __sz) + return __sz; + __n = __i; + } + } + return __n; + } +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + template + using tuple_element_t = typename tuple_element<__i, _Tp>::type; + + + + + template struct _Index_tuple { }; + + + template + struct _Build_index_tuple + { +# 154 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + using __type = _Index_tuple<__integer_pack(_Num)...>; + + }; + + + + + template + struct integer_sequence + { + + + + typedef _Tp value_type; + static constexpr size_t size() noexcept { return sizeof...(_Idx); } + }; + + + template + using make_integer_sequence + + + + = integer_sequence<_Tp, __integer_pack(_Num)...>; + + + + template + using index_sequence = integer_sequence; + + + template + using make_index_sequence = make_integer_sequence; + + + template + using index_sequence_for = make_index_sequence; + + + + + struct in_place_t { + explicit in_place_t() = default; + }; + + inline constexpr in_place_t in_place{}; + + template struct in_place_type_t + { + explicit in_place_type_t() = default; + }; + + template + inline constexpr in_place_type_t<_Tp> in_place_type{}; + + template struct in_place_index_t + { + explicit in_place_index_t() = default; + }; + + template + inline constexpr in_place_index_t<_Idx> in_place_index{}; + + template + inline constexpr bool __is_in_place_type_v = false; + + template + inline constexpr bool __is_in_place_type_v> = true; + + template + using __is_in_place_type = bool_constant<__is_in_place_type_v<_Tp>>; + + template + inline constexpr bool __is_in_place_index_v = false; + + template + inline constexpr bool __is_in_place_index_v> = true; + + + + + template + struct _Nth_type + { using type = __type_pack_element<_Np, _Types...>; }; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + +} +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; + + + inline constexpr piecewise_construct_t piecewise_construct = + piecewise_construct_t(); + + + + + template + struct pair; + + template + class tuple; + + + + + + template + struct array; + + template + struct _Index_tuple; + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(pair<_Tp1, _Tp2>& __in) noexcept; + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(pair<_Tp1, _Tp2>&& __in) noexcept; + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(const pair<_Tp1, _Tp2>& __in) noexcept; + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(const pair<_Tp1, _Tp2>&& __in) noexcept; + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>& + get(tuple<_Elements...>& __t) noexcept; + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>& + get(const tuple<_Elements...>& __t) noexcept; + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>&& + get(tuple<_Elements...>&& __t) noexcept; + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& + get(const tuple<_Elements...>&& __t) noexcept; + + template + constexpr _Tp& + get(array<_Tp, _Nm>&) noexcept; + + template + constexpr _Tp&& + get(array<_Tp, _Nm>&&) noexcept; + + template + constexpr const _Tp& + get(const array<_Tp, _Nm>&) noexcept; + + template + constexpr const _Tp&& + get(const array<_Tp, _Nm>&&) noexcept; + + + + + + + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return __and_, + is_constructible<_T2, const _U2&>>::value; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return __and_, + is_convertible>::value; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return __and_, + is_constructible<_T2, _U2&&>>::value; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return __and_, + is_convertible<_U2&&, _T2>>::value; + } + }; + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return false; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return false; + } + }; +# 260 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template class __pair_base + { + + template friend struct pair; + __pair_base() = default; + ~__pair_base() = default; + __pair_base(const __pair_base&) = default; + __pair_base& operator=(const __pair_base&) = delete; + + }; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + struct pair + : public __pair_base<_T1, _T2> + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + template + + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + + void + swap(pair& __p) + noexcept(__and_<__is_nothrow_swappable<_T1>, + __is_nothrow_swappable<_T2>>::value) + { + using std::swap; + swap(first, __p.first); + swap(second, __p.second); + } +# 331 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + private: + template + + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + public: +# 719 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template , + __is_implicitly_default_constructible<_U2>> + ::value, bool>::type = true> + constexpr pair() + : first(), second() { } + + template , + is_default_constructible<_U2>, + __not_< + __and_<__is_implicitly_default_constructible<_U1>, + __is_implicitly_default_constructible<_U2>>>> + ::value, bool>::type = false> + explicit constexpr pair() + : first(), second() { } + + + + using _PCCP = _PCC; + + + + template() + && _PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + template() + && !_PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + + template + using _PCCFP = _PCC::value + || !is_same<_T2, _U2>::value, + _T1, _T2>; + + + template::template + _ConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) + { ; } + + template::template + _ConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) + { ; } +# 803 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + private: + + + + struct __zero_as_null_pointer_constant + { + __zero_as_null_pointer_constant(int __zero_as_null_pointer_constant::*) + { } + template::value>> + __zero_as_null_pointer_constant(_Tp) = delete; + }; + + public: + + + + + template>, + is_pointer<_T2>, + is_constructible<_T1, _U1>, + __not_>, + is_convertible<_U1, _T1>>::value, + bool> = true> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + constexpr + pair(_U1&& __x, __zero_as_null_pointer_constant, ...) + : first(std::forward<_U1>(__x)), second(nullptr) + { ; } + + template>, + is_pointer<_T2>, + is_constructible<_T1, _U1>, + __not_>, + __not_>>::value, + bool> = false> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + explicit constexpr + pair(_U1&& __x, __zero_as_null_pointer_constant, ...) + : first(std::forward<_U1>(__x)), second(nullptr) + { ; } + + template, + __not_>, + is_constructible<_T2, _U2>, + __not_>, + is_convertible<_U2, _T2>>::value, + bool> = true> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + constexpr + pair(__zero_as_null_pointer_constant, _U2&& __y, ...) + : first(nullptr), second(std::forward<_U2>(__y)) + { ; } + + template, + __not_>, + is_constructible<_T2, _U2>, + __not_>, + __not_>>::value, + bool> = false> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + explicit constexpr + pair(__zero_as_null_pointer_constant, _U2&& __y, ...) + : first(nullptr), second(std::forward<_U2>(__y)) + { ; } + + + + template() + && _PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) + { ; } + + template() + && !_PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) + { ; } + + + template::template + _MoveConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) + { ; } + + template::template + _MoveConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) + { ; } + + + + pair& + operator=(__conditional_t<__and_, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch&> __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(__conditional_t<__and_, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch&&> __p) + noexcept(__and_, + is_nothrow_move_assignable<_T2>>::value) + { + first = std::forward(__p.first); + second = std::forward(__p.second); + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, const _U2&>>::value, + pair&>::type + operator=(const pair<_U1, _U2>& __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, _U2&&>>::value, + pair&>::type + operator=(pair<_U1, _U2>&& __p) + { + first = std::forward<_U1>(__p.first); + second = std::forward<_U2>(__p.second); + return *this; + } +# 995 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + }; + + + + + template pair(_T1, _T2) -> pair<_T1, _T2>; +# 1031 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } +# 1043 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline constexpr bool + operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first < __y.first + || (!(__y.first < __x.first) && __x.second < __y.second); } + + + template + inline constexpr bool + operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __y < __x; } + + + template + inline constexpr bool + operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__y < __x); } + + + template + inline constexpr bool + operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x < __y); } +# 1080 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline + + + typename enable_if<__and_<__is_swappable<_T1>, + __is_swappable<_T2>>::value>::type + + + + swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) + noexcept(noexcept(__x.swap(__y))) + { __x.swap(__y); } +# 1103 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + typename enable_if, + __is_swappable<_T2>>::value>::type + swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; +# 1129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + constexpr pair::__type, + typename __decay_and_strip<_T2>::__type> + make_pair(_T1&& __x, _T2&& __y) + { + typedef typename __decay_and_strip<_T1>::__type __ds_type1; + typedef typename __decay_and_strip<_T2>::__type __ds_type2; + typedef pair<__ds_type1, __ds_type2> __pair_type; + return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); + } +# 1152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + struct __is_tuple_like_impl> : true_type + { }; + + + + template + struct tuple_size> + : public integral_constant { }; + + + template + struct tuple_element<0, pair<_Tp1, _Tp2>> + { typedef _Tp1 type; }; + + + template + struct tuple_element<1, pair<_Tp1, _Tp2>> + { typedef _Tp2 type; }; + + + + template + struct tuple_element<__i, tuple<_Types...>>; + + + template + inline constexpr size_t tuple_size_v> = 2; + + template + inline constexpr size_t tuple_size_v> = 2; + + template + inline constexpr bool __is_pair = false; + + template + inline constexpr bool __is_pair> = true; + + + + template + struct __pair_get; + + template<> + struct __pair_get<0> + { + template + static constexpr _Tp1& + __get(pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr _Tp1&& + __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp1>(__pair.first); } + + template + static constexpr const _Tp1& + __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr const _Tp1&& + __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.first); } + }; + + template<> + struct __pair_get<1> + { + template + static constexpr _Tp2& + __get(pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr _Tp2&& + __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp2>(__pair.second); } + + template + static constexpr const _Tp2& + __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr const _Tp2&& + __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.second); } + }; + + + + + + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__get(__in); } + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__move_get(std::move(__in)); } + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(const pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__const_get(__in); } + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(const pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__const_move_get(std::move(__in)); } + + + + template + constexpr _Tp& + get(pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr const _Tp& + get(const pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr _Tp&& + get(pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr const _Tp&& + get(const pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr _Tp& + get(pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr const _Tp& + get(const pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr _Tp&& + get(pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } + + template + constexpr const _Tp&& + get(const pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } +# 1332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + +} +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + struct input_iterator_tag { }; + + + struct output_iterator_tag { }; + + + struct forward_iterator_tag : public input_iterator_tag { }; + + + + struct bidirectional_iterator_tag : public forward_iterator_tag { }; + + + + struct random_access_iterator_tag : public bidirectional_iterator_tag { }; +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct [[__deprecated__]] iterator + { + + typedef _Category iterator_category; + + typedef _Tp value_type; + + typedef _Distance difference_type; + + typedef _Pointer pointer; + + typedef _Reference reference; + }; +# 149 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits; + + + + + template> + struct __iterator_traits { }; + + + + template + struct __iterator_traits<_Iterator, + __void_t> + { + typedef typename _Iterator::iterator_category iterator_category; + typedef typename _Iterator::value_type value_type; + typedef typename _Iterator::difference_type difference_type; + typedef typename _Iterator::pointer pointer; + typedef typename _Iterator::reference reference; + }; + + + template + struct iterator_traits + : public __iterator_traits<_Iterator> { }; +# 209 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits<_Tp*> + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + + template + struct iterator_traits + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef const _Tp* pointer; + typedef const _Tp& reference; + }; + + + + + + + template + __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_Iter>::iterator_category + __iterator_category(const _Iter&) + { return typename iterator_traits<_Iter>::iterator_category(); } + + + + + template + using __iter_category_t + = typename iterator_traits<_Iter>::iterator_category; + + template + using _RequireInputIter = + __enable_if_t, + input_iterator_tag>::value>; + + template> + struct __is_random_access_iter + : is_base_of + { + typedef is_base_of _Base; + enum { __value = _Base::value }; + }; + + + + + + + + +} +# 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 3 +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/assertions.h" 1 3 +# 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 2 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template struct _List_iterator; + template struct _List_const_iterator; + + + template + inline constexpr + typename iterator_traits<_InputIterator>::difference_type + __distance(_InputIterator __first, _InputIterator __last, + input_iterator_tag) + { + + + + typename iterator_traits<_InputIterator>::difference_type __n = 0; + while (__first != __last) + { + ++__first; + ++__n; + } + return __n; + } + + template + __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_RandomAccessIterator>::difference_type + __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, + random_access_iterator_tag) + { + + + + return __last - __first; + } + + + + template + ptrdiff_t + __distance(std::_List_iterator<_Tp>, + std::_List_iterator<_Tp>, + input_iterator_tag); + + template + ptrdiff_t + __distance(std::_List_const_iterator<_Tp>, + std::_List_const_iterator<_Tp>, + input_iterator_tag); + + + + + template + void + __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; +# 144 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + template + [[__nodiscard__]] __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_InputIterator>::difference_type + distance(_InputIterator __first, _InputIterator __last) + { + + return std::__distance(__first, __last, + std::__iterator_category(__first)); + } + + template + inline constexpr void + __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) + { + + + do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); + while (__n--) + ++__i; + } + + template + inline constexpr void + __advance(_BidirectionalIterator& __i, _Distance __n, + bidirectional_iterator_tag) + { + + + + if (__n > 0) + while (__n--) + ++__i; + else + while (__n++) + --__i; + } + + template + inline constexpr void + __advance(_RandomAccessIterator& __i, _Distance __n, + random_access_iterator_tag) + { + + + + if (__builtin_constant_p(__n) && __n == 1) + ++__i; + else if (__builtin_constant_p(__n) && __n == -1) + --__i; + else + __i += __n; + } + + + + template + void + __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; +# 217 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + template + __attribute__((__always_inline__)) + inline constexpr void + advance(_InputIterator& __i, _Distance __n) + { + + typename iterator_traits<_InputIterator>::difference_type __d = __n; + std::__advance(__i, __d, std::__iterator_category(__i)); + } + + + + template + [[__nodiscard__]] [[__gnu__::__always_inline__]] + inline constexpr _InputIterator + next(_InputIterator __x, typename + iterator_traits<_InputIterator>::difference_type __n = 1) + { + + + std::advance(__x, __n); + return __x; + } + + template + [[__nodiscard__]] [[__gnu__::__always_inline__]] + inline constexpr _BidirectionalIterator + prev(_BidirectionalIterator __x, typename + iterator_traits<_BidirectionalIterator>::difference_type __n = 1) + { + + + + std::advance(__x, -__n); + return __x; + } + + + + +} +# 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 1 3 +# 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + class __undefined; + + + + template + struct __get_first_arg + { using type = __undefined; }; + + template class _SomeTemplate, typename _Tp, + typename... _Types> + struct __get_first_arg<_SomeTemplate<_Tp, _Types...>> + { using type = _Tp; }; + + + + template + struct __replace_first_arg + { }; + + template class _SomeTemplate, typename _Up, + typename _Tp, typename... _Types> + struct __replace_first_arg<_SomeTemplate<_Tp, _Types...>, _Up> + { using type = _SomeTemplate<_Up, _Types...>; }; + + + template + struct __ptr_traits_elem : __get_first_arg<_Ptr> + { }; + + + + + + + + template + struct __ptr_traits_elem<_Ptr, __void_t> + { using type = typename _Ptr::element_type; }; + + + template + using __ptr_traits_elem_t = typename __ptr_traits_elem<_Ptr>::type; + + + + + template::value> + struct __ptr_traits_ptr_to + { + using pointer = _Ptr; + using element_type = _Elt; + + + + + + + + static pointer + pointer_to(element_type& __r) + + + + + + { return pointer::pointer_to(__r); } + }; + + + template + struct __ptr_traits_ptr_to<_Ptr, _Elt, true> + { }; + + + template + struct __ptr_traits_ptr_to<_Tp*, _Tp, false> + { + using pointer = _Tp*; + using element_type = _Tp; + + + + + + + static pointer + pointer_to(element_type& __r) noexcept + { return std::addressof(__r); } + }; + + template + struct __ptr_traits_impl : __ptr_traits_ptr_to<_Ptr, _Elt> + { + private: + template + using __diff_t = typename _Tp::difference_type; + + template + using __rebind = __type_identity>; + + public: + + using pointer = _Ptr; + + + using element_type = _Elt; + + + using difference_type = __detected_or_t; + + + template + using rebind = typename __detected_or_t<__replace_first_arg<_Ptr, _Up>, + __rebind, _Ptr, _Up>::type; + }; + + + + template + struct __ptr_traits_impl<_Ptr, __undefined> + { }; + + + + + + + + template + struct pointer_traits : __ptr_traits_impl<_Ptr, __ptr_traits_elem_t<_Ptr>> + { }; + + + + + + + + template + struct pointer_traits<_Tp*> : __ptr_traits_ptr_to<_Tp*, _Tp> + { + + typedef _Tp* pointer; + + typedef _Tp element_type; + + typedef ptrdiff_t difference_type; + + template using rebind = _Up*; + }; + + + template + using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; + + template + constexpr _Tp* + __to_address(_Tp* __ptr) noexcept + { + static_assert(!std::is_function<_Tp>::value, "not a function pointer"); + return __ptr; + } + + + template + constexpr typename std::pointer_traits<_Ptr>::element_type* + __to_address(const _Ptr& __ptr) + { return std::__to_address(__ptr.operator->()); } +# 257 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 + +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 2 3 +# 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 128 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class reverse_iterator + : public iterator::iterator_category, + typename iterator_traits<_Iterator>::value_type, + typename iterator_traits<_Iterator>::difference_type, + typename iterator_traits<_Iterator>::pointer, + typename iterator_traits<_Iterator>::reference> + { + template + friend class reverse_iterator; +# 147 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + protected: + _Iterator current; + + typedef iterator_traits<_Iterator> __traits_type; + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::pointer pointer; + + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; +# 178 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + constexpr + reverse_iterator() + noexcept(noexcept(_Iterator())) + : current() + { } + + + + + explicit constexpr + reverse_iterator(iterator_type __x) + noexcept(noexcept(_Iterator(__x))) + : current(__x) + { } + + + + + constexpr + reverse_iterator(const reverse_iterator& __x) + noexcept(noexcept(_Iterator(__x.current))) + : current(__x.current) + { } + + + reverse_iterator& operator=(const reverse_iterator&) = default; + + + + + + + template + + + + constexpr + reverse_iterator(const reverse_iterator<_Iter>& __x) + noexcept(noexcept(_Iterator(__x.current))) + : current(__x.current) + { } + + + template + + + + + constexpr + reverse_iterator& + operator=(const reverse_iterator<_Iter>& __x) + noexcept(noexcept(current = __x.current)) + { + current = __x.current; + return *this; + } + + + + + + [[__nodiscard__]] + constexpr iterator_type + base() const + noexcept(noexcept(_Iterator(current))) + { return current; } +# 255 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + [[__nodiscard__]] + constexpr reference + operator*() const + { + _Iterator __tmp = current; + return *--__tmp; + } + + + + + + + [[__nodiscard__]] + constexpr pointer + operator->() const + + + + + { + + + _Iterator __tmp = current; + --__tmp; + return _S_to_pointer(__tmp); + } + + + + + + + constexpr reverse_iterator& + operator++() + { + --current; + return *this; + } + + + + + + + constexpr reverse_iterator + operator++(int) + { + reverse_iterator __tmp = *this; + --current; + return __tmp; + } + + + + + + + constexpr reverse_iterator& + operator--() + { + ++current; + return *this; + } + + + + + + + constexpr reverse_iterator + operator--(int) + { + reverse_iterator __tmp = *this; + ++current; + return __tmp; + } + + + + + + + [[__nodiscard__]] + constexpr reverse_iterator + operator+(difference_type __n) const + { return reverse_iterator(current - __n); } + + + + + + + + constexpr reverse_iterator& + operator+=(difference_type __n) + { + current -= __n; + return *this; + } + + + + + + + [[__nodiscard__]] + constexpr reverse_iterator + operator-(difference_type __n) const + { return reverse_iterator(current + __n); } + + + + + + + + constexpr reverse_iterator& + operator-=(difference_type __n) + { + current += __n; + return *this; + } + + + + + + + [[__nodiscard__]] + constexpr reference + operator[](difference_type __n) const + { return *(*this + __n); } +# 415 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + private: + template + static constexpr _Tp* + _S_to_pointer(_Tp* __p) + { return __p; } + + template + static constexpr pointer + _S_to_pointer(_Tp __t) + { return __t.operator->(); } + }; +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator==(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() < __x.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() == __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() > __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() != __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() < __y.base(); } + + template + inline constexpr bool + operator<=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() >= __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() <= __y.base(); } +# 615 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr auto + operator-(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + -> decltype(__y.base() - __x.base()) + { return __y.base() - __x.base(); } + + + template + [[__nodiscard__]] + inline constexpr reverse_iterator<_Iterator> + operator+(typename reverse_iterator<_Iterator>::difference_type __n, + const reverse_iterator<_Iterator>& __x) + { return reverse_iterator<_Iterator>(__x.base() - __n); } + + + + template + inline constexpr reverse_iterator<_Iterator> + __make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } + + + + + + template + [[__nodiscard__]] + inline constexpr reverse_iterator<_Iterator> + make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } +# 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + + auto + __niter_base(reverse_iterator<_Iterator> __it) + -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) + { return __make_reverse_iterator(__niter_base(__it.base())); } + + template + struct __is_move_iterator > + : __is_move_iterator<_Iterator> + { }; + + template + + auto + __miter_base(reverse_iterator<_Iterator> __it) + -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) + { return __make_reverse_iterator(__miter_base(__it.base())); } +# 688 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class back_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + + + + explicit + back_insert_iterator(_Container& __x) + : container(std::__addressof(__x)) { } +# 726 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + back_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_back(__value); + return *this; + } + + + back_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_back(std::move(__value)); + return *this; + } + + + + [[__nodiscard__]] + back_insert_iterator& + operator*() + { return *this; } + + + + back_insert_iterator& + operator++() + { return *this; } + + + + back_insert_iterator + operator++(int) + { return *this; } + }; +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline back_insert_iterator<_Container> + back_inserter(_Container& __x) + { return back_insert_iterator<_Container>(__x); } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class front_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + + + + explicit + front_insert_iterator(_Container& __x) + : container(std::__addressof(__x)) { } +# 827 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + front_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_front(__value); + return *this; + } + + + front_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_front(std::move(__value)); + return *this; + } + + + + [[__nodiscard__]] + front_insert_iterator& + operator*() + { return *this; } + + + + front_insert_iterator& + operator++() + { return *this; } + + + + front_insert_iterator + operator++(int) + { return *this; } + }; +# 874 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline front_insert_iterator<_Container> + front_inserter(_Container& __x) + { return front_insert_iterator<_Container>(__x); } +# 894 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class insert_iterator + : public iterator + { + + + + typedef typename _Container::iterator _Iter; + + protected: + _Container* container; + _Iter iter; + + public: + + typedef _Container container_type; +# 919 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + insert_iterator(_Container& __x, _Iter __i) + : container(std::__addressof(__x)), iter(__i) {} +# 955 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + insert_iterator& + operator=(const typename _Container::value_type& __value) + { + iter = container->insert(iter, __value); + ++iter; + return *this; + } + + + insert_iterator& + operator=(typename _Container::value_type&& __value) + { + iter = container->insert(iter, std::move(__value)); + ++iter; + return *this; + } + + + + [[__nodiscard__]] + insert_iterator& + operator*() + { return *this; } + + + + insert_iterator& + operator++() + { return *this; } + + + + insert_iterator& + operator++(int) + { return *this; } + }; + +#pragma GCC diagnostic pop +# 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline insert_iterator<_Container> + inserter(_Container& __x, typename _Container::iterator __i) + { return insert_iterator<_Container>(__x, __i); } + + + + + +} + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class __normal_iterator + { + protected: + _Iterator _M_current; + + typedef std::iterator_traits<_Iterator> __traits_type; + + + template + using __convertible_from + = std::__enable_if_t::value>; + + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; + typedef typename __traits_type::pointer pointer; + + + + + + constexpr __normal_iterator() noexcept + : _M_current(_Iterator()) { } + + explicit + __normal_iterator(const _Iterator& __i) noexcept + : _M_current(__i) { } + + + + template> + + __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) + noexcept +# 1085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + : _M_current(__i.base()) { } + + + + reference + operator*() const noexcept + { return *_M_current; } + + + pointer + operator->() const noexcept + { return _M_current; } + + + __normal_iterator& + operator++() noexcept + { + ++_M_current; + return *this; + } + + + __normal_iterator + operator++(int) noexcept + { return __normal_iterator(_M_current++); } + + + + __normal_iterator& + operator--() noexcept + { + --_M_current; + return *this; + } + + + __normal_iterator + operator--(int) noexcept + { return __normal_iterator(_M_current--); } + + + + reference + operator[](difference_type __n) const noexcept + { return _M_current[__n]; } + + + __normal_iterator& + operator+=(difference_type __n) noexcept + { _M_current += __n; return *this; } + + + __normal_iterator + operator+(difference_type __n) const noexcept + { return __normal_iterator(_M_current + __n); } + + + __normal_iterator& + operator-=(difference_type __n) noexcept + { _M_current -= __n; return *this; } + + + __normal_iterator + operator-(difference_type __n) const noexcept + { return __normal_iterator(_M_current - __n); } + + + const _Iterator& + base() const noexcept + { return _M_current; } + }; +# 1205 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline bool + operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator==(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + + template + [[__nodiscard__]] + inline bool + operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + + + + + + template + + + [[__nodiscard__]] + inline auto + operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept + -> decltype(__lhs.base() - __rhs.base()) + + + + + + { return __lhs.base() - __rhs.base(); } + + template + [[__nodiscard__]] + inline typename __normal_iterator<_Iterator, _Container>::difference_type + operator-(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() - __rhs.base(); } + + template + [[__nodiscard__]] + inline __normal_iterator<_Iterator, _Container> + operator+(typename __normal_iterator<_Iterator, _Container>::difference_type + __n, const __normal_iterator<_Iterator, _Container>& __i) + noexcept + { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } + + +} + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + + _Iterator + __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) + noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) + { return __it.base(); } + + + + + + + template + constexpr auto + __to_address(const __gnu_cxx::__normal_iterator<_Iterator, + _Container>& __it) noexcept + -> decltype(std::__to_address(__it.base())) + { return std::__to_address(__it.base()); } +# 1412 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + namespace __detail + { +# 1428 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + } +# 1439 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class move_iterator + + + + { + _Iterator _M_current; + + using __traits_type = iterator_traits<_Iterator>; + + using __base_ref = typename __traits_type::reference; + + + template + friend class move_iterator; +# 1478 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + public: + using iterator_type = _Iterator; +# 1490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + + typedef _Iterator pointer; + + + using reference + = __conditional_t::value, + typename remove_reference<__base_ref>::type&&, + __base_ref>; + + + constexpr + move_iterator() + : _M_current() { } + + explicit constexpr + move_iterator(iterator_type __i) + : _M_current(std::move(__i)) { } + + template + + + + constexpr + move_iterator(const move_iterator<_Iter>& __i) + : _M_current(__i._M_current) { } + + template + + + + + constexpr + move_iterator& operator=(const move_iterator<_Iter>& __i) + { + _M_current = __i._M_current; + return *this; + } + + + [[__nodiscard__]] + constexpr iterator_type + base() const + { return _M_current; } +# 1548 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + [[__nodiscard__]] + constexpr reference + operator*() const + + + + { return static_cast(*_M_current); } + + + [[__nodiscard__]] + constexpr pointer + operator->() const + { return _M_current; } + + constexpr move_iterator& + operator++() + { + ++_M_current; + return *this; + } + + constexpr move_iterator + operator++(int) + { + move_iterator __tmp = *this; + ++_M_current; + return __tmp; + } + + + + + + + + constexpr move_iterator& + operator--() + { + --_M_current; + return *this; + } + + constexpr move_iterator + operator--(int) + { + move_iterator __tmp = *this; + --_M_current; + return __tmp; + } + + [[__nodiscard__]] + constexpr move_iterator + operator+(difference_type __n) const + { return move_iterator(_M_current + __n); } + + constexpr move_iterator& + operator+=(difference_type __n) + { + _M_current += __n; + return *this; + } + + [[__nodiscard__]] + constexpr move_iterator + operator-(difference_type __n) const + { return move_iterator(_M_current - __n); } + + constexpr move_iterator& + operator-=(difference_type __n) + { + _M_current -= __n; + return *this; + } + + [[__nodiscard__]] + constexpr reference + operator[](difference_type __n) const + + + + { return std::move(_M_current[__n]); } +# 1662 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + }; + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() == __y.base(); } +# 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__x == __y); } + + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() < __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__x < __y); } + + + + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + + { return __x.base() == __y.base(); } +# 1750 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() < __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + template + [[__nodiscard__]] + inline constexpr auto + operator-(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + -> decltype(__x.base() - __y.base()) + { return __x.base() - __y.base(); } + + template + [[__nodiscard__]] + inline constexpr move_iterator<_Iterator> + operator+(typename move_iterator<_Iterator>::difference_type __n, + const move_iterator<_Iterator>& __x) + + + + { return __x + __n; } + + template + [[__nodiscard__]] + inline constexpr move_iterator<_Iterator> + make_move_iterator(_Iterator __i) + { return move_iterator<_Iterator>(std::move(__i)); } + + template::value_type>::value, + _Iterator, move_iterator<_Iterator>>> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Iterator __i) + { return _ReturnType(__i); } + + + + template::value, + const _Tp*, move_iterator<_Tp*>>> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Tp* __i) + { return _ReturnType(__i); } +# 2964 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + + auto + __niter_base(move_iterator<_Iterator> __it) + -> decltype(make_move_iterator(__niter_base(__it.base()))) + { return make_move_iterator(__niter_base(__it.base())); } + + template + struct __is_move_iterator > + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template + + auto + __miter_base(move_iterator<_Iterator> __it) + -> decltype(__miter_base(__it.base())) + { return __miter_base(__it.base()); } +# 2996 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + using __iter_key_t = remove_const_t< + + + + typename iterator_traits<_InputIterator>::value_type::first_type>; + + + template + using __iter_val_t + + + + = typename iterator_traits<_InputIterator>::value_type::second_type; + + + template + struct pair; + + template + using __iter_to_alloc_t + = pair, __iter_val_t<_InputIterator>>; + + + +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 1 3 +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 3 +namespace std +{ + namespace __debug { } +} + + + + +namespace __gnu_debug +{ + using namespace std::__debug; + + template + struct _Safe_iterator; +} +# 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 1 3 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 3 +namespace __gnu_cxx +{ +namespace __ops +{ + struct _Iter_less_iter + { + template + constexpr + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 < *__it2; } + }; + + constexpr + inline _Iter_less_iter + __iter_less_iter() + { return _Iter_less_iter(); } + + struct _Iter_less_val + { + + constexpr _Iter_less_val() = default; + + + + + + explicit + _Iter_less_val(_Iter_less_iter) { } + + template + + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it < __val; } + }; + + + inline _Iter_less_val + __iter_less_val() + { return _Iter_less_val(); } + + + inline _Iter_less_val + __iter_comp_val(_Iter_less_iter) + { return _Iter_less_val(); } + + struct _Val_less_iter + { + + constexpr _Val_less_iter() = default; + + + + + + explicit + _Val_less_iter(_Iter_less_iter) { } + + template + + bool + operator()(_Value& __val, _Iterator __it) const + { return __val < *__it; } + }; + + + inline _Val_less_iter + __val_less_iter() + { return _Val_less_iter(); } + + + inline _Val_less_iter + __val_comp_iter(_Iter_less_iter) + { return _Val_less_iter(); } + + struct _Iter_equal_to_iter + { + template + + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 == *__it2; } + }; + + + inline _Iter_equal_to_iter + __iter_equal_to_iter() + { return _Iter_equal_to_iter(); } + + struct _Iter_equal_to_val + { + template + + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it == __val; } + }; + + + inline _Iter_equal_to_val + __iter_equal_to_val() + { return _Iter_equal_to_val(); } + + + inline _Iter_equal_to_val + __iter_comp_val(_Iter_equal_to_iter) + { return _Iter_equal_to_val(); } + + template + struct _Iter_comp_iter + { + _Compare _M_comp; + + explicit constexpr + _Iter_comp_iter(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + template + constexpr + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) + { return bool(_M_comp(*__it1, *__it2)); } + }; + + template + constexpr + inline _Iter_comp_iter<_Compare> + __iter_comp_iter(_Compare __comp) + { return _Iter_comp_iter<_Compare>(std::move(__comp)); } + + template + struct _Iter_comp_val + { + _Compare _M_comp; + + + explicit + _Iter_comp_val(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + + explicit + _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) + : _M_comp(__comp._M_comp) + { } + + + + explicit + _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) + : _M_comp(std::move(__comp._M_comp)) + { } + + + template + + bool + operator()(_Iterator __it, _Value& __val) + { return bool(_M_comp(*__it, __val)); } + }; + + template + + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Compare __comp) + { return _Iter_comp_val<_Compare>(std::move(__comp)); } + + template + + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Iter_comp_iter<_Compare> __comp) + { return _Iter_comp_val<_Compare>(std::move(__comp)); } + + template + struct _Val_comp_iter + { + _Compare _M_comp; + + + explicit + _Val_comp_iter(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + + explicit + _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) + : _M_comp(__comp._M_comp) + { } + + + + explicit + _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) + : _M_comp(std::move(__comp._M_comp)) + { } + + + template + + bool + operator()(_Value& __val, _Iterator __it) + { return bool(_M_comp(__val, *__it)); } + }; + + template + + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Compare __comp) + { return _Val_comp_iter<_Compare>(std::move(__comp)); } + + template + + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Iter_comp_iter<_Compare> __comp) + { return _Val_comp_iter<_Compare>(std::move(__comp)); } + + template + struct _Iter_equals_val + { + _Value& _M_value; + + + explicit + _Iter_equals_val(_Value& __value) + : _M_value(__value) + { } + + template + + bool + operator()(_Iterator __it) + { return *__it == _M_value; } + }; + + template + + inline _Iter_equals_val<_Value> + __iter_equals_val(_Value& __val) + { return _Iter_equals_val<_Value>(__val); } + + template + struct _Iter_equals_iter + { + _Iterator1 _M_it1; + + + explicit + _Iter_equals_iter(_Iterator1 __it1) + : _M_it1(__it1) + { } + + template + + bool + operator()(_Iterator2 __it2) + { return *__it2 == *_M_it1; } + }; + + template + + inline _Iter_equals_iter<_Iterator> + __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) + { return _Iter_equals_iter<_Iterator>(__it); } + + template + struct _Iter_pred + { + _Predicate _M_pred; + + + explicit + _Iter_pred(_Predicate __pred) + : _M_pred(std::move(__pred)) + { } + + template + + bool + operator()(_Iterator __it) + { return bool(_M_pred(*__it)); } + }; + + template + + inline _Iter_pred<_Predicate> + __pred_iter(_Predicate __pred) + { return _Iter_pred<_Predicate>(std::move(__pred)); } + + template + struct _Iter_comp_to_val + { + _Compare _M_comp; + _Value& _M_value; + + + _Iter_comp_to_val(_Compare __comp, _Value& __value) + : _M_comp(std::move(__comp)), _M_value(__value) + { } + + template + + bool + operator()(_Iterator __it) + { return bool(_M_comp(*__it, _M_value)); } + }; + + template + _Iter_comp_to_val<_Compare, _Value> + + __iter_comp_val(_Compare __comp, _Value &__val) + { + return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); + } + + template + struct _Iter_comp_to_iter + { + _Compare _M_comp; + _Iterator1 _M_it1; + + + _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) + : _M_comp(std::move(__comp)), _M_it1(__it1) + { } + + template + + bool + operator()(_Iterator2 __it2) + { return bool(_M_comp(*__it2, *_M_it1)); } + }; + + template + + inline _Iter_comp_to_iter<_Compare, _Iterator> + __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) + { + return _Iter_comp_to_iter<_Compare, _Iterator>( + std::move(__comp._M_comp), __it); + } + + template + struct _Iter_negate + { + _Predicate _M_pred; + + + explicit + _Iter_negate(_Predicate __pred) + : _M_pred(std::move(__pred)) + { } + + template + + bool + operator()(_Iterator __it) + { return !bool(_M_pred(*__it)); } + }; + + template + + inline _Iter_negate<_Predicate> + __negate(_Iter_pred<_Predicate> __pred) + { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } + +} +} +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 2 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 2 3 +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + template + constexpr _Tp + __rotl(_Tp __x, int __s) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if constexpr ((_Nd & (_Nd - 1)) == 0) + { + + + constexpr unsigned __uNd = _Nd; + const unsigned __r = __s; + return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); + } + const int __r = __s % _Nd; + if (__r == 0) + return __x; + else if (__r > 0) + return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); + else + return (__x >> -__r) | (__x << ((_Nd + __r) % _Nd)); + } + + template + constexpr _Tp + __rotr(_Tp __x, int __s) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if constexpr ((_Nd & (_Nd - 1)) == 0) + { + + + constexpr unsigned __uNd = _Nd; + const unsigned __r = __s; + return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); + } + const int __r = __s % _Nd; + if (__r == 0) + return __x; + else if (__r > 0) + return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); + else + return (__x << -__r) | (__x >> ((_Nd + __r) % _Nd)); + } + + template + constexpr int + __countl_zero(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + if (__x == 0) + return _Nd; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + { + constexpr int __diff = _Nd_u - _Nd; + return __builtin_clz(__x) - __diff; + } + else if constexpr (_Nd <= _Nd_ul) + { + constexpr int __diff = _Nd_ul - _Nd; + return __builtin_clzl(__x) - __diff; + } + else if constexpr (_Nd <= _Nd_ull) + { + constexpr int __diff = _Nd_ull - _Nd; + return __builtin_clzll(__x) - __diff; + } + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + unsigned long long __high = __x >> _Nd_ull; + if (__high != 0) + { + constexpr int __diff = (2 * _Nd_ull) - _Nd; + return __builtin_clzll(__high) - __diff; + } + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + return (_Nd - _Nd_ull) + __builtin_clzll(__low); + } + } + + template + constexpr int + __countl_one(_Tp __x) noexcept + { + return std::__countl_zero<_Tp>((_Tp)~__x); + } + + template + constexpr int + __countr_zero(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + if (__x == 0) + return _Nd; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + return __builtin_ctz(__x); + else if constexpr (_Nd <= _Nd_ul) + return __builtin_ctzl(__x); + else if constexpr (_Nd <= _Nd_ull) + return __builtin_ctzll(__x); + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + if (__low != 0) + return __builtin_ctzll(__low); + unsigned long long __high = __x >> _Nd_ull; + return __builtin_ctzll(__high) + _Nd_ull; + } + } + + template + constexpr int + __countr_one(_Tp __x) noexcept + { + return std::__countr_zero((_Tp)~__x); + } + + template + constexpr int + __popcount(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + return __builtin_popcount(__x); + else if constexpr (_Nd <= _Nd_ul) + return __builtin_popcountl(__x); + else if constexpr (_Nd <= _Nd_ull) + return __builtin_popcountll(__x); + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + unsigned long long __high = __x >> _Nd_ull; + return __builtin_popcountll(__low) + __builtin_popcountll(__high); + } + } + + template + constexpr bool + __has_single_bit(_Tp __x) noexcept + { return std::__popcount(__x) == 1; } + + template + constexpr _Tp + __bit_ceil(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + if (__x == 0 || __x == 1) + return 1; + auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1u)); + + + + + if (!std::__is_constant_evaluated()) + { + do { if (std::__is_constant_evaluated() && !bool(__shift_exponent != __int_traits<_Tp>::__digits)) std::__glibcxx_assert_fail(); } while (false); + } + + using __promoted_type = decltype(__x << 1); + if constexpr (!is_same<__promoted_type, _Tp>::value) + { + + + + + + const int __extra_exp = sizeof(__promoted_type) / sizeof(_Tp) / 2; + __shift_exponent |= (__shift_exponent & _Nd) << __extra_exp; + } + return (_Tp)1u << __shift_exponent; + } + + template + constexpr _Tp + __bit_floor(_Tp __x) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if (__x == 0) + return 0; + return (_Tp)1u << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); + } + + template + constexpr int + __bit_width(_Tp __x) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + return _Nd - std::__countl_zero(__x); + } +# 482 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + +} +# 77 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + template + constexpr + inline int + __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) + { + + static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); +# 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); + } +# 152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline void + iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) + { + + + + +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + swap(*__a, *__b); + + } +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + _ForwardIterator2 + swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + ; + + for (; __first1 != __last1; ++__first1, (void)++__first2) + std::iter_swap(__first1, __first2); + return __first2; + } +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b) + { + + + + if (__b < __a) + return __b; + return __a; + } +# 254 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b) + { + + + + if (__a < __b) + return __b; + return __a; + } +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__b, __a)) + return __b; + return __a; + } +# 300 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__a, __b)) + return __b; + return __a; + } + + + + template + + inline _Iterator + __niter_base(_Iterator __it) + noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) + { return __it; } +# 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + decltype(std::__niter_base(std::declval<_Ite>())) + __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, + std::random_access_iterator_tag>&) + noexcept(std::is_nothrow_copy_constructible<_Ite>::value); + + + + + + template + + inline _From + __niter_wrap(_From __from, _To __res) + { return __from + (std::__niter_base(__res) - std::__niter_base(__from)); } + + + template + + inline _Iterator + __niter_wrap(const _Iterator&, _Iterator __res) + { return __res; } + + + + + + + + template + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, (void)++__first) + *__result = *__first; + return __result; + } + }; + + + template + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, (void)++__first) + *__result = std::move(*__first); + return __result; + } + }; + + + template<> + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = *__first; + ++__first; + ++__result; + } + return __result; + } + + template + static void + __assign_one(_Tp* __to, _Up* __from) + { *__to = *__from; } + }; + + + template<> + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = std::move(*__first); + ++__first; + ++__result; + } + return __result; + } + + template + static void + __assign_one(_Tp* __to, _Up* __from) + { *__to = std::move(*__from); } + }; + + + template + struct __copy_move<_IsMove, true, random_access_iterator_tag> + { + template + + static _Up* + __copy_m(_Tp* __first, _Tp* __last, _Up* __result) + { + const ptrdiff_t _Num = __last - __first; + if (__builtin_expect(_Num > 1, true)) + __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); + else if (_Num == 1) + std::__copy_move<_IsMove, false, random_access_iterator_tag>:: + __assign_one(__result, __first); + return __result + _Num; + } + }; + + + + template + struct _Deque_iterator; + + struct _Bit_iterator; + + + + + + + template + struct char_traits; + + template + class istreambuf_iterator; + + template + class ostreambuf_iterator; + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(_CharT*, _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(const _CharT*, const _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + _CharT*>::__type + __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, + std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type + __copy_move_a2( + istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, + std::_Deque_iterator<_CharT, _CharT&, _CharT*>); + + + template + + inline _OI + __copy_move_a2(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::iterator_category _Category; + + + + + + return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value, + _Category>::__copy_m(__first, __last, __result); + } + + template + _OI + __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _OI); + + template + std::_Deque_iterator<_OTp, _OTp&, _OTp*> + __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_OTp, _OTp&, _OTp*>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, + std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type + __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); + + template + + inline _OI + __copy_move_a1(_II __first, _II __last, _OI __result) + { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } + + template + + inline _OI + __copy_move_a(_II __first, _II __last, _OI __result) + { + return std::__niter_wrap(__result, + std::__copy_move_a1<_IsMove>(std::__niter_base(__first), + std::__niter_base(__last), + std::__niter_base(__result))); + } + + template + + _OI + __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + _OI); + + template + + __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __copy_move_a(_II, _II, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); + + template + + ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> + __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); + + template + + _OutputIterator + __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, + bool) + { + if (__n > 0) + { + while (true) + { + *__result = *__first; + ++__result; + if (--__n > 0) + ++__first; + else + break; + } + } + return __result; + } + + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, _CharT*>::__type + __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, + _Size, _CharT*, bool); + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, + std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type + __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, _Size, + std::_Deque_iterator<_CharT, _CharT&, _CharT*>, + bool); +# 639 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + copy(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a<__is_move_iterator<_II>::__value> + (std::__miter_base(__first), std::__miter_base(__last), __result); + } +# 672 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + move(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a(std::__miter_base(__first), + std::__miter_base(__last), __result); + } + + + + + + + template + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = *--__last; + return __result; + } + }; + + + template + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type + __n = __last - __first; + for (; __n > 0; --__n) + *--__result = *--__last; + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type + __n = __last - __first; + for (; __n > 0; --__n) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template + struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> + { + template + + static _Up* + __copy_move_b(_Tp* __first, _Tp* __last, _Up* __result) + { + const ptrdiff_t _Num = __last - __first; + if (__builtin_expect(_Num > 1, true)) + __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); + else if (_Num == 1) + std::__copy_move<_IsMove, false, random_access_iterator_tag>:: + __assign_one(__result - 1, __first); + return __result - _Num; + } + }; + + template + + inline _BI2 + __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) + { + typedef typename iterator_traits<_BI1>::iterator_category _Category; + + + + + + return std::__copy_move_backward<_IsMove, + __memcpyable<_BI2, _BI1>::__value, + _Category>::__copy_move_b(__first, + __last, + __result); + } + + template + + inline _BI2 + __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) + { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } + + template + _OI + __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _OI); + + template + std::_Deque_iterator<_OTp, _OTp&, _OTp*> + __copy_move_backward_a1( + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_OTp, _OTp&, _OTp*>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, + std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type + __copy_move_backward_a1(_II, _II, + std::_Deque_iterator<_Tp, _Tp&, _Tp*>); + + template + + inline _OI + __copy_move_backward_a(_II __first, _II __last, _OI __result) + { + return std::__niter_wrap(__result, + std::__copy_move_backward_a1<_IsMove> + (std::__niter_base(__first), std::__niter_base(__last), + std::__niter_base(__result))); + } + + template + + _OI + __copy_move_backward_a( + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + _OI); + + template + + __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __copy_move_backward_a(_II, _II, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); + + template + + ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> + __copy_move_backward_a( + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); +# 875 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _BI2 + copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + ; + + return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> + (std::__miter_base(__first), std::__miter_base(__last), __result); + } +# 910 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _BI2 + move_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + ; + + return std::__copy_move_backward_a(std::__miter_base(__first), + std::__miter_base(__last), + __result); + } + + + + + + + template + + inline typename + __gnu_cxx::__enable_if::__value, void>::__type + __fill_a1(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + for (; __first != __last; ++__first) + *__first = __value; + } + + template + + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type + __fill_a1(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __first != __last; ++__first) + *__first = __tmp; + } + + + template + + inline typename + __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type + __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c) + { + const _Tp __tmp = __c; +# 971 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + if (const size_t __len = __last - __first) + __builtin_memset(__first, static_cast(__tmp), __len); + } + + template + + inline void + __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, + ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, + const _Tp& __value) + { std::__fill_a1(__first.base(), __last.base(), __value); } + + template + void + __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, + const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, + const _VTp&); + + + void + __fill_a1(std::_Bit_iterator, std::_Bit_iterator, + const bool&); + + template + + inline void + __fill_a(_FIte __first, _FIte __last, const _Tp& __value) + { std::__fill_a1(__first, __last, __value); } + + template + + void + __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const _Tp&); +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline void + fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) + { + + + + ; + + std::__fill_a(__first, __last, __value); + } + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" + + inline constexpr int + __size_to_integer(int __n) { return __n; } + inline constexpr unsigned + __size_to_integer(unsigned __n) { return __n; } + inline constexpr long + __size_to_integer(long __n) { return __n; } + inline constexpr unsigned long + __size_to_integer(unsigned long __n) { return __n; } + inline constexpr long long + __size_to_integer(long long __n) { return __n; } + inline constexpr unsigned long long + __size_to_integer(unsigned long long __n) { return __n; } + + + __extension__ inline constexpr __int128 + __size_to_integer(__int128 __n) { return __n; } + __extension__ inline constexpr unsigned __int128 + __size_to_integer(unsigned __int128 __n) { return __n; } +# 1073 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + inline constexpr long long + __size_to_integer(float __n) { return (long long)__n; } + inline constexpr long long + __size_to_integer(double __n) { return (long long)__n; } + inline constexpr long long + __size_to_integer(long double __n) { return (long long)__n; } + + __extension__ inline constexpr long long + __size_to_integer(__float128 __n) { return (long long)__n; } + +#pragma GCC diagnostic pop + + template + + inline typename + __gnu_cxx::__enable_if::__value, _OutputIterator>::__type + __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) + { + for (; __n > 0; --__n, (void) ++__first) + *__first = __value; + return __first; + } + + template + + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type + __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __n > 0; --__n, (void) ++__first) + *__first = __tmp; + return __first; + } + + template + + ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, + _Size __n, const _Tp& __value, + std::input_iterator_tag); + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::output_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + return __fill_n_a1(__first, __n, __value); + } + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::input_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + return __fill_n_a1(__first, __n, __value); + } + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::random_access_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + if (__n <= 0) + return __first; + + ; + + std::__fill_a(__first, __first + __n, __value); + return __first + __n; + } +# 1175 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + fill_n(_OI __first, _Size __n, const _Tp& __value) + { + + + + return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, + std::__iterator_category(__first)); + } + + template + struct __equal + { + template + + static bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + for (; __first1 != __last1; ++__first1, (void) ++__first2) + if (!(*__first1 == *__first2)) + return false; + return true; + } + }; + + template<> + struct __equal + { + template + + static bool + equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) + { + if (const size_t __len = (__last1 - __first1)) + return !std::__memcmp(__first1, __first2, __len); + return true; + } + }; + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, bool>::__type + __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _II); + + template + bool + __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, bool>::__type + __equal_aux1(_II, _II, + std::_Deque_iterator<_Tp, _Ref, _Ptr>); + + template + + inline bool + __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + const bool __simple = ((__is_integer<_ValueType1>::__value + || __is_pointer<_ValueType1>::__value) + && __memcmpable<_II1, _II2>::__value); + return std::__equal<__simple>::equal(__first1, __last1, __first2); + } + + template + + inline bool + __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) + { + return std::__equal_aux1(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2)); + } + + template + + bool + __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + _II2); + + template + + bool + __equal_aux(_II1, _II1, + const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); + + template + + bool + __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); + + template + struct __lc_rai + { + template + + static _II1 + __newlast1(_II1, _II1 __last1, _II2, _II2) + { return __last1; } + + template + + static bool + __cnd2(_II __first, _II __last) + { return __first != __last; } + }; + + template<> + struct __lc_rai + { + template + + static _RAI1 + __newlast1(_RAI1 __first1, _RAI1 __last1, + _RAI2 __first2, _RAI2 __last2) + { + const typename iterator_traits<_RAI1>::difference_type + __diff1 = __last1 - __first1; + const typename iterator_traits<_RAI2>::difference_type + __diff2 = __last2 - __first2; + return __diff2 < __diff1 ? __first1 + __diff2 : __last1; + } + + template + static bool + __cnd2(_RAI, _RAI) + { return true; } + }; + + template + + bool + __lexicographical_compare_impl(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, + _Compare __comp) + { + typedef typename iterator_traits<_II1>::iterator_category _Category1; + typedef typename iterator_traits<_II2>::iterator_category _Category2; + typedef std::__lc_rai<_Category1, _Category2> __rai_type; + + __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); + for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); + ++__first1, (void)++__first2) + { + if (__comp(__first1, __first2)) + return true; + if (__comp(__first2, __first1)) + return false; + } + return __first1 == __last1 && __first2 != __last2; + } + + template + struct __lexicographical_compare + { + template + + static bool + __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + using __gnu_cxx::__ops::__iter_less_iter; + return std::__lexicographical_compare_impl(__first1, __last1, + __first2, __last2, + __iter_less_iter()); + } + + template + + static int + __3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + while (__first1 != __last1) + { + if (__first2 == __last2) + return +1; + if (*__first1 < *__first2) + return -1; + if (*__first2 < *__first1) + return +1; + ++__first1; + ++__first2; + } + return int(__first2 == __last2) - 1; + } + }; + + template<> + struct __lexicographical_compare + { + template + + static bool + __lc(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { return __3way(__first1, __last1, __first2, __last2) < 0; } + + template + + static ptrdiff_t + __3way(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { + const size_t __len1 = __last1 - __first1; + const size_t __len2 = __last2 - __first2; + if (const size_t __len = std::min(__len1, __len2)) + if (int __result = std::__memcmp(__first1, __first2, __len)) + return __result; + return ptrdiff_t(__len1 - __len2); + } + }; + + template + + inline bool + __lexicographical_compare_aux1(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + typedef typename iterator_traits<_II2>::value_type _ValueType2; + const bool __simple = + (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value + && __is_pointer<_II1>::__value + && __is_pointer<_II2>::__value + + + + + + + + ); + + return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, + __first2, __last2); + } + + template + bool + __lexicographical_compare_aux1( + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + _Tp2*, _Tp2*); + + template + bool + __lexicographical_compare_aux1(_Tp1*, _Tp1*, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + bool + __lexicographical_compare_aux1( + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + + inline bool + __lexicographical_compare_aux(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + return std::__lexicographical_compare_aux1(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2), + std::__niter_base(__last2)); + } + + template + + bool + __lexicographical_compare_aux( + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + _II2, _II2); + + template + + bool + __lexicographical_compare_aux( + _II1, _II1, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); + + template + + bool + __lexicographical_compare_aux( + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); + + template + + _ForwardIterator + __lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _DistanceType __len = std::distance(__first, __last); + + while (__len > 0) + { + _DistanceType __half = __len >> 1; + _ForwardIterator __middle = __first; + std::advance(__middle, __half); + if (__comp(__middle, __val)) + { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else + __len = __half; + } + return __first; + } +# 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline _ForwardIterator + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + + + + + ; + + return std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val()); + } + + + + template + inline constexpr _Tp + __lg(_Tp __n) + { + + return std::__bit_width(make_unsigned_t<_Tp>(__n)) - 1; +# 1563 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + } + + +# 1579 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + + + + + + + ; + + return std::__equal_aux(__first1, __last1, __first2); + } +# 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + for (; __first1 != __last1; ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return true; + } + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++17-extensions" + + + template + + inline bool + __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + using _RATag = random_access_iterator_tag; + using _Cat1 = typename iterator_traits<_II1>::iterator_category; + using _Cat2 = typename iterator_traits<_II2>::iterator_category; + using _RAIters = __and_, is_same<_Cat2, _RATag>>; + if constexpr (_RAIters::value) + { + if ((__last1 - __first1) != (__last2 - __first2)) + return false; + return std::equal(__first1, __last1, __first2); + } + else + { + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!(*__first1 == *__first2)) + return false; + return __first1 == __last1 && __first2 == __last2; + } + } + + + template + + inline bool + __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, + _BinaryPredicate __binary_pred) + { + using _RATag = random_access_iterator_tag; + using _Cat1 = typename iterator_traits<_II1>::iterator_category; + using _Cat2 = typename iterator_traits<_II2>::iterator_category; + using _RAIters = __and_, is_same<_Cat2, _RATag>>; + if constexpr (_RAIters::value) + { + if ((__last1 - __first1) != (__last2 - __first2)) + return false; + return std::equal(__first1, __last1, __first2, + __binary_pred); + } + else + { + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return __first1 == __last1 && __first2 == __last2; + } + } +#pragma GCC diagnostic pop +# 1701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + + + + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2); + } +# 1734 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2, + __binary_pred); + } +# 1766 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + + + + + + + + + + ; + ; + + return std::__lexicographical_compare_aux(__first1, __last1, + __first2, __last2); + } +# 1801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, _Compare __comp) + { + + + + ; + ; + + return std::__lexicographical_compare_impl + (__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 1916 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 1944 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2) + { + + + + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 1978 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + template + + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __first2 != __last2 + && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 2026 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2) + { + + + + + + + ; + ; + + return std::__mismatch(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 2062 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__mismatch(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + + + + template + + inline _InputIterator + __find_if(_InputIterator __first, _InputIterator __last, + _Predicate __pred, input_iterator_tag) + { + while (__first != __last && !__pred(__first)) + ++__first; + return __first; + } + + + template + + _RandomAccessIterator + __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Predicate __pred, random_access_iterator_tag) + { + typename iterator_traits<_RandomAccessIterator>::difference_type + __trip_count = (__last - __first) >> 2; + + for (; __trip_count > 0; --__trip_count) + { + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + } + + switch (__last - __first) + { + case 3: + if (__pred(__first)) + return __first; + ++__first; + + case 2: + if (__pred(__first)) + return __first; + ++__first; + + case 1: + if (__pred(__first)) + return __first; + ++__first; + + case 0: + default: + return __last; + } + } + + template + + inline _Iterator + __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) + { + return __find_if(__first, __last, __pred, + std::__iterator_category(__first)); + } + + template + + typename iterator_traits<_InputIterator>::difference_type + __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { + typename iterator_traits<_InputIterator>::difference_type __n = 0; + for (; __first != __last; ++__first) + if (__pred(__first)) + ++__n; + return __n; + } + + template + + _ForwardIterator + __remove_if(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + __first = std::__find_if(__first, __last, __pred); + if (__first == __last) + return __first; + _ForwardIterator __result = __first; + ++__first; + for (; __first != __last; ++__first) + if (!__pred(__first)) + { + *__result = std::move(*__first); + ++__result; + } + return __result; + } + + template + + _ForwardIterator1 + __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + if (__first1 == __last1 || __first2 == __last2) + return __first1; + + + _ForwardIterator2 __p1(__first2); + if (++__p1 == __last2) + return std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + + _ForwardIterator1 __current = __first1; + + for (;;) + { + __first1 = + std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + if (__first1 == __last1) + return __last1; + + _ForwardIterator2 __p = __p1; + __current = __first1; + if (++__current == __last1) + return __last1; + + while (__predicate(__current, __p)) + { + if (++__p == __last2) + return __first1; + if (++__current == __last1) + return __last1; + } + ++__first1; + } + return __first1; + } + + + template + + bool + __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _BinaryPredicate __pred) + { + + + for (; __first1 != __last1; ++__first1, (void)++__first2) + if (!__pred(__first1, __first2)) + break; + + if (__first1 == __last1) + return true; + + + + _ForwardIterator2 __last2 = __first2; + std::advance(__last2, std::distance(__first1, __last1)); + for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) + { + if (__scan != std::__find_if(__first1, __scan, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) + continue; + + auto __matches + = std::__count_if(__first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); + if (0 == __matches || + std::__count_if(__scan, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) + != __matches) + return false; + } + return true; + } +# 2286 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline bool + is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + + ; + + return std::__is_permutation(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } + + + +# 2328 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _ForwardIterator1 + search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + + + + + + ; + ; + + return std::__search(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__predicate)); + } + + + +} +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + enum float_round_style + { + round_indeterminate = -1, + round_toward_zero = 0, + round_to_nearest = 1, + round_toward_infinity = 2, + round_toward_neg_infinity = 3 + }; + + + + + + + + enum float_denorm_style + { + + denorm_indeterminate = -1, + + denorm_absent = 0, + + denorm_present = 1 + }; +# 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + struct __numeric_limits_base + { + + + static constexpr bool is_specialized = false; + + + + + static constexpr int digits = 0; + + + static constexpr int digits10 = 0; + + + + + static constexpr int max_digits10 = 0; + + + + static constexpr bool is_signed = false; + + + static constexpr bool is_integer = false; + + + + + static constexpr bool is_exact = false; + + + + static constexpr int radix = 0; + + + + static constexpr int min_exponent = 0; + + + + static constexpr int min_exponent10 = 0; + + + + + static constexpr int max_exponent = 0; + + + + static constexpr int max_exponent10 = 0; + + + static constexpr bool has_infinity = false; + + + + static constexpr bool has_quiet_NaN = false; + + + + static constexpr bool has_signaling_NaN = false; + + + static constexpr float_denorm_style has_denorm = denorm_absent; + + + + static constexpr bool has_denorm_loss = false; + + + + static constexpr bool is_iec559 = false; + + + + + static constexpr bool is_bounded = false; +# 288 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + static constexpr bool is_modulo = false; + + + static constexpr bool traps = false; + + + static constexpr bool tinyness_before = false; + + + + + static constexpr float_round_style round_style = + round_toward_zero; + }; +# 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template + struct numeric_limits : public __numeric_limits_base + { + + + static constexpr _Tp + min() noexcept { return _Tp(); } + + + static constexpr _Tp + max() noexcept { return _Tp(); } + + + + + static constexpr _Tp + lowest() noexcept { return _Tp(); } + + + + + static constexpr _Tp + epsilon() noexcept { return _Tp(); } + + + static constexpr _Tp + round_error() noexcept { return _Tp(); } + + + static constexpr _Tp + infinity() noexcept { return _Tp(); } + + + + static constexpr _Tp + quiet_NaN() noexcept { return _Tp(); } + + + + static constexpr _Tp + signaling_NaN() noexcept { return _Tp(); } + + + + + static constexpr _Tp + denorm_min() noexcept { return _Tp(); } + }; + + + + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; +# 383 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr bool + min() noexcept { return false; } + + static constexpr bool + max() noexcept { return true; } + + + static constexpr bool + lowest() noexcept { return min(); } + + static constexpr int digits = 1; + static constexpr int digits10 = 0; + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr bool + epsilon() noexcept { return false; } + + static constexpr bool + round_error() noexcept { return false; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr bool + infinity() noexcept { return false; } + + static constexpr bool + quiet_NaN() noexcept { return false; } + + static constexpr bool + signaling_NaN() noexcept { return false; } + + static constexpr bool + denorm_min() noexcept { return false; } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + + + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char + min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } + + static constexpr char + max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } + + + static constexpr char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((char)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char + epsilon() noexcept { return 0; } + + static constexpr char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr + char infinity() noexcept { return char(); } + + static constexpr char + quiet_NaN() noexcept { return char(); } + + static constexpr char + signaling_NaN() noexcept { return char(); } + + static constexpr char + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr signed char + min() noexcept { return -0x7f - 1; } + + static constexpr signed char + max() noexcept { return 0x7f; } + + + static constexpr signed char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr signed char + epsilon() noexcept { return 0; } + + static constexpr signed char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr signed char + infinity() noexcept { return static_cast(0); } + + static constexpr signed char + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr signed char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr signed char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned char + min() noexcept { return 0; } + + static constexpr unsigned char + max() noexcept { return 0x7f * 2U + 1; } + + + static constexpr unsigned char + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned char + epsilon() noexcept { return 0; } + + static constexpr unsigned char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned char + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned char + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr wchar_t + min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } + + static constexpr wchar_t + max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } + + + static constexpr wchar_t + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((wchar_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr wchar_t + epsilon() noexcept { return 0; } + + static constexpr wchar_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr wchar_t + infinity() noexcept { return wchar_t(); } + + static constexpr wchar_t + quiet_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + signaling_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + denorm_min() noexcept { return wchar_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 796 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char16_t + min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } + + static constexpr char16_t + max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } + + static constexpr char16_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char16_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char16_t + epsilon() noexcept { return 0; } + + static constexpr char16_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char16_t + infinity() noexcept { return char16_t(); } + + static constexpr char16_t + quiet_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + signaling_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + denorm_min() noexcept { return char16_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char32_t + min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } + + static constexpr char32_t + max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } + + static constexpr char32_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char32_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char32_t + epsilon() noexcept { return 0; } + + static constexpr char32_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char32_t + infinity() noexcept { return char32_t(); } + + static constexpr char32_t + quiet_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + signaling_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + denorm_min() noexcept { return char32_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr short + min() noexcept { return -0x7fff - 1; } + + static constexpr short + max() noexcept { return 0x7fff; } + + + static constexpr short + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); + static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr short + epsilon() noexcept { return 0; } + + static constexpr short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr short + infinity() noexcept { return short(); } + + static constexpr short + quiet_NaN() noexcept { return short(); } + + static constexpr short + signaling_NaN() noexcept { return short(); } + + static constexpr short + denorm_min() noexcept { return short(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned short + min() noexcept { return 0; } + + static constexpr unsigned short + max() noexcept { return 0x7fff * 2U + 1; } + + + static constexpr unsigned short + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned short + epsilon() noexcept { return 0; } + + static constexpr unsigned short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned short + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned short + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr int + min() noexcept { return -0x7fffffff - 1; } + + static constexpr int + max() noexcept { return 0x7fffffff; } + + + static constexpr int + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); + static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr int + epsilon() noexcept { return 0; } + + static constexpr int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr int + infinity() noexcept { return static_cast(0); } + + static constexpr int + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr int + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr int + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned int + min() noexcept { return 0; } + + static constexpr unsigned int + max() noexcept { return 0x7fffffff * 2U + 1; } + + + static constexpr unsigned int + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned int + epsilon() noexcept { return 0; } + + static constexpr unsigned int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned int + infinity() noexcept { return static_cast(0); } + + static constexpr unsigned int + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long + min() noexcept { return -0x7fffffffffffffffL - 1; } + + static constexpr long + max() noexcept { return 0x7fffffffffffffffL; } + + + static constexpr long + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); + static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long + epsilon() noexcept { return 0; } + + static constexpr long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long + infinity() noexcept { return static_cast(0); } + + static constexpr long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long + min() noexcept { return 0; } + + static constexpr unsigned long + max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } + + + static constexpr unsigned long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long + epsilon() noexcept { return 0; } + + static constexpr unsigned long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long long + min() noexcept { return -0x7fffffffffffffffLL - 1; } + + static constexpr long long + max() noexcept { return 0x7fffffffffffffffLL; } + + + static constexpr long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(long long) * 8 - ((long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long long + epsilon() noexcept { return 0; } + + static constexpr long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long long + infinity() noexcept { return static_cast(0); } + + static constexpr long long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr long long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long long + min() noexcept { return 0; } + + static constexpr unsigned long long + max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } + + + static constexpr unsigned long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long long + epsilon() noexcept { return 0; } + + static constexpr unsigned long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 1637 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + __extension__ template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; __extension__ template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; +# 1669 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr float + min() noexcept { return 1.17549435082228750796873653722224568e-38F; } + + static constexpr float + max() noexcept { return 3.40282346638528859811704183484516925e+38F; } + + + static constexpr float + lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } + + + static constexpr int digits = 24; + static constexpr int digits10 = 6; + + static constexpr int max_digits10 + = (2 + (24) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr float + epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } + + static constexpr float + round_error() noexcept { return 0.5F; } + + static constexpr int min_exponent = (-125); + static constexpr int min_exponent10 = (-37); + static constexpr int max_exponent = 128; + static constexpr int max_exponent10 = 38; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr float + infinity() noexcept { return __builtin_huge_valf(); } + + static constexpr float + quiet_NaN() noexcept { return __builtin_nanf(""); } + + static constexpr float + signaling_NaN() noexcept { return __builtin_nansf(""); } + + static constexpr float + denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr double + min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } + + static constexpr double + max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } + + + static constexpr double + lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } + + + static constexpr int digits = 53; + static constexpr int digits10 = 15; + + static constexpr int max_digits10 + = (2 + (53) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr double + epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } + + static constexpr double + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = (-1021); + static constexpr int min_exponent10 = (-307); + static constexpr int max_exponent = 1024; + static constexpr int max_exponent10 = 308; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr double + infinity() noexcept { return __builtin_huge_val(); } + + static constexpr double + quiet_NaN() noexcept { return __builtin_nan(""); } + + static constexpr double + signaling_NaN() noexcept { return __builtin_nans(""); } + + static constexpr double + denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long double + min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } + + static constexpr long double + max() noexcept { return 1.18973149535723176502126385303097021e+4932L; } + + + static constexpr long double + lowest() noexcept { return -1.18973149535723176502126385303097021e+4932L; } + + + static constexpr int digits = 64; + static constexpr int digits10 = 18; + + static constexpr int max_digits10 + = (2 + (64) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr long double + epsilon() noexcept { return 1.08420217248550443400745280086994171e-19L; } + + static constexpr long double + round_error() noexcept { return 0.5L; } + + static constexpr int min_exponent = (-16381); + static constexpr int min_exponent10 = (-4931); + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr long double + infinity() noexcept { return __builtin_huge_vall(); } + + static constexpr long double + quiet_NaN() noexcept { return __builtin_nanl(""); } + + static constexpr long double + signaling_NaN() noexcept { return __builtin_nansl(""); } + + static constexpr long double + denorm_min() noexcept { return 3.64519953188247460252840593361941982e-4951L; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = + false; + static constexpr float_round_style round_style = + round_to_nearest; + }; +# 1989 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +__extension__ template<> struct numeric_limits<_Float32> { static constexpr bool is_specialized = true; static constexpr _Float32 min() noexcept { return 1.17549435082228750796873653722224568e-38F32; } static constexpr _Float32 max() noexcept { return 3.40282346638528859811704183484516925e+38F32; } static constexpr _Float32 lowest() noexcept { return -3.40282346638528859811704183484516925e+38F32; } static constexpr int digits = 24; static constexpr int digits10 = 6; static constexpr int max_digits10 = (2 + (24) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float32 epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F32; } static constexpr _Float32 round_error() noexcept { return 0.5F32; } static constexpr int min_exponent = (-125); static constexpr int min_exponent10 = (-37); static constexpr int max_exponent = 128; static constexpr int max_exponent10 = 38; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float32 infinity() noexcept { return __builtin_huge_valf32(); } static constexpr _Float32 quiet_NaN() noexcept { return __builtin_nanf32(""); } static constexpr _Float32 signaling_NaN() noexcept { return __builtin_nansf32(""); } static constexpr _Float32 denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F32; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; + + +__extension__ template<> struct numeric_limits<_Float64> { static constexpr bool is_specialized = true; static constexpr _Float64 min() noexcept { return 2.22507385850720138309023271733240406e-308F64; } static constexpr _Float64 max() noexcept { return 1.79769313486231570814527423731704357e+308F64; } static constexpr _Float64 lowest() noexcept { return -1.79769313486231570814527423731704357e+308F64; } static constexpr int digits = 53; static constexpr int digits10 = 15; static constexpr int max_digits10 = (2 + (53) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float64 epsilon() noexcept { return 2.22044604925031308084726333618164062e-16F64; } static constexpr _Float64 round_error() noexcept { return 0.5F64; } static constexpr int min_exponent = (-1021); static constexpr int min_exponent10 = (-307); static constexpr int max_exponent = 1024; static constexpr int max_exponent10 = 308; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float64 infinity() noexcept { return __builtin_huge_valf64(); } static constexpr _Float64 quiet_NaN() noexcept { return __builtin_nanf64(""); } static constexpr _Float64 signaling_NaN() noexcept { return __builtin_nansf64(""); } static constexpr _Float64 denorm_min() noexcept { return 4.94065645841246544176568792868221372e-324F64; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; + + +__extension__ template<> struct numeric_limits<_Float128> { static constexpr bool is_specialized = true; static constexpr _Float128 min() noexcept { return 3.36210314311209350626267781732175260e-4932F128; } static constexpr _Float128 max() noexcept { return 1.18973149535723176508575932662800702e+4932F128; } static constexpr _Float128 lowest() noexcept { return -1.18973149535723176508575932662800702e+4932F128; } static constexpr int digits = 113; static constexpr int digits10 = 33; static constexpr int max_digits10 = (2 + (113) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float128 epsilon() noexcept { return 1.92592994438723585305597794258492732e-34F128; } static constexpr _Float128 round_error() noexcept { return 0.5F128; } static constexpr int min_exponent = (-16381); static constexpr int min_exponent10 = (-4931); static constexpr int max_exponent = 16384; static constexpr int max_exponent10 = 4932; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float128 infinity() noexcept { return __builtin_huge_valf128(); } static constexpr _Float128 quiet_NaN() noexcept { return __builtin_nanf128(""); } static constexpr _Float128 signaling_NaN() noexcept { return __builtin_nansf128(""); } static constexpr _Float128 denorm_min() noexcept { return 6.47517511943802511092443895822764655e-4966F128; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; +# 2087 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + __extension__ + template<> + struct numeric_limits<__float128> + { + static constexpr bool is_specialized = true; + + static constexpr __float128 + min() noexcept + { + + + + + return __extension__ 0x1.0p-16382Q; + + } + + static constexpr __float128 + max() noexcept + { + + + + + + + + return __extension__ 0x1.ffffffffffffffffffffffffffffp+16383Q; + + } + + static constexpr __float128 + lowest() noexcept + { return -max(); } + + static constexpr int digits = 113; + static constexpr int digits10 = 33; + + static constexpr int max_digits10 = 35; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr __float128 + epsilon() noexcept + { return double(1.9259299443872359e-34); } + + static constexpr __float128 + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = -16381; + static constexpr int min_exponent10 = -4931; + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + + + static constexpr bool has_signaling_NaN = true; + + + + static constexpr float_denorm_style has_denorm + = denorm_present; + static constexpr bool has_denorm_loss = false; + + static constexpr __float128 + infinity() noexcept + { return __builtin_huge_val(); } + + static constexpr __float128 + quiet_NaN() noexcept + { return __builtin_nan(""); } + + static constexpr __float128 + signaling_NaN() noexcept + { + + return __builtin_nansq(""); + + + + + + } + + static constexpr __float128 + denorm_min() noexcept + { + + + + + return __extension__ 0x1.0p-16494Q; + + } + + static constexpr bool is_iec559 = has_signaling_NaN; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_to_nearest; +# 2218 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + }; + + + + +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + namespace __detail + { + + + + template + struct __floating_point_constant + { + static const _Tp __value; + }; + + + + template + struct __numeric_constants + { + + static _Tp __pi() throw() + { return static_cast<_Tp>(3.1415926535897932384626433832795029L); } + + static _Tp __pi_2() throw() + { return static_cast<_Tp>(1.5707963267948966192313216916397514L); } + + static _Tp __pi_3() throw() + { return static_cast<_Tp>(1.0471975511965977461542144610931676L); } + + static _Tp __pi_4() throw() + { return static_cast<_Tp>(0.7853981633974483096156608458198757L); } + + static _Tp __1_pi() throw() + { return static_cast<_Tp>(0.3183098861837906715377675267450287L); } + + static _Tp __2_sqrtpi() throw() + { return static_cast<_Tp>(1.1283791670955125738961589031215452L); } + + static _Tp __sqrt2() throw() + { return static_cast<_Tp>(1.4142135623730950488016887242096981L); } + + static _Tp __sqrt3() throw() + { return static_cast<_Tp>(1.7320508075688772935274463415058723L); } + + static _Tp __sqrtpio2() throw() + { return static_cast<_Tp>(1.2533141373155002512078826424055226L); } + + static _Tp __sqrt1_2() throw() + { return static_cast<_Tp>(0.7071067811865475244008443621048490L); } + + static _Tp __lnpi() throw() + { return static_cast<_Tp>(1.1447298858494001741434273513530587L); } + + static _Tp __gamma_e() throw() + { return static_cast<_Tp>(0.5772156649015328606065120900824024L); } + + static _Tp __euler() throw() + { return static_cast<_Tp>(2.7182818284590452353602874713526625L); } + }; +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + template + inline bool __isnan(_Tp __x) + { return std::isnan(__x); } +# 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + } + + + + + +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + namespace __detail + { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __bernoulli_series(unsigned int __n) + { + + static const _Tp __num[28] = { + _Tp(1UL), -_Tp(1UL) / _Tp(2UL), + _Tp(1UL) / _Tp(6UL), _Tp(0UL), + -_Tp(1UL) / _Tp(30UL), _Tp(0UL), + _Tp(1UL) / _Tp(42UL), _Tp(0UL), + -_Tp(1UL) / _Tp(30UL), _Tp(0UL), + _Tp(5UL) / _Tp(66UL), _Tp(0UL), + -_Tp(691UL) / _Tp(2730UL), _Tp(0UL), + _Tp(7UL) / _Tp(6UL), _Tp(0UL), + -_Tp(3617UL) / _Tp(510UL), _Tp(0UL), + _Tp(43867UL) / _Tp(798UL), _Tp(0UL), + -_Tp(174611) / _Tp(330UL), _Tp(0UL), + _Tp(854513UL) / _Tp(138UL), _Tp(0UL), + -_Tp(236364091UL) / _Tp(2730UL), _Tp(0UL), + _Tp(8553103UL) / _Tp(6UL), _Tp(0UL) + }; + + if (__n == 0) + return _Tp(1); + + if (__n == 1) + return -_Tp(1) / _Tp(2); + + + if (__n % 2 == 1) + return _Tp(0); + + + if (__n < 28) + return __num[__n]; + + + _Tp __fact = _Tp(1); + if ((__n / 2) % 2 == 0) + __fact *= _Tp(-1); + for (unsigned int __k = 1; __k <= __n; ++__k) + __fact *= __k / (_Tp(2) * __numeric_constants<_Tp>::__pi()); + __fact *= _Tp(2); + + _Tp __sum = _Tp(0); + for (unsigned int __i = 1; __i < 1000; ++__i) + { + _Tp __term = std::pow(_Tp(__i), -_Tp(__n)); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return __fact * __sum; + } +# 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + inline _Tp + __bernoulli(int __n) + { return __bernoulli_series<_Tp>(__n); } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_bernoulli(_Tp __x) + { + _Tp __lg = (__x - _Tp(0.5L)) * std::log(__x) - __x + + _Tp(0.5L) * std::log(_Tp(2) + * __numeric_constants<_Tp>::__pi()); + + const _Tp __xx = __x * __x; + _Tp __help = _Tp(1) / __x; + for ( unsigned int __i = 1; __i < 20; ++__i ) + { + const _Tp __2i = _Tp(2 * __i); + __help /= __2i * (__2i - _Tp(1)) * __xx; + __lg += __bernoulli<_Tp>(2 * __i) * __help; + } + + return __lg; + } +# 181 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_lanczos(_Tp __x) + { + const _Tp __xm1 = __x - _Tp(1); + + static const _Tp __lanczos_cheb_7[9] = { + _Tp( 0.99999999999980993227684700473478L), + _Tp( 676.520368121885098567009190444019L), + _Tp(-1259.13921672240287047156078755283L), + _Tp( 771.3234287776530788486528258894L), + _Tp(-176.61502916214059906584551354L), + _Tp( 12.507343278686904814458936853L), + _Tp(-0.13857109526572011689554707L), + _Tp( 9.984369578019570859563e-6L), + _Tp( 1.50563273514931155834e-7L) + }; + + static const _Tp __LOGROOT2PI + = _Tp(0.9189385332046727417803297364056176L); + + _Tp __sum = __lanczos_cheb_7[0]; + for(unsigned int __k = 1; __k < 9; ++__k) + __sum += __lanczos_cheb_7[__k] / (__xm1 + __k); + + const _Tp __term1 = (__xm1 + _Tp(0.5L)) + * std::log((__xm1 + _Tp(7.5L)) + / __numeric_constants<_Tp>::__euler()); + const _Tp __term2 = __LOGROOT2PI + std::log(__sum); + const _Tp __result = __term1 + (__term2 - _Tp(7)); + + return __result; + } +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma(_Tp __x) + { + if (__x > _Tp(0.5L)) + return __log_gamma_lanczos(__x); + else + { + const _Tp __sin_fact + = std::abs(std::sin(__numeric_constants<_Tp>::__pi() * __x)); + if (__sin_fact == _Tp(0)) + std::__throw_domain_error(("Argument is nonpositive integer " "in __log_gamma") + ); + return __numeric_constants<_Tp>::__lnpi() + - std::log(__sin_fact) + - __log_gamma_lanczos(_Tp(1) - __x); + } + } +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_sign(_Tp __x) + { + if (__x > _Tp(0)) + return _Tp(1); + else + { + const _Tp __sin_fact + = std::sin(__numeric_constants<_Tp>::__pi() * __x); + if (__sin_fact > _Tp(0)) + return (1); + else if (__sin_fact < _Tp(0)) + return -_Tp(1); + else + return _Tp(0); + } + } +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_bincoef(unsigned int __n, unsigned int __k) + { + + static const _Tp __max_bincoeff + = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + _Tp __coeff = ::std::lgamma(_Tp(1 + __n)) + - ::std::lgamma(_Tp(1 + __k)) + - ::std::lgamma(_Tp(1 + __n - __k)); + + + + + + } +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __bincoef(unsigned int __n, unsigned int __k) + { + + static const _Tp __max_bincoeff + = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + const _Tp __log_coeff = __log_bincoef<_Tp>(__n, __k); + if (__log_coeff > __max_bincoeff) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return std::exp(__log_coeff); + } +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + inline _Tp + __gamma(_Tp __x) + { return std::exp(__log_gamma(__x)); } +# 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi_series(_Tp __x) + { + _Tp __sum = -__numeric_constants<_Tp>::__gamma_e() - _Tp(1) / __x; + const unsigned int __max_iter = 100000; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + const _Tp __term = __x / (__k * (__k + __x)); + __sum += __term; + if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) + break; + } + return __sum; + } +# 386 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi_asymp(_Tp __x) + { + _Tp __sum = std::log(__x) - _Tp(0.5L) / __x; + const _Tp __xx = __x * __x; + _Tp __xp = __xx; + const unsigned int __max_iter = 100; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + const _Tp __term = __bernoulli<_Tp>(2 * __k) / (2 * __k * __xp); + __sum -= __term; + if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) + break; + __xp *= __xx; + } + return __sum; + } +# 417 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi(_Tp __x) + { + const int __n = static_cast(__x + 0.5L); + const _Tp __eps = _Tp(4) * std::numeric_limits<_Tp>::epsilon(); + if (__n <= 0 && std::abs(__x - _Tp(__n)) < __eps) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x < _Tp(0)) + { + const _Tp __pi = __numeric_constants<_Tp>::__pi(); + return __psi(_Tp(1) - __x) + - __pi * std::cos(__pi * __x) / std::sin(__pi * __x); + } + else if (__x > _Tp(100)) + return __psi_asymp(__x); + else + return __psi_series(__x); + } +# 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi(unsigned int __n, _Tp __x) + { + if (__x <= _Tp(0)) + std::__throw_domain_error(("Argument out of range " "in __psi") + ); + else if (__n == 0) + return __psi(__x); + else + { + const _Tp __hzeta = __hurwitz_zeta(_Tp(__n + 1), __x); + + const _Tp __ln_nfact = ::std::lgamma(_Tp(__n + 1)); + + + + _Tp __result = std::exp(__ln_nfact) * __hzeta; + if (__n % 2 == 1) + __result = -__result; + return __result; + } + } + } + + + + + + +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 1 3 +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + namespace __detail + { +# 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __gamma_temme(_Tp __mu, + _Tp & __gam1, _Tp & __gam2, _Tp & __gampl, _Tp & __gammi) + { + + __gampl = _Tp(1) / ::std::tgamma(_Tp(1) + __mu); + __gammi = _Tp(1) / ::std::tgamma(_Tp(1) - __mu); + + + + + + if (std::abs(__mu) < std::numeric_limits<_Tp>::epsilon()) + __gam1 = -_Tp(__numeric_constants<_Tp>::__gamma_e()); + else + __gam1 = (__gammi - __gampl) / (_Tp(2) * __mu); + + __gam2 = (__gammi + __gampl) / (_Tp(2)); + + return; + } +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __bessel_jn(_Tp __nu, _Tp __x, + _Tp & __Jnu, _Tp & __Nnu, _Tp & __Jpnu, _Tp & __Npnu) + { + if (__x == _Tp(0)) + { + if (__nu == _Tp(0)) + { + __Jnu = _Tp(1); + __Jpnu = _Tp(0); + } + else if (__nu == _Tp(1)) + { + __Jnu = _Tp(0); + __Jpnu = _Tp(0.5L); + } + else + { + __Jnu = _Tp(0); + __Jpnu = _Tp(0); + } + __Nnu = -std::numeric_limits<_Tp>::infinity(); + __Npnu = std::numeric_limits<_Tp>::infinity(); + return; + } + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + + + + const _Tp __fp_min = std::sqrt(std::numeric_limits<_Tp>::min()); + const int __max_iter = 15000; + const _Tp __x_min = _Tp(2); + + const int __nl = (__x < __x_min + ? static_cast(__nu + _Tp(0.5L)) + : std::max(0, static_cast(__nu - __x + _Tp(1.5L)))); + + const _Tp __mu = __nu - __nl; + const _Tp __mu2 = __mu * __mu; + const _Tp __xi = _Tp(1) / __x; + const _Tp __xi2 = _Tp(2) * __xi; + _Tp __w = __xi2 / __numeric_constants<_Tp>::__pi(); + int __isign = 1; + _Tp __h = __nu * __xi; + if (__h < __fp_min) + __h = __fp_min; + _Tp __b = __xi2 * __nu; + _Tp __d = _Tp(0); + _Tp __c = __h; + int __i; + for (__i = 1; __i <= __max_iter; ++__i) + { + __b += __xi2; + __d = __b - __d; + if (std::abs(__d) < __fp_min) + __d = __fp_min; + __c = __b - _Tp(1) / __c; + if (std::abs(__c) < __fp_min) + __c = __fp_min; + __d = _Tp(1) / __d; + const _Tp __del = __c * __d; + __h *= __del; + if (__d < _Tp(0)) + __isign = -__isign; + if (std::abs(__del - _Tp(1)) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Argument x too large in __bessel_jn; " "try asymptotic expansion.") + ); + _Tp __Jnul = __isign * __fp_min; + _Tp __Jpnul = __h * __Jnul; + _Tp __Jnul1 = __Jnul; + _Tp __Jpnu1 = __Jpnul; + _Tp __fact = __nu * __xi; + for ( int __l = __nl; __l >= 1; --__l ) + { + const _Tp __Jnutemp = __fact * __Jnul + __Jpnul; + __fact -= __xi; + __Jpnul = __fact * __Jnutemp - __Jnul; + __Jnul = __Jnutemp; + } + if (__Jnul == _Tp(0)) + __Jnul = __eps; + _Tp __f= __Jpnul / __Jnul; + _Tp __Nmu, __Nnu1, __Npmu, __Jmu; + if (__x < __x_min) + { + const _Tp __x2 = __x / _Tp(2); + const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; + _Tp __fact = (std::abs(__pimu) < __eps + ? _Tp(1) : __pimu / std::sin(__pimu)); + _Tp __d = -std::log(__x2); + _Tp __e = __mu * __d; + _Tp __fact2 = (std::abs(__e) < __eps + ? _Tp(1) : std::sinh(__e) / __e); + _Tp __gam1, __gam2, __gampl, __gammi; + __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); + _Tp __ff = (_Tp(2) / __numeric_constants<_Tp>::__pi()) + * __fact * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); + __e = std::exp(__e); + _Tp __p = __e / (__numeric_constants<_Tp>::__pi() * __gampl); + _Tp __q = _Tp(1) / (__e * __numeric_constants<_Tp>::__pi() * __gammi); + const _Tp __pimu2 = __pimu / _Tp(2); + _Tp __fact3 = (std::abs(__pimu2) < __eps + ? _Tp(1) : std::sin(__pimu2) / __pimu2 ); + _Tp __r = __numeric_constants<_Tp>::__pi() * __pimu2 * __fact3 * __fact3; + _Tp __c = _Tp(1); + __d = -__x2 * __x2; + _Tp __sum = __ff + __r * __q; + _Tp __sum1 = __p; + for (__i = 1; __i <= __max_iter; ++__i) + { + __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); + __c *= __d / _Tp(__i); + __p /= _Tp(__i) - __mu; + __q /= _Tp(__i) + __mu; + const _Tp __del = __c * (__ff + __r * __q); + __sum += __del; + const _Tp __del1 = __c * __p - __i * __del; + __sum1 += __del1; + if ( std::abs(__del) < __eps * (_Tp(1) + std::abs(__sum)) ) + break; + } + if ( __i > __max_iter ) + std::__throw_runtime_error(("Bessel y series failed to converge " "in __bessel_jn.") + ); + __Nmu = -__sum; + __Nnu1 = -__sum1 * __xi2; + __Npmu = __mu * __xi * __Nmu - __Nnu1; + __Jmu = __w / (__Npmu - __f * __Nmu); + } + else + { + _Tp __a = _Tp(0.25L) - __mu2; + _Tp __q = _Tp(1); + _Tp __p = -__xi / _Tp(2); + _Tp __br = _Tp(2) * __x; + _Tp __bi = _Tp(2); + _Tp __fact = __a * __xi / (__p * __p + __q * __q); + _Tp __cr = __br + __q * __fact; + _Tp __ci = __bi + __p * __fact; + _Tp __den = __br * __br + __bi * __bi; + _Tp __dr = __br / __den; + _Tp __di = -__bi / __den; + _Tp __dlr = __cr * __dr - __ci * __di; + _Tp __dli = __cr * __di + __ci * __dr; + _Tp __temp = __p * __dlr - __q * __dli; + __q = __p * __dli + __q * __dlr; + __p = __temp; + int __i; + for (__i = 2; __i <= __max_iter; ++__i) + { + __a += _Tp(2 * (__i - 1)); + __bi += _Tp(2); + __dr = __a * __dr + __br; + __di = __a * __di + __bi; + if (std::abs(__dr) + std::abs(__di) < __fp_min) + __dr = __fp_min; + __fact = __a / (__cr * __cr + __ci * __ci); + __cr = __br + __cr * __fact; + __ci = __bi - __ci * __fact; + if (std::abs(__cr) + std::abs(__ci) < __fp_min) + __cr = __fp_min; + __den = __dr * __dr + __di * __di; + __dr /= __den; + __di /= -__den; + __dlr = __cr * __dr - __ci * __di; + __dli = __cr * __di + __ci * __dr; + __temp = __p * __dlr - __q * __dli; + __q = __p * __dli + __q * __dlr; + __p = __temp; + if (std::abs(__dlr - _Tp(1)) + std::abs(__dli) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Lentz's method failed " "in __bessel_jn.") + ); + const _Tp __gam = (__p - __f) / __q; + __Jmu = std::sqrt(__w / ((__p - __f) * __gam + __q)); + + __Jmu = ::std::copysign(__Jmu, __Jnul); + + + + + __Nmu = __gam * __Jmu; + __Npmu = (__p + __q / __gam) * __Nmu; + __Nnu1 = __mu * __xi * __Nmu - __Npmu; + } + __fact = __Jmu / __Jnul; + __Jnu = __fact * __Jnul1; + __Jpnu = __fact * __Jpnu1; + for (__i = 1; __i <= __nl; ++__i) + { + const _Tp __Nnutemp = (__mu + __i) * __xi2 * __Nnu1 - __Nmu; + __Nmu = __Nnu1; + __Nnu1 = __Nnutemp; + } + __Nnu = __Nmu; + __Npnu = __nu * __xi * __Nmu - __Nnu1; + + return; + } +# 361 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __cyl_bessel_jn_asymp(_Tp __nu, _Tp __x, _Tp & __Jnu, _Tp & __Nnu) + { + const _Tp __mu = _Tp(4) * __nu * __nu; + const _Tp __8x = _Tp(8) * __x; + + _Tp __P = _Tp(0); + _Tp __Q = _Tp(0); + + _Tp __k = _Tp(0); + _Tp __term = _Tp(1); + + int __epsP = 0; + int __epsQ = 0; + + _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + do + { + __term *= (__k == 0 + ? _Tp(1) + : -(__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x)); + + __epsP = std::abs(__term) < __eps * std::abs(__P); + __P += __term; + + __k++; + + __term *= (__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x); + __epsQ = std::abs(__term) < __eps * std::abs(__Q); + __Q += __term; + + if (__epsP && __epsQ && __k > (__nu / 2.)) + break; + + __k++; + } + while (__k < 1000); + + const _Tp __chi = __x - (__nu + _Tp(0.5L)) + * __numeric_constants<_Tp>::__pi_2(); + + const _Tp __c = std::cos(__chi); + const _Tp __s = std::sin(__chi); + + const _Tp __coef = std::sqrt(_Tp(2) + / (__numeric_constants<_Tp>::__pi() * __x)); + + __Jnu = __coef * (__c * __P - __s * __Q); + __Nnu = __coef * (__s * __P + __c * __Q); + + return; + } +# 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_bessel_ij_series(_Tp __nu, _Tp __x, _Tp __sgn, + unsigned int __max_iter) + { + if (__x == _Tp(0)) + return __nu == _Tp(0) ? _Tp(1) : _Tp(0); + + const _Tp __x2 = __x / _Tp(2); + _Tp __fact = __nu * std::log(__x2); + + __fact -= ::std::lgamma(__nu + _Tp(1)); + + + + __fact = std::exp(__fact); + const _Tp __xx4 = __sgn * __x2 * __x2; + _Tp __Jn = _Tp(1); + _Tp __term = _Tp(1); + + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= __xx4 / (_Tp(__i) * (__nu + _Tp(__i))); + __Jn += __term; + if (std::abs(__term / __Jn) < std::numeric_limits<_Tp>::epsilon()) + break; + } + + return __fact * __Jn; + } +# 490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_bessel_j(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_j.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) + return __cyl_bessel_ij_series(__nu, __x, -_Tp(1), 200); + else if (__x > _Tp(1000)) + { + _Tp __J_nu, __N_nu; + __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); + return __J_nu; + } + else + { + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + return __J_nu; + } + } +# 532 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_neumann_n(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_neumann_n.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x > _Tp(1000)) + { + _Tp __J_nu, __N_nu; + __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); + return __N_nu; + } + else + { + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + return __N_nu; + } + } +# 569 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __sph_bessel_jn(unsigned int __n, _Tp __x, + _Tp & __j_n, _Tp & __n_n, _Tp & __jp_n, _Tp & __np_n) + { + const _Tp __nu = _Tp(__n) + _Tp(0.5L); + + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + + const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() + / std::sqrt(__x); + + __j_n = __factor * __J_nu; + __n_n = __factor * __N_nu; + __jp_n = __factor * __Jp_nu - __j_n / (_Tp(2) * __x); + __np_n = __factor * __Np_nu - __n_n / (_Tp(2) * __x); + + return; + } +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __sph_bessel(unsigned int __n, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __sph_bessel.") + ); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == _Tp(0)) + { + if (__n == 0) + return _Tp(1); + else + return _Tp(0); + } + else + { + _Tp __j_n, __n_n, __jp_n, __np_n; + __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); + return __j_n; + } + } +# 642 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __sph_neumann(unsigned int __n, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __sph_neumann.") + ); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == _Tp(0)) + return -std::numeric_limits<_Tp>::infinity(); + else + { + _Tp __j_n, __n_n, __jp_n, __np_n; + __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); + return __n_n; + } + } + } + + + + + + +} +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + namespace __detail + { +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_gamma(_Tp __x, _Tp __y) + { + + _Tp __bet; + + if (__x > __y) + { + __bet = ::std::tgamma(__x) + / ::std::tgamma(__x + __y); + __bet *= ::std::tgamma(__y); + } + else + { + __bet = ::std::tgamma(__y) + / ::std::tgamma(__x + __y); + __bet *= ::std::tgamma(__x); + } +# 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + return __bet; + } +# 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_lgamma(_Tp __x, _Tp __y) + { + + _Tp __bet = ::std::lgamma(__x) + + ::std::lgamma(__y) + - ::std::lgamma(__x + __y); + + + + + + __bet = std::exp(__bet); + return __bet; + } +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_product(_Tp __x, _Tp __y) + { + + _Tp __bet = (__x + __y) / (__x * __y); + + unsigned int __max_iter = 1000000; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + _Tp __term = (_Tp(1) + (__x + __y) / __k) + / ((_Tp(1) + __x / __k) * (_Tp(1) + __y / __k)); + __bet *= __term; + } + + return __bet; + } +# 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + inline _Tp + __beta(_Tp __x, _Tp __y) + { + if (__isnan(__x) || __isnan(__y)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __beta_lgamma(__x, __y); + } + } + + + + + + +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 1 3 +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + namespace __detail + { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rf(_Tp __x, _Tp __y, _Tp __z) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = _Tp(5) * __min; + + if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rf.") + ); + else if (__x + __y < __lolim || __x + __z < __lolim + || __y + __z < __lolim) + std::__throw_domain_error(("Argument too small in __ellint_rf")); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(1) / _Tp(24); + const _Tp __c2 = _Tp(1) / _Tp(10); + const _Tp __c3 = _Tp(3) / _Tp(44); + const _Tp __c4 = _Tp(1) / _Tp(14); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps, _Tp(1) / _Tp(6)); + _Tp __mu; + _Tp __xndev, __yndev, __zndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + __zn) / _Tp(3); + __xndev = 2 - (__mu + __xn) / __mu; + __yndev = 2 - (__mu + __yn) / __mu; + __zndev = 2 - (__mu + __zn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + if (__epsilon < __errtol) + break; + const _Tp __xnroot = std::sqrt(__xn); + const _Tp __ynroot = std::sqrt(__yn); + const _Tp __znroot = std::sqrt(__zn); + const _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + } + + const _Tp __e2 = __xndev * __yndev - __zndev * __zndev; + const _Tp __e3 = __xndev * __yndev * __zndev; + const _Tp __s = _Tp(1) + (__c1 * __e2 - __c2 - __c3 * __e3) * __e2 + + __c4 * __e3; + + return __s / std::sqrt(__mu); + } + } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_1_series(_Tp __k) + { + + const _Tp __kk = __k * __k; + + _Tp __term = __kk / _Tp(4); + _Tp __sum = _Tp(1) + __term; + + const unsigned int __max_iter = 1000; + for (unsigned int __i = 2; __i < __max_iter; ++__i) + { + __term *= (2 * __i - 1) * __kk / (2 * __i); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return __numeric_constants<_Tp>::__pi_2() * __sum; + } +# 191 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_1(_Tp __k) + { + + if (__isnan(__k)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) >= _Tp(1)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __ellint_rf(_Tp(0), _Tp(1) - __k * __k, _Tp(1)); + } +# 219 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_1(_Tp __k, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_1.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __s = std::sin(__phi_red); + const _Tp __c = std::cos(__phi_red); + + const _Tp __F = __s + * __ellint_rf(__c * __c, + _Tp(1) - __k * __k * __s * __s, _Tp(1)); + + if (__n == 0) + return __F; + else + return __F + _Tp(2) * __n * __comp_ellint_1(__k); + } + } +# 266 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_2_series(_Tp __k) + { + + const _Tp __kk = __k * __k; + + _Tp __term = __kk; + _Tp __sum = __term; + + const unsigned int __max_iter = 1000; + for (unsigned int __i = 2; __i < __max_iter; ++__i) + { + const _Tp __i2m = 2 * __i - 1; + const _Tp __i2 = 2 * __i; + __term *= __i2m * __i2m * __kk / (__i2 * __i2); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term / __i2m; + } + + return __numeric_constants<_Tp>::__pi_2() * (_Tp(1) - __sum); + } +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rd(_Tp __x, _Tp __y, _Tp __z) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); + const _Tp __max = std::numeric_limits<_Tp>::max(); + const _Tp __lolim = _Tp(2) / std::pow(__max, _Tp(2) / _Tp(3)); + + if (__x < _Tp(0) || __y < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rd.") + ); + else if (__x + __y < __lolim || __z < __lolim) + std::__throw_domain_error(("Argument too small " "in __ellint_rd.") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(3) / _Tp(14); + const _Tp __c2 = _Tp(1) / _Tp(6); + const _Tp __c3 = _Tp(9) / _Tp(22); + const _Tp __c4 = _Tp(3) / _Tp(26); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + _Tp __sigma = _Tp(0); + _Tp __power4 = _Tp(1); + + _Tp __mu; + _Tp __xndev, __yndev, __zndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + _Tp(3) * __zn) / _Tp(5); + __xndev = (__mu - __xn) / __mu; + __yndev = (__mu - __yn) / __mu; + __zndev = (__mu - __zn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + if (__epsilon < __errtol) + break; + _Tp __xnroot = std::sqrt(__xn); + _Tp __ynroot = std::sqrt(__yn); + _Tp __znroot = std::sqrt(__zn); + _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + __sigma += __power4 / (__znroot * (__zn + __lambda)); + __power4 *= __c0; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + } + + _Tp __ea = __xndev * __yndev; + _Tp __eb = __zndev * __zndev; + _Tp __ec = __ea - __eb; + _Tp __ed = __ea - _Tp(6) * __eb; + _Tp __ef = __ed + __ec + __ec; + _Tp __s1 = __ed * (-__c1 + __c3 * __ed + / _Tp(3) - _Tp(3) * __c4 * __zndev * __ef + / _Tp(2)); + _Tp __s2 = __zndev + * (__c2 * __ef + + __zndev * (-__c3 * __ec - __zndev * __c4 - __ea)); + + return _Tp(3) * __sigma + __power4 * (_Tp(1) + __s1 + __s2) + / (__mu * std::sqrt(__mu)); + } + } +# 399 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_2(_Tp __k) + { + + if (__isnan(__k)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) == 1) + return _Tp(1); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __comp_ellint_2.")); + else + { + const _Tp __kk = __k * __k; + + return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) + - __kk * __ellint_rd(_Tp(0), _Tp(1) - __kk, _Tp(1)) / _Tp(3); + } + } +# 433 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_2(_Tp __k, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_2.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __kk = __k * __k; + const _Tp __s = std::sin(__phi_red); + const _Tp __ss = __s * __s; + const _Tp __sss = __ss * __s; + const _Tp __c = std::cos(__phi_red); + const _Tp __cc = __c * __c; + + const _Tp __E = __s + * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + - __kk * __sss + * __ellint_rd(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + / _Tp(3); + + if (__n == 0) + return __E; + else + return __E + _Tp(2) * __n * __comp_ellint_2(__k); + } + } +# 492 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rc(_Tp __x, _Tp __y) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = _Tp(5) * __min; + + if (__x < _Tp(0) || __y < _Tp(0) || __x + __y < __lolim) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rc.") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(1) / _Tp(7); + const _Tp __c2 = _Tp(9) / _Tp(22); + const _Tp __c3 = _Tp(3) / _Tp(10); + const _Tp __c4 = _Tp(3) / _Tp(8); + + _Tp __xn = __x; + _Tp __yn = __y; + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(30), _Tp(1) / _Tp(6)); + _Tp __mu; + _Tp __sn; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + _Tp(2) * __yn) / _Tp(3); + __sn = (__yn + __mu) / __mu - _Tp(2); + if (std::abs(__sn) < __errtol) + break; + const _Tp __lambda = _Tp(2) * std::sqrt(__xn) * std::sqrt(__yn) + + __yn; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + } + + _Tp __s = __sn * __sn + * (__c3 + __sn*(__c1 + __sn * (__c4 + __sn * __c2))); + + return (_Tp(1) + __s) / std::sqrt(__mu); + } + } +# 561 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rj(_Tp __x, _Tp __y, _Tp __z, _Tp __p) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = std::pow(_Tp(5) * __min, _Tp(1)/_Tp(3)); + + if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rj.") + ); + else if (__x + __y < __lolim || __x + __z < __lolim + || __y + __z < __lolim || __p < __lolim) + std::__throw_domain_error(("Argument too small " "in __ellint_rj") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(3) / _Tp(14); + const _Tp __c2 = _Tp(1) / _Tp(3); + const _Tp __c3 = _Tp(3) / _Tp(22); + const _Tp __c4 = _Tp(3) / _Tp(26); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + _Tp __pn = __p; + _Tp __sigma = _Tp(0); + _Tp __power4 = _Tp(1); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); + + _Tp __mu; + _Tp __xndev, __yndev, __zndev, __pndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + __zn + _Tp(2) * __pn) / _Tp(5); + __xndev = (__mu - __xn) / __mu; + __yndev = (__mu - __yn) / __mu; + __zndev = (__mu - __zn) / __mu; + __pndev = (__mu - __pn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + __epsilon = std::max(__epsilon, std::abs(__pndev)); + if (__epsilon < __errtol) + break; + const _Tp __xnroot = std::sqrt(__xn); + const _Tp __ynroot = std::sqrt(__yn); + const _Tp __znroot = std::sqrt(__zn); + const _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + const _Tp __alpha1 = __pn * (__xnroot + __ynroot + __znroot) + + __xnroot * __ynroot * __znroot; + const _Tp __alpha2 = __alpha1 * __alpha1; + const _Tp __beta = __pn * (__pn + __lambda) + * (__pn + __lambda); + __sigma += __power4 * __ellint_rc(__alpha2, __beta); + __power4 *= __c0; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + __pn = __c0 * (__pn + __lambda); + } + + _Tp __ea = __xndev * (__yndev + __zndev) + __yndev * __zndev; + _Tp __eb = __xndev * __yndev * __zndev; + _Tp __ec = __pndev * __pndev; + _Tp __e2 = __ea - _Tp(3) * __ec; + _Tp __e3 = __eb + _Tp(2) * __pndev * (__ea - __ec); + _Tp __s1 = _Tp(1) + __e2 * (-__c1 + _Tp(3) * __c3 * __e2 / _Tp(4) + - _Tp(3) * __c4 * __e3 / _Tp(2)); + _Tp __s2 = __eb * (__c2 / _Tp(2) + + __pndev * (-__c3 - __c3 + __pndev * __c4)); + _Tp __s3 = __pndev * __ea * (__c2 - __pndev * __c3) + - __c2 * __pndev * __ec; + + return _Tp(3) * __sigma + __power4 * (__s1 + __s2 + __s3) + / (__mu * std::sqrt(__mu)); + } + } +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_3(_Tp __k, _Tp __nu) + { + + if (__isnan(__k) || __isnan(__nu)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__nu == _Tp(1)) + return std::numeric_limits<_Tp>::infinity(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __comp_ellint_3.")); + else + { + const _Tp __kk = __k * __k; + + return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) + + __nu + * __ellint_rj(_Tp(0), _Tp(1) - __kk, _Tp(1), _Tp(1) - __nu) + / _Tp(3); + } + } +# 701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_3(_Tp __k, _Tp __nu, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__nu) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_3.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __kk = __k * __k; + const _Tp __s = std::sin(__phi_red); + const _Tp __ss = __s * __s; + const _Tp __sss = __ss * __s; + const _Tp __c = std::cos(__phi_red); + const _Tp __cc = __c * __c; + + const _Tp __Pi = __s + * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + + __nu * __sss + * __ellint_rj(__cc, _Tp(1) - __kk * __ss, _Tp(1), + _Tp(1) - __nu * __ss) / _Tp(3); + + if (__n == 0) + return __Pi; + else + return __Pi + _Tp(2) * __n * __comp_ellint_3(__k, __nu); + } + } + } + + + + + +} +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 1 3 +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + namespace __detail + { + template _Tp __expint_E1(_Tp); +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1_series(_Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + _Tp __term = _Tp(1); + _Tp __esum = _Tp(0); + _Tp __osum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= - __x / __i; + if (std::abs(__term) < __eps) + break; + if (__term >= _Tp(0)) + __esum += __term / __i; + else + __osum += __term / __i; + } + + return - __esum - __osum + - __numeric_constants<_Tp>::__gamma_e() - std::log(__x); + } +# 118 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1_asymp(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __esum = _Tp(1); + _Tp __osum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + _Tp __prev = __term; + __term *= - __i / __x; + if (std::abs(__term) > std::abs(__prev)) + break; + if (__term >= _Tp(0)) + __esum += __term; + else + __osum += __term; + } + + return std::exp(- __x) * (__esum + __osum) / __x; + } +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_series(unsigned int __n, _Tp __x) + { + const unsigned int __max_iter = 1000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const int __nm1 = __n - 1; + _Tp __ans = (__nm1 != 0 + ? _Tp(1) / __nm1 : -std::log(__x) + - __numeric_constants<_Tp>::__gamma_e()); + _Tp __fact = _Tp(1); + for (int __i = 1; __i <= __max_iter; ++__i) + { + __fact *= -__x / _Tp(__i); + _Tp __del; + if ( __i != __nm1 ) + __del = -__fact / _Tp(__i - __nm1); + else + { + _Tp __psi = -__numeric_constants<_Tp>::gamma_e(); + for (int __ii = 1; __ii <= __nm1; ++__ii) + __psi += _Tp(1) / _Tp(__ii); + __del = __fact * (__psi - std::log(__x)); + } + __ans += __del; + if (std::abs(__del) < __eps * std::abs(__ans)) + return __ans; + } + std::__throw_runtime_error(("Series summation failed " "in __expint_En_series.") + ); + } +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_cont_frac(unsigned int __n, _Tp __x) + { + const unsigned int __max_iter = 1000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __fp_min = std::numeric_limits<_Tp>::min(); + const int __nm1 = __n - 1; + _Tp __b = __x + _Tp(__n); + _Tp __c = _Tp(1) / __fp_min; + _Tp __d = _Tp(1) / __b; + _Tp __h = __d; + for ( unsigned int __i = 1; __i <= __max_iter; ++__i ) + { + _Tp __a = -_Tp(__i * (__nm1 + __i)); + __b += _Tp(2); + __d = _Tp(1) / (__a * __d + __b); + __c = __b + __a / __c; + const _Tp __del = __c * __d; + __h *= __del; + if (std::abs(__del - _Tp(1)) < __eps) + { + const _Tp __ans = __h * std::exp(-__x); + return __ans; + } + } + std::__throw_runtime_error(("Continued fraction failed " "in __expint_En_cont_frac.") + ); + } +# 246 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_recursion(unsigned int __n, _Tp __x) + { + _Tp __En; + _Tp __E1 = __expint_E1(__x); + if (__x < _Tp(__n)) + { + + __En = __E1; + for (unsigned int __j = 2; __j < __n; ++__j) + __En = (std::exp(-__x) - __x * __En) / _Tp(__j - 1); + } + else + { + + __En = _Tp(1); + const int __N = __n + 20; + _Tp __save = _Tp(0); + for (int __j = __N; __j > 0; --__j) + { + __En = (std::exp(-__x) - __j * __En) / __x; + if (__j == __n) + __save = __En; + } + _Tp __norm = __En / __E1; + __En /= __norm; + } + + return __En; + } +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei_series(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= __x / __i; + __sum += __term / __i; + if (__term < std::numeric_limits<_Tp>::epsilon() * __sum) + break; + } + + return __numeric_constants<_Tp>::__gamma_e() + __sum + std::log(__x); + } +# 321 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei_asymp(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + _Tp __prev = __term; + __term *= __i / __x; + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + if (__term >= __prev) + break; + __sum += __term; + } + + return std::exp(__x) * __sum / __x; + } +# 354 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei(_Tp __x) + { + if (__x < _Tp(0)) + return -__expint_E1(-__x); + else if (__x < -std::log(std::numeric_limits<_Tp>::epsilon())) + return __expint_Ei_series(__x); + else + return __expint_Ei_asymp(__x); + } +# 378 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1(_Tp __x) + { + if (__x < _Tp(0)) + return -__expint_Ei(-__x); + else if (__x < _Tp(1)) + return __expint_E1_series(__x); + else if (__x < _Tp(100)) + return __expint_En_cont_frac(1, __x); + else + return __expint_E1_asymp(__x); + } +# 408 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_asymp(unsigned int __n, _Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + for (unsigned int __i = 1; __i <= __n; ++__i) + { + _Tp __prev = __term; + __term *= -(__n - __i + 1) / __x; + if (std::abs(__term) > std::abs(__prev)) + break; + __sum += __term; + } + + return std::exp(-__x) * __sum / __x; + } +# 442 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_large_n(unsigned int __n, _Tp __x) + { + const _Tp __xpn = __x + __n; + const _Tp __xpn2 = __xpn * __xpn; + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + for (unsigned int __i = 1; __i <= __n; ++__i) + { + _Tp __prev = __term; + __term *= (__n - 2 * (__i - 1) * __x) / __xpn2; + if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return std::exp(-__x) * __sum / __xpn; + } +# 476 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint(unsigned int __n, _Tp __x) + { + + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__n <= 1 && __x == _Tp(0)) + return std::numeric_limits<_Tp>::infinity(); + else + { + _Tp __E0 = std::exp(__x) / __x; + if (__n == 0) + return __E0; + + _Tp __E1 = __expint_E1(__x); + if (__n == 1) + return __E1; + + if (__x == _Tp(0)) + return _Tp(1) / static_cast<_Tp>(__n - 1); + + _Tp __En = __expint_En_recursion(__n, __x); + + return __En; + } + } +# 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + inline _Tp + __expint(_Tp __x) + { + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __expint_Ei(__x); + } + } + + + + + +} +# 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 1 3 +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + namespace __detail + { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg_series(_Tp __a, _Tp __c, _Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + _Tp __term = _Tp(1); + _Tp __Fac = _Tp(1); + const unsigned int __max_iter = 100000; + unsigned int __i; + for (__i = 0; __i < __max_iter; ++__i) + { + __term *= (__a + _Tp(__i)) * __x + / ((__c + _Tp(__i)) * _Tp(1 + __i)); + if (std::abs(__term) < __eps) + { + break; + } + __Fac += __term; + } + if (__i == __max_iter) + std::__throw_runtime_error(("Series failed to converge " "in __conf_hyperg_series.") + ); + + return __Fac; + } +# 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg_luke(_Tp __a, _Tp __c, _Tp __xin) + { + const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); + const int __nmax = 20000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __x = -__xin; + const _Tp __x3 = __x * __x * __x; + const _Tp __t0 = __a / __c; + const _Tp __t1 = (__a + _Tp(1)) / (_Tp(2) * __c); + const _Tp __t2 = (__a + _Tp(2)) / (_Tp(2) * (__c + _Tp(1))); + _Tp __F = _Tp(1); + _Tp __prec; + + _Tp __Bnm3 = _Tp(1); + _Tp __Bnm2 = _Tp(1) + __t1 * __x; + _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); + + _Tp __Anm3 = _Tp(1); + _Tp __Anm2 = __Bnm2 - __t0 * __x; + _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x + + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; + + int __n = 3; + while(1) + { + _Tp __npam1 = _Tp(__n - 1) + __a; + _Tp __npcm1 = _Tp(__n - 1) + __c; + _Tp __npam2 = _Tp(__n - 2) + __a; + _Tp __npcm2 = _Tp(__n - 2) + __c; + _Tp __tnm1 = _Tp(2 * __n - 1); + _Tp __tnm3 = _Tp(2 * __n - 3); + _Tp __tnm5 = _Tp(2 * __n - 5); + _Tp __F1 = (_Tp(__n - 2) - __a) / (_Tp(2) * __tnm3 * __npcm1); + _Tp __F2 = (_Tp(__n) + __a) * __npam1 + / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); + _Tp __F3 = -__npam2 * __npam1 * (_Tp(__n - 2) - __a) + / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 + * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); + _Tp __E = -__npam1 * (_Tp(__n - 1) - __c) + / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); + + _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 + + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; + _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 + + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; + _Tp __r = __An / __Bn; + + __prec = std::abs((__F - __r) / __F); + __F = __r; + + if (__prec < __eps || __n > __nmax) + break; + + if (std::abs(__An) > __big || std::abs(__Bn) > __big) + { + __An /= __big; + __Bn /= __big; + __Anm1 /= __big; + __Bnm1 /= __big; + __Anm2 /= __big; + __Bnm2 /= __big; + __Anm3 /= __big; + __Bnm3 /= __big; + } + else if (std::abs(__An) < _Tp(1) / __big + || std::abs(__Bn) < _Tp(1) / __big) + { + __An *= __big; + __Bn *= __big; + __Anm1 *= __big; + __Bnm1 *= __big; + __Anm2 *= __big; + __Bnm2 *= __big; + __Anm3 *= __big; + __Bnm3 *= __big; + } + + ++__n; + __Bnm3 = __Bnm2; + __Bnm2 = __Bnm1; + __Bnm1 = __Bn; + __Anm3 = __Anm2; + __Anm2 = __Anm1; + __Anm1 = __An; + } + + if (__n >= __nmax) + std::__throw_runtime_error(("Iteration failed to converge " "in __conf_hyperg_luke.") + ); + + return __F; + } +# 227 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg(_Tp __a, _Tp __c, _Tp __x) + { + + const _Tp __c_nint = ::std::nearbyint(__c); + + + + if (__isnan(__a) || __isnan(__c) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__c_nint == __c && __c_nint <= 0) + return std::numeric_limits<_Tp>::infinity(); + else if (__a == _Tp(0)) + return _Tp(1); + else if (__c == __a) + return std::exp(__x); + else if (__x < _Tp(0)) + return __conf_hyperg_luke(__a, __c, __x); + else + return __conf_hyperg_series(__a, __c, __x); + } +# 271 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg_series(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + _Tp __term = _Tp(1); + _Tp __Fabc = _Tp(1); + const unsigned int __max_iter = 100000; + unsigned int __i; + for (__i = 0; __i < __max_iter; ++__i) + { + __term *= (__a + _Tp(__i)) * (__b + _Tp(__i)) * __x + / ((__c + _Tp(__i)) * _Tp(1 + __i)); + if (std::abs(__term) < __eps) + { + break; + } + __Fabc += __term; + } + if (__i == __max_iter) + std::__throw_runtime_error(("Series failed to converge " "in __hyperg_series.") + ); + + return __Fabc; + } + + + + + + + + template + _Tp + __hyperg_luke(_Tp __a, _Tp __b, _Tp __c, _Tp __xin) + { + const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); + const int __nmax = 20000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __x = -__xin; + const _Tp __x3 = __x * __x * __x; + const _Tp __t0 = __a * __b / __c; + const _Tp __t1 = (__a + _Tp(1)) * (__b + _Tp(1)) / (_Tp(2) * __c); + const _Tp __t2 = (__a + _Tp(2)) * (__b + _Tp(2)) + / (_Tp(2) * (__c + _Tp(1))); + + _Tp __F = _Tp(1); + + _Tp __Bnm3 = _Tp(1); + _Tp __Bnm2 = _Tp(1) + __t1 * __x; + _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); + + _Tp __Anm3 = _Tp(1); + _Tp __Anm2 = __Bnm2 - __t0 * __x; + _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x + + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; + + int __n = 3; + while (1) + { + const _Tp __npam1 = _Tp(__n - 1) + __a; + const _Tp __npbm1 = _Tp(__n - 1) + __b; + const _Tp __npcm1 = _Tp(__n - 1) + __c; + const _Tp __npam2 = _Tp(__n - 2) + __a; + const _Tp __npbm2 = _Tp(__n - 2) + __b; + const _Tp __npcm2 = _Tp(__n - 2) + __c; + const _Tp __tnm1 = _Tp(2 * __n - 1); + const _Tp __tnm3 = _Tp(2 * __n - 3); + const _Tp __tnm5 = _Tp(2 * __n - 5); + const _Tp __n2 = __n * __n; + const _Tp __F1 = (_Tp(3) * __n2 + (__a + __b - _Tp(6)) * __n + + _Tp(2) - __a * __b - _Tp(2) * (__a + __b)) + / (_Tp(2) * __tnm3 * __npcm1); + const _Tp __F2 = -(_Tp(3) * __n2 - (__a + __b + _Tp(6)) * __n + + _Tp(2) - __a * __b) * __npam1 * __npbm1 + / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); + const _Tp __F3 = (__npam2 * __npam1 * __npbm2 * __npbm1 + * (_Tp(__n - 2) - __a) * (_Tp(__n - 2) - __b)) + / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 + * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); + const _Tp __E = -__npam1 * __npbm1 * (_Tp(__n - 1) - __c) + / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); + + _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 + + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; + _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 + + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; + const _Tp __r = __An / __Bn; + + const _Tp __prec = std::abs((__F - __r) / __F); + __F = __r; + + if (__prec < __eps || __n > __nmax) + break; + + if (std::abs(__An) > __big || std::abs(__Bn) > __big) + { + __An /= __big; + __Bn /= __big; + __Anm1 /= __big; + __Bnm1 /= __big; + __Anm2 /= __big; + __Bnm2 /= __big; + __Anm3 /= __big; + __Bnm3 /= __big; + } + else if (std::abs(__An) < _Tp(1) / __big + || std::abs(__Bn) < _Tp(1) / __big) + { + __An *= __big; + __Bn *= __big; + __Anm1 *= __big; + __Bnm1 *= __big; + __Anm2 *= __big; + __Bnm2 *= __big; + __Anm3 *= __big; + __Bnm3 *= __big; + } + + ++__n; + __Bnm3 = __Bnm2; + __Bnm2 = __Bnm1; + __Bnm1 = __Bn; + __Anm3 = __Anm2; + __Anm2 = __Anm1; + __Anm1 = __An; + } + + if (__n >= __nmax) + std::__throw_runtime_error(("Iteration failed to converge " "in __hyperg_luke.") + ); + + return __F; + } +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg_reflect(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + const _Tp __d = __c - __a - __b; + const int __intd = std::floor(__d + _Tp(0.5L)); + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __toler = _Tp(1000) * __eps; + const _Tp __log_max = std::log(std::numeric_limits<_Tp>::max()); + const bool __d_integer = (std::abs(__d - __intd) < __toler); + + if (__d_integer) + { + const _Tp __ln_omx = std::log(_Tp(1) - __x); + const _Tp __ad = std::abs(__d); + _Tp __F1, __F2; + + _Tp __d1, __d2; + if (__d >= _Tp(0)) + { + __d1 = __d; + __d2 = _Tp(0); + } + else + { + __d1 = _Tp(0); + __d2 = __d; + } + + const _Tp __lng_c = __log_gamma(__c); + + + if (__ad < __eps) + { + + __F1 = _Tp(0); + } + else + { + + bool __ok_d1 = true; + _Tp __lng_ad, __lng_ad1, __lng_bd1; + try + { + __lng_ad = __log_gamma(__ad); + __lng_ad1 = __log_gamma(__a + __d1); + __lng_bd1 = __log_gamma(__b + __d1); + } + catch(...) + { + __ok_d1 = false; + } + + if (__ok_d1) + { + + + + _Tp __sum1 = _Tp(1); + _Tp __term = _Tp(1); + _Tp __ln_pre1 = __lng_ad + __lng_c + __d2 * __ln_omx + - __lng_ad1 - __lng_bd1; + + + + for (int __i = 1; __i < __ad; ++__i) + { + const int __j = __i - 1; + __term *= (__a + __d2 + __j) * (__b + __d2 + __j) + / (_Tp(1) + __d2 + __j) / __i * (_Tp(1) - __x); + __sum1 += __term; + } + + if (__ln_pre1 > __log_max) + std::__throw_runtime_error(("Overflow of gamma functions" " in __hyperg_luke.") + ); + else + __F1 = std::exp(__ln_pre1) * __sum1; + } + else + { + + + __F1 = _Tp(0); + } + } + + + bool __ok_d2 = true; + _Tp __lng_ad2, __lng_bd2; + try + { + __lng_ad2 = __log_gamma(__a + __d2); + __lng_bd2 = __log_gamma(__b + __d2); + } + catch(...) + { + __ok_d2 = false; + } + + if (__ok_d2) + { + + + const int __maxiter = 2000; + const _Tp __psi_1 = -__numeric_constants<_Tp>::__gamma_e(); + const _Tp __psi_1pd = __psi(_Tp(1) + __ad); + const _Tp __psi_apd1 = __psi(__a + __d1); + const _Tp __psi_bpd1 = __psi(__b + __d1); + + _Tp __psi_term = __psi_1 + __psi_1pd - __psi_apd1 + - __psi_bpd1 - __ln_omx; + _Tp __fact = _Tp(1); + _Tp __sum2 = __psi_term; + _Tp __ln_pre2 = __lng_c + __d1 * __ln_omx + - __lng_ad2 - __lng_bd2; + + + int __j; + for (__j = 1; __j < __maxiter; ++__j) + { + + + const _Tp __term1 = _Tp(1) / _Tp(__j) + + _Tp(1) / (__ad + __j); + const _Tp __term2 = _Tp(1) / (__a + __d1 + _Tp(__j - 1)) + + _Tp(1) / (__b + __d1 + _Tp(__j - 1)); + __psi_term += __term1 - __term2; + __fact *= (__a + __d1 + _Tp(__j - 1)) + * (__b + __d1 + _Tp(__j - 1)) + / ((__ad + __j) * __j) * (_Tp(1) - __x); + const _Tp __delta = __fact * __psi_term; + __sum2 += __delta; + if (std::abs(__delta) < __eps * std::abs(__sum2)) + break; + } + if (__j == __maxiter) + std::__throw_runtime_error(("Sum F2 failed to converge " "in __hyperg_reflect") + ); + + if (__sum2 == _Tp(0)) + __F2 = _Tp(0); + else + __F2 = std::exp(__ln_pre2) * __sum2; + } + else + { + + + __F2 = _Tp(0); + } + + const _Tp __sgn_2 = (__intd % 2 == 1 ? -_Tp(1) : _Tp(1)); + const _Tp __F = __F1 + __sgn_2 * __F2; + + return __F; + } + else + { + + + + + bool __ok1 = true; + _Tp __sgn_g1ca = _Tp(0), __ln_g1ca = _Tp(0); + _Tp __sgn_g1cb = _Tp(0), __ln_g1cb = _Tp(0); + try + { + __sgn_g1ca = __log_gamma_sign(__c - __a); + __ln_g1ca = __log_gamma(__c - __a); + __sgn_g1cb = __log_gamma_sign(__c - __b); + __ln_g1cb = __log_gamma(__c - __b); + } + catch(...) + { + __ok1 = false; + } + + bool __ok2 = true; + _Tp __sgn_g2a = _Tp(0), __ln_g2a = _Tp(0); + _Tp __sgn_g2b = _Tp(0), __ln_g2b = _Tp(0); + try + { + __sgn_g2a = __log_gamma_sign(__a); + __ln_g2a = __log_gamma(__a); + __sgn_g2b = __log_gamma_sign(__b); + __ln_g2b = __log_gamma(__b); + } + catch(...) + { + __ok2 = false; + } + + const _Tp __sgn_gc = __log_gamma_sign(__c); + const _Tp __ln_gc = __log_gamma(__c); + const _Tp __sgn_gd = __log_gamma_sign(__d); + const _Tp __ln_gd = __log_gamma(__d); + const _Tp __sgn_gmd = __log_gamma_sign(-__d); + const _Tp __ln_gmd = __log_gamma(-__d); + + const _Tp __sgn1 = __sgn_gc * __sgn_gd * __sgn_g1ca * __sgn_g1cb; + const _Tp __sgn2 = __sgn_gc * __sgn_gmd * __sgn_g2a * __sgn_g2b; + + _Tp __pre1, __pre2; + if (__ok1 && __ok2) + { + _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; + _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b + + __d * std::log(_Tp(1) - __x); + if (__ln_pre1 < __log_max && __ln_pre2 < __log_max) + { + __pre1 = std::exp(__ln_pre1); + __pre2 = std::exp(__ln_pre2); + __pre1 *= __sgn1; + __pre2 *= __sgn2; + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else if (__ok1 && !__ok2) + { + _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; + if (__ln_pre1 < __log_max) + { + __pre1 = std::exp(__ln_pre1); + __pre1 *= __sgn1; + __pre2 = _Tp(0); + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else if (!__ok1 && __ok2) + { + _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b + + __d * std::log(_Tp(1) - __x); + if (__ln_pre2 < __log_max) + { + __pre1 = _Tp(0); + __pre2 = std::exp(__ln_pre2); + __pre2 *= __sgn2; + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else + { + __pre1 = _Tp(0); + __pre2 = _Tp(0); + std::__throw_runtime_error(("Underflow of gamma functions " "in __hyperg_reflect") + ); + } + + const _Tp __F1 = __hyperg_series(__a, __b, _Tp(1) - __d, + _Tp(1) - __x); + const _Tp __F2 = __hyperg_series(__c - __a, __c - __b, _Tp(1) + __d, + _Tp(1) - __x); + + const _Tp __F = __pre1 * __F1 + __pre2 * __F2; + + return __F; + } + } +# 728 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + + const _Tp __a_nint = ::std::nearbyint(__a); + const _Tp __b_nint = ::std::nearbyint(__b); + const _Tp __c_nint = ::std::nearbyint(__c); + + + + + + const _Tp __toler = _Tp(1000) * std::numeric_limits<_Tp>::epsilon(); + if (std::abs(__x) >= _Tp(1)) + std::__throw_domain_error(("Argument outside unit circle " "in __hyperg.") + ); + else if (__isnan(__a) || __isnan(__b) + || __isnan(__c) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__c_nint == __c && __c_nint <= _Tp(0)) + return std::numeric_limits<_Tp>::infinity(); + else if (std::abs(__c - __b) < __toler || std::abs(__c - __a) < __toler) + return std::pow(_Tp(1) - __x, __c - __a - __b); + else if (__a >= _Tp(0) && __b >= _Tp(0) && __c >= _Tp(0) + && __x >= _Tp(0) && __x < _Tp(0.995L)) + return __hyperg_series(__a, __b, __c, __x); + else if (std::abs(__a) < _Tp(10) && std::abs(__b) < _Tp(10)) + { + + + if (__a < _Tp(0) && std::abs(__a - __a_nint) < __toler) + return __hyperg_series(__a_nint, __b, __c, __x); + else if (__b < _Tp(0) && std::abs(__b - __b_nint) < __toler) + return __hyperg_series(__a, __b_nint, __c, __x); + else if (__x < -_Tp(0.25L)) + return __hyperg_luke(__a, __b, __c, __x); + else if (__x < _Tp(0.5L)) + return __hyperg_series(__a, __b, __c, __x); + else + if (std::abs(__c) > _Tp(10)) + return __hyperg_series(__a, __b, __c, __x); + else + return __hyperg_reflect(__a, __b, __c, __x); + } + else + return __hyperg_luke(__a, __b, __c, __x); + } + } + + + + + + +} +# 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + namespace __detail + { +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __poly_legendre_p(unsigned int __l, _Tp __x) + { + + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == +_Tp(1)) + return +_Tp(1); + else if (__x == -_Tp(1)) + return (__l % 2 == 1 ? -_Tp(1) : +_Tp(1)); + else + { + _Tp __p_lm2 = _Tp(1); + if (__l == 0) + return __p_lm2; + + _Tp __p_lm1 = __x; + if (__l == 1) + return __p_lm1; + + _Tp __p_l = 0; + for (unsigned int __ll = 2; __ll <= __l; ++__ll) + { + + + __p_l = _Tp(2) * __x * __p_lm1 - __p_lm2 + - (__x * __p_lm1 - __p_lm2) / _Tp(__ll); + __p_lm2 = __p_lm1; + __p_lm1 = __p_l; + } + + return __p_l; + } + } +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __assoc_legendre_p(unsigned int __l, unsigned int __m, _Tp __x, + _Tp __phase = _Tp(+1)) + { + + if (__m > __l) + return _Tp(0); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__m == 0) + return __poly_legendre_p(__l, __x); + else + { + _Tp __p_mm = _Tp(1); + if (__m > 0) + { + + + _Tp __root = std::sqrt(_Tp(1) - __x) * std::sqrt(_Tp(1) + __x); + _Tp __fact = _Tp(1); + for (unsigned int __i = 1; __i <= __m; ++__i) + { + __p_mm *= __phase * __fact * __root; + __fact += _Tp(2); + } + } + if (__l == __m) + return __p_mm; + + _Tp __p_mp1m = _Tp(2 * __m + 1) * __x * __p_mm; + if (__l == __m + 1) + return __p_mp1m; + + _Tp __p_lm2m = __p_mm; + _Tp __P_lm1m = __p_mp1m; + _Tp __p_lm = _Tp(0); + for (unsigned int __j = __m + 2; __j <= __l; ++__j) + { + __p_lm = (_Tp(2 * __j - 1) * __x * __P_lm1m + - _Tp(__j + __m - 1) * __p_lm2m) / _Tp(__j - __m); + __p_lm2m = __P_lm1m; + __P_lm1m = __p_lm; + } + + return __p_lm; + } + } +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) + { + if (__isnan(__theta)) + return std::numeric_limits<_Tp>::quiet_NaN(); + + const _Tp __x = std::cos(__theta); + + if (__m > __l) + return _Tp(0); + else if (__m == 0) + { + _Tp __P = __poly_legendre_p(__l, __x); + _Tp __fact = std::sqrt(_Tp(2 * __l + 1) + / (_Tp(4) * __numeric_constants<_Tp>::__pi())); + __P *= __fact; + return __P; + } + else if (__x == _Tp(1) || __x == -_Tp(1)) + { + + return _Tp(0); + } + else + { + + + + + + const _Tp __sgn = ( __m % 2 == 1 ? -_Tp(1) : _Tp(1)); + const _Tp __y_mp1m_factor = __x * std::sqrt(_Tp(2 * __m + 3)); + + const _Tp __lncirc = ::std::log1p(-__x * __x); + + + + + + const _Tp __lnpoch = ::std::lgamma(_Tp(__m + _Tp(0.5L))) + - ::std::lgamma(_Tp(__m)); + + + + + const _Tp __lnpre_val = + -_Tp(0.25L) * __numeric_constants<_Tp>::__lnpi() + + _Tp(0.5L) * (__lnpoch + __m * __lncirc); + const _Tp __sr = std::sqrt((_Tp(2) + _Tp(1) / __m) + / (_Tp(4) * __numeric_constants<_Tp>::__pi())); + _Tp __y_mm = __sgn * __sr * std::exp(__lnpre_val); + _Tp __y_mp1m = __y_mp1m_factor * __y_mm; + + if (__l == __m) + return __y_mm; + else if (__l == __m + 1) + return __y_mp1m; + else + { + _Tp __y_lm = _Tp(0); + + + for (unsigned int __ll = __m + 2; __ll <= __l; ++__ll) + { + const _Tp __rat1 = _Tp(__ll - __m) / _Tp(__ll + __m); + const _Tp __rat2 = _Tp(__ll - __m - 1) / _Tp(__ll + __m - 1); + const _Tp __fact1 = std::sqrt(__rat1 * _Tp(2 * __ll + 1) + * _Tp(2 * __ll - 1)); + const _Tp __fact2 = std::sqrt(__rat1 * __rat2 * _Tp(2 * __ll + 1) + / _Tp(2 * __ll - 3)); + __y_lm = (__x * __y_mp1m * __fact1 + - (__ll + __m - 1) * __y_mm * __fact2) / _Tp(__ll - __m); + __y_mm = __y_mp1m; + __y_mp1m = __y_lm; + } + + return __y_lm; + } + } + } + } + + + + + + +} +# 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 1 3 +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + namespace __detail + { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __bessel_ik(_Tp __nu, _Tp __x, + _Tp & __Inu, _Tp & __Knu, _Tp & __Ipnu, _Tp & __Kpnu) + { + if (__x == _Tp(0)) + { + if (__nu == _Tp(0)) + { + __Inu = _Tp(1); + __Ipnu = _Tp(0); + } + else if (__nu == _Tp(1)) + { + __Inu = _Tp(0); + __Ipnu = _Tp(0.5L); + } + else + { + __Inu = _Tp(0); + __Ipnu = _Tp(0); + } + __Knu = std::numeric_limits<_Tp>::infinity(); + __Kpnu = -std::numeric_limits<_Tp>::infinity(); + return; + } + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __fp_min = _Tp(10) * std::numeric_limits<_Tp>::epsilon(); + const int __max_iter = 15000; + const _Tp __x_min = _Tp(2); + + const int __nl = static_cast(__nu + _Tp(0.5L)); + + const _Tp __mu = __nu - __nl; + const _Tp __mu2 = __mu * __mu; + const _Tp __xi = _Tp(1) / __x; + const _Tp __xi2 = _Tp(2) * __xi; + _Tp __h = __nu * __xi; + if ( __h < __fp_min ) + __h = __fp_min; + _Tp __b = __xi2 * __nu; + _Tp __d = _Tp(0); + _Tp __c = __h; + int __i; + for ( __i = 1; __i <= __max_iter; ++__i ) + { + __b += __xi2; + __d = _Tp(1) / (__b + __d); + __c = __b + _Tp(1) / __c; + const _Tp __del = __c * __d; + __h *= __del; + if (std::abs(__del - _Tp(1)) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Argument x too large " "in __bessel_ik; " "try asymptotic expansion.") + + ); + _Tp __Inul = __fp_min; + _Tp __Ipnul = __h * __Inul; + _Tp __Inul1 = __Inul; + _Tp __Ipnu1 = __Ipnul; + _Tp __fact = __nu * __xi; + for (int __l = __nl; __l >= 1; --__l) + { + const _Tp __Inutemp = __fact * __Inul + __Ipnul; + __fact -= __xi; + __Ipnul = __fact * __Inutemp + __Inul; + __Inul = __Inutemp; + } + _Tp __f = __Ipnul / __Inul; + _Tp __Kmu, __Knu1; + if (__x < __x_min) + { + const _Tp __x2 = __x / _Tp(2); + const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; + const _Tp __fact = (std::abs(__pimu) < __eps + ? _Tp(1) : __pimu / std::sin(__pimu)); + _Tp __d = -std::log(__x2); + _Tp __e = __mu * __d; + const _Tp __fact2 = (std::abs(__e) < __eps + ? _Tp(1) : std::sinh(__e) / __e); + _Tp __gam1, __gam2, __gampl, __gammi; + __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); + _Tp __ff = __fact + * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); + _Tp __sum = __ff; + __e = std::exp(__e); + _Tp __p = __e / (_Tp(2) * __gampl); + _Tp __q = _Tp(1) / (_Tp(2) * __e * __gammi); + _Tp __c = _Tp(1); + __d = __x2 * __x2; + _Tp __sum1 = __p; + int __i; + for (__i = 1; __i <= __max_iter; ++__i) + { + __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); + __c *= __d / __i; + __p /= __i - __mu; + __q /= __i + __mu; + const _Tp __del = __c * __ff; + __sum += __del; + const _Tp __del1 = __c * (__p - __i * __ff); + __sum1 += __del1; + if (std::abs(__del) < __eps * std::abs(__sum)) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Bessel k series failed to converge " "in __bessel_ik.") + ); + __Kmu = __sum; + __Knu1 = __sum1 * __xi2; + } + else + { + _Tp __b = _Tp(2) * (_Tp(1) + __x); + _Tp __d = _Tp(1) / __b; + _Tp __delh = __d; + _Tp __h = __delh; + _Tp __q1 = _Tp(0); + _Tp __q2 = _Tp(1); + _Tp __a1 = _Tp(0.25L) - __mu2; + _Tp __q = __c = __a1; + _Tp __a = -__a1; + _Tp __s = _Tp(1) + __q * __delh; + int __i; + for (__i = 2; __i <= __max_iter; ++__i) + { + __a -= 2 * (__i - 1); + __c = -__a * __c / __i; + const _Tp __qnew = (__q1 - __b * __q2) / __a; + __q1 = __q2; + __q2 = __qnew; + __q += __c * __qnew; + __b += _Tp(2); + __d = _Tp(1) / (__b + __a * __d); + __delh = (__b * __d - _Tp(1)) * __delh; + __h += __delh; + const _Tp __dels = __q * __delh; + __s += __dels; + if ( std::abs(__dels / __s) < __eps ) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Steed's method failed " "in __bessel_ik.") + ); + __h = __a1 * __h; + __Kmu = std::sqrt(__numeric_constants<_Tp>::__pi() / (_Tp(2) * __x)) + * std::exp(-__x) / __s; + __Knu1 = __Kmu * (__mu + __x + _Tp(0.5L) - __h) * __xi; + } + + _Tp __Kpmu = __mu * __xi * __Kmu - __Knu1; + _Tp __Inumu = __xi / (__f * __Kmu - __Kpmu); + __Inu = __Inumu * __Inul1 / __Inul; + __Ipnu = __Inumu * __Ipnu1 / __Inul; + for ( __i = 1; __i <= __nl; ++__i ) + { + const _Tp __Knutemp = (__mu + __i) * __xi2 * __Knu1 + __Kmu; + __Kmu = __Knu1; + __Knu1 = __Knutemp; + } + __Knu = __Kmu; + __Kpnu = __nu * __xi * __Kmu - __Knu1; + + return; + } +# 267 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + _Tp + __cyl_bessel_i(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_i.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) + return __cyl_bessel_ij_series(__nu, __x, +_Tp(1), 200); + else + { + _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + return __I_nu; + } + } +# 303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + _Tp + __cyl_bessel_k(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_k.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + { + _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + return __K_nu; + } + } +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __sph_bessel_ik(unsigned int __n, _Tp __x, + _Tp & __i_n, _Tp & __k_n, _Tp & __ip_n, _Tp & __kp_n) + { + const _Tp __nu = _Tp(__n) + _Tp(0.5L); + + _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + + const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() + / std::sqrt(__x); + + __i_n = __factor * __I_nu; + __k_n = __factor * __K_nu; + __ip_n = __factor * __Ip_nu - __i_n / (_Tp(2) * __x); + __kp_n = __factor * __Kp_nu - __k_n / (_Tp(2) * __x); + + return; + } +# 373 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __airy(_Tp __x, _Tp & __Ai, _Tp & __Bi, _Tp & __Aip, _Tp & __Bip) + { + const _Tp __absx = std::abs(__x); + const _Tp __rootx = std::sqrt(__absx); + const _Tp __z = _Tp(2) * __absx * __rootx / _Tp(3); + const _Tp _S_inf = std::numeric_limits<_Tp>::infinity(); + + if (__isnan(__x)) + __Bip = __Aip = __Bi = __Ai = std::numeric_limits<_Tp>::quiet_NaN(); + else if (__z == _S_inf) + { + __Aip = __Ai = _Tp(0); + __Bip = __Bi = _S_inf; + } + else if (__z == -_S_inf) + __Bip = __Aip = __Bi = __Ai = _Tp(0); + else if (__x > _Tp(0)) + { + _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; + + __bessel_ik(_Tp(1) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + __Ai = __rootx * __K_nu + / (__numeric_constants<_Tp>::__sqrt3() + * __numeric_constants<_Tp>::__pi()); + __Bi = __rootx * (__K_nu / __numeric_constants<_Tp>::__pi() + + _Tp(2) * __I_nu / __numeric_constants<_Tp>::__sqrt3()); + + __bessel_ik(_Tp(2) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + __Aip = -__x * __K_nu + / (__numeric_constants<_Tp>::__sqrt3() + * __numeric_constants<_Tp>::__pi()); + __Bip = __x * (__K_nu / __numeric_constants<_Tp>::__pi() + + _Tp(2) * __I_nu + / __numeric_constants<_Tp>::__sqrt3()); + } + else if (__x < _Tp(0)) + { + _Tp __J_nu, __Jp_nu, __N_nu, __Np_nu; + + __bessel_jn(_Tp(1) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); + __Ai = __rootx * (__J_nu + - __N_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); + __Bi = -__rootx * (__N_nu + + __J_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); + + __bessel_jn(_Tp(2) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); + __Aip = __absx * (__N_nu / __numeric_constants<_Tp>::__sqrt3() + + __J_nu) / _Tp(2); + __Bip = __absx * (__J_nu / __numeric_constants<_Tp>::__sqrt3() + - __N_nu) / _Tp(2); + } + else + { + + + + __Ai = _Tp(0.35502805388781723926L); + __Bi = __Ai * __numeric_constants<_Tp>::__sqrt3(); + + + + + __Aip = -_Tp(0.25881940379280679840L); + __Bip = -__Aip * __numeric_constants<_Tp>::__sqrt3(); + } + + return; + } + } + + + + + +} +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + namespace __detail + { +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + template + _Tp + __poly_hermite_recursion(unsigned int __n, _Tp __x) + { + + _Tp __H_0 = 1; + if (__n == 0) + return __H_0; + + + _Tp __H_1 = 2 * __x; + if (__n == 1) + return __H_1; + + + _Tp __H_n, __H_nm1, __H_nm2; + unsigned int __i; + for (__H_nm2 = __H_0, __H_nm1 = __H_1, __i = 2; __i <= __n; ++__i) + { + __H_n = 2 * (__x * __H_nm1 - (__i - 1) * __H_nm2); + __H_nm2 = __H_nm1; + __H_nm1 = __H_n; + } + + return __H_n; + } +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + template + inline _Tp + __poly_hermite(unsigned int __n, _Tp __x) + { + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __poly_hermite_recursion(__n, __x); + } + } + + + + + +} +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 1 3 +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + namespace __detail + { +# 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_large_n(unsigned __n, _Tpa __alpha1, _Tp __x) + { + const _Tp __a = -_Tp(__n); + const _Tp __b = _Tp(__alpha1) + _Tp(1); + const _Tp __eta = _Tp(2) * __b - _Tp(4) * __a; + const _Tp __cos2th = __x / __eta; + const _Tp __sin2th = _Tp(1) - __cos2th; + const _Tp __th = std::acos(std::sqrt(__cos2th)); + const _Tp __pre_h = __numeric_constants<_Tp>::__pi_2() + * __numeric_constants<_Tp>::__pi_2() + * __eta * __eta * __cos2th * __sin2th; + + + const _Tp __lg_b = ::std::lgamma(_Tp(__n) + __b); + const _Tp __lnfact = ::std::lgamma(_Tp(__n + 1)); + + + + + + _Tp __pre_term1 = _Tp(0.5L) * (_Tp(1) - __b) + * std::log(_Tp(0.25L) * __x * __eta); + _Tp __pre_term2 = _Tp(0.25L) * std::log(__pre_h); + _Tp __lnpre = __lg_b - __lnfact + _Tp(0.5L) * __x + + __pre_term1 - __pre_term2; + _Tp __ser_term1 = std::sin(__a * __numeric_constants<_Tp>::__pi()); + _Tp __ser_term2 = std::sin(_Tp(0.25L) * __eta + * (_Tp(2) * __th + - std::sin(_Tp(2) * __th)) + + __numeric_constants<_Tp>::__pi_4()); + _Tp __ser = __ser_term1 + __ser_term2; + + return std::exp(__lnpre) * __ser; + } +# 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_hyperg(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + const _Tp __b = _Tp(__alpha1) + _Tp(1); + const _Tp __mx = -__x; + const _Tp __tc_sgn = (__x < _Tp(0) ? _Tp(1) + : ((__n % 2 == 1) ? -_Tp(1) : _Tp(1))); + + _Tp __tc = _Tp(1); + const _Tp __ax = std::abs(__x); + for (unsigned int __k = 1; __k <= __n; ++__k) + __tc *= (__ax / __k); + + _Tp __term = __tc * __tc_sgn; + _Tp __sum = __term; + for (int __k = int(__n) - 1; __k >= 0; --__k) + { + __term *= ((__b + _Tp(__k)) / _Tp(int(__n) - __k)) + * _Tp(__k + 1) / __mx; + __sum += __term; + } + + return __sum; + } +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_recursion(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + + _Tp __l_0 = _Tp(1); + if (__n == 0) + return __l_0; + + + _Tp __l_1 = -__x + _Tp(1) + _Tp(__alpha1); + if (__n == 1) + return __l_1; + + + _Tp __l_n2 = __l_0; + _Tp __l_n1 = __l_1; + _Tp __l_n = _Tp(0); + for (unsigned int __nn = 2; __nn <= __n; ++__nn) + { + __l_n = (_Tp(2 * __nn - 1) + _Tp(__alpha1) - __x) + * __l_n1 / _Tp(__nn) + - (_Tp(__nn - 1) + _Tp(__alpha1)) * __l_n2 / _Tp(__nn); + __l_n2 = __l_n1; + __l_n1 = __l_n; + } + + return __l_n; + } +# 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Negative argument " "in __poly_laguerre.") + ); + + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__n == 0) + return _Tp(1); + else if (__n == 1) + return _Tp(1) + _Tp(__alpha1) - __x; + else if (__x == _Tp(0)) + { + _Tp __prod = _Tp(__alpha1) + _Tp(1); + for (unsigned int __k = 2; __k <= __n; ++__k) + __prod *= (_Tp(__alpha1) + _Tp(__k)) / _Tp(__k); + return __prod; + } + else if (__n > 10000000 && _Tp(__alpha1) > -_Tp(1) + && __x < _Tp(2) * (_Tp(__alpha1) + _Tp(1)) + _Tp(4 * __n)) + return __poly_laguerre_large_n(__n, __alpha1, __x); + else if (_Tp(__alpha1) >= _Tp(0) + || (__x > _Tp(0) && _Tp(__alpha1) < -_Tp(__n + 1))) + return __poly_laguerre_recursion(__n, __alpha1, __x); + else + return __poly_laguerre_hyperg(__n, __alpha1, __x); + } +# 296 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) + { return __poly_laguerre(__n, __m, __x); } +# 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __laguerre(unsigned int __n, _Tp __x) + { return __poly_laguerre(__n, 0, __x); } + } + + + + + + +} +# 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + namespace __detail + { +# 78 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_sum(_Tp __s) + { + + if (__s < _Tp(1)) + std::__throw_domain_error(("Bad argument in zeta sum.")); + + const unsigned int max_iter = 10000; + _Tp __zeta = _Tp(0); + for (unsigned int __k = 1; __k < max_iter; ++__k) + { + _Tp __term = std::pow(static_cast<_Tp>(__k), -__s); + if (__term < std::numeric_limits<_Tp>::epsilon()) + { + break; + } + __zeta += __term; + } + + return __zeta; + } +# 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_alt(_Tp __s) + { + _Tp __sgn = _Tp(1); + _Tp __zeta = _Tp(0); + for (unsigned int __i = 1; __i < 10000000; ++__i) + { + _Tp __term = __sgn / std::pow(__i, __s); + if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) + break; + __zeta += __term; + __sgn *= _Tp(-1); + } + __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); + + return __zeta; + } +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_glob(_Tp __s) + { + _Tp __zeta = _Tp(0); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + + + if (__s < _Tp(0)) + { + + if (::std::fmod(__s,_Tp(2)) == _Tp(0)) + return _Tp(0); + else + + { + _Tp __zeta = __riemann_zeta_glob(_Tp(1) - __s); + __zeta *= std::pow(_Tp(2) + * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * std::exp(::std::lgamma(_Tp(1) - __s)) + + + + / __numeric_constants<_Tp>::__pi(); + return __zeta; + } + } + + _Tp __num = _Tp(0.5L); + const unsigned int __maxit = 10000; + for (unsigned int __i = 0; __i < __maxit; ++__i) + { + bool __punt = false; + _Tp __sgn = _Tp(1); + _Tp __term = _Tp(0); + for (unsigned int __j = 0; __j <= __i; ++__j) + { + + _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) + - ::std::lgamma(_Tp(1 + __j)) + - ::std::lgamma(_Tp(1 + __i - __j)); + + + + + + if (__bincoeff > __max_bincoeff) + { + + __punt = true; + break; + } + __bincoeff = std::exp(__bincoeff); + __term += __sgn * __bincoeff * std::pow(_Tp(1 + __j), -__s); + __sgn *= _Tp(-1); + } + if (__punt) + break; + __term *= __num; + __zeta += __term; + if (std::abs(__term/__zeta) < __eps) + break; + __num *= _Tp(0.5L); + } + + __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); + + return __zeta; + } +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_product(_Tp __s) + { + static const _Tp __prime[] = { + _Tp(2), _Tp(3), _Tp(5), _Tp(7), _Tp(11), _Tp(13), _Tp(17), _Tp(19), + _Tp(23), _Tp(29), _Tp(31), _Tp(37), _Tp(41), _Tp(43), _Tp(47), + _Tp(53), _Tp(59), _Tp(61), _Tp(67), _Tp(71), _Tp(73), _Tp(79), + _Tp(83), _Tp(89), _Tp(97), _Tp(101), _Tp(103), _Tp(107), _Tp(109) + }; + static const unsigned int __num_primes = sizeof(__prime) / sizeof(_Tp); + + _Tp __zeta = _Tp(1); + for (unsigned int __i = 0; __i < __num_primes; ++__i) + { + const _Tp __fact = _Tp(1) - std::pow(__prime[__i], -__s); + __zeta *= __fact; + if (_Tp(1) - __fact < std::numeric_limits<_Tp>::epsilon()) + break; + } + + __zeta = _Tp(1) / __zeta; + + return __zeta; + } +# 293 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta(_Tp __s) + { + if (__isnan(__s)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__s == _Tp(1)) + return std::numeric_limits<_Tp>::infinity(); + else if (__s < -_Tp(19)) + { + _Tp __zeta = __riemann_zeta_product(_Tp(1) - __s); + __zeta *= std::pow(_Tp(2) * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * std::exp(::std::lgamma(_Tp(1) - __s)) + + + + / __numeric_constants<_Tp>::__pi(); + return __zeta; + } + else if (__s < _Tp(20)) + { + + bool __glob = true; + if (__glob) + return __riemann_zeta_glob(__s); + else + { + if (__s > _Tp(1)) + return __riemann_zeta_sum(__s); + else + { + _Tp __zeta = std::pow(_Tp(2) + * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * ::std::tgamma(_Tp(1) - __s) + + + + * __riemann_zeta_sum(_Tp(1) - __s); + return __zeta; + } + } + } + else + return __riemann_zeta_product(__s); + } +# 365 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __hurwitz_zeta_glob(_Tp __a, _Tp __s) + { + _Tp __zeta = _Tp(0); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + const unsigned int __maxit = 10000; + for (unsigned int __i = 0; __i < __maxit; ++__i) + { + bool __punt = false; + _Tp __sgn = _Tp(1); + _Tp __term = _Tp(0); + for (unsigned int __j = 0; __j <= __i; ++__j) + { + + _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) + - ::std::lgamma(_Tp(1 + __j)) + - ::std::lgamma(_Tp(1 + __i - __j)); + + + + + + if (__bincoeff > __max_bincoeff) + { + + __punt = true; + break; + } + __bincoeff = std::exp(__bincoeff); + __term += __sgn * __bincoeff * std::pow(_Tp(__a + __j), -__s); + __sgn *= _Tp(-1); + } + if (__punt) + break; + __term /= _Tp(__i + 1); + if (std::abs(__term / __zeta) < __eps) + break; + __zeta += __term; + } + + __zeta /= __s - _Tp(1); + + return __zeta; + } +# 430 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + inline _Tp + __hurwitz_zeta(_Tp __a, _Tp __s) + { return __hurwitz_zeta_glob(__a, __s); } + } + + + + + + +} +# 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 203 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + assoc_laguerref(unsigned int __n, unsigned int __m, float __x) + { return __detail::__assoc_laguerre(__n, __m, __x); } + + + + + + + + inline long double + assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x) + { return __detail::__assoc_laguerre(__n, __m, __x); } +# 248 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__assoc_laguerre<__type>(__n, __m, __x); + } +# 264 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + assoc_legendref(unsigned int __l, unsigned int __m, float __x) + { return __detail::__assoc_legendre_p(__l, __m, __x); } + + + + + + + inline long double + assoc_legendrel(unsigned int __l, unsigned int __m, long double __x) + { return __detail::__assoc_legendre_p(__l, __m, __x); } +# 294 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__assoc_legendre_p<__type>(__l, __m, __x); + } +# 309 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + betaf(float __a, float __b) + { return __detail::__beta(__a, __b); } + + + + + + + + inline long double + betal(long double __a, long double __b) + { return __detail::__beta(__a, __b); } +# 339 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type + beta(_Tpa __a, _Tpb __b) + { + typedef typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type __type; + return __detail::__beta<__type>(__a, __b); + } +# 355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_1f(float __k) + { return __detail::__comp_ellint_1(__k); } + + + + + + + + inline long double + comp_ellint_1l(long double __k) + { return __detail::__comp_ellint_1(__k); } +# 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + comp_ellint_1(_Tp __k) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__comp_ellint_1<__type>(__k); + } +# 403 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_2f(float __k) + { return __detail::__comp_ellint_2(__k); } + + + + + + + + inline long double + comp_ellint_2l(long double __k) + { return __detail::__comp_ellint_2(__k); } +# 434 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + comp_ellint_2(_Tp __k) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__comp_ellint_2<__type>(__k); + } +# 450 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_3f(float __k, float __nu) + { return __detail::__comp_ellint_3(__k, __nu); } + + + + + + + + inline long double + comp_ellint_3l(long double __k, long double __nu) + { return __detail::__comp_ellint_3(__k, __nu); } +# 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type + comp_ellint_3(_Tp __k, _Tpn __nu) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type; + return __detail::__comp_ellint_3<__type>(__k, __nu); + } +# 501 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_if(float __nu, float __x) + { return __detail::__cyl_bessel_i(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_il(long double __nu, long double __x) + { return __detail::__cyl_bessel_i(__nu, __x); } +# 531 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_i(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_i<__type>(__nu, __x); + } +# 547 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_jf(float __nu, float __x) + { return __detail::__cyl_bessel_j(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_jl(long double __nu, long double __x) + { return __detail::__cyl_bessel_j(__nu, __x); } +# 577 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_j(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_j<__type>(__nu, __x); + } +# 593 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_kf(float __nu, float __x) + { return __detail::__cyl_bessel_k(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_kl(long double __nu, long double __x) + { return __detail::__cyl_bessel_k(__nu, __x); } +# 629 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_k(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_k<__type>(__nu, __x); + } +# 645 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_neumannf(float __nu, float __x) + { return __detail::__cyl_neumann_n(__nu, __x); } + + + + + + + + inline long double + cyl_neumannl(long double __nu, long double __x) + { return __detail::__cyl_neumann_n(__nu, __x); } +# 677 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_neumann(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_neumann_n<__type>(__nu, __x); + } +# 693 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_1f(float __k, float __phi) + { return __detail::__ellint_1(__k, __phi); } + + + + + + + + inline long double + ellint_1l(long double __k, long double __phi) + { return __detail::__ellint_1(__k, __phi); } +# 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type + ellint_1(_Tp __k, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; + return __detail::__ellint_1<__type>(__k, __phi); + } +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_2f(float __k, float __phi) + { return __detail::__ellint_2(__k, __phi); } + + + + + + + + inline long double + ellint_2l(long double __k, long double __phi) + { return __detail::__ellint_2(__k, __phi); } +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type + ellint_2(_Tp __k, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; + return __detail::__ellint_2<__type>(__k, __phi); + } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_3f(float __k, float __nu, float __phi) + { return __detail::__ellint_3(__k, __nu, __phi); } + + + + + + + + inline long double + ellint_3l(long double __k, long double __nu, long double __phi) + { return __detail::__ellint_3(__k, __nu, __phi); } +# 826 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type + ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type; + return __detail::__ellint_3<__type>(__k, __nu, __phi); + } +# 841 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + expintf(float __x) + { return __detail::__expint(__x); } + + + + + + + + inline long double + expintl(long double __x) + { return __detail::__expint(__x); } +# 866 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + expint(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__expint<__type>(__x); + } +# 882 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + hermitef(unsigned int __n, float __x) + { return __detail::__poly_hermite(__n, __x); } + + + + + + + + inline long double + hermitel(unsigned int __n, long double __x) + { return __detail::__poly_hermite(__n, __x); } +# 914 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + hermite(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__poly_hermite<__type>(__n, __x); + } +# 930 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + laguerref(unsigned int __n, float __x) + { return __detail::__laguerre(__n, __x); } + + + + + + + + inline long double + laguerrel(unsigned int __n, long double __x) + { return __detail::__laguerre(__n, __x); } +# 958 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + laguerre(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__laguerre<__type>(__n, __x); + } +# 974 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + legendref(unsigned int __l, float __x) + { return __detail::__poly_legendre_p(__l, __x); } + + + + + + + + inline long double + legendrel(unsigned int __l, long double __x) + { return __detail::__poly_legendre_p(__l, __x); } +# 1003 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + legendre(unsigned int __l, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__poly_legendre_p<__type>(__l, __x); + } +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + riemann_zetaf(float __s) + { return __detail::__riemann_zeta(__s); } + + + + + + + + inline long double + riemann_zetal(long double __s) + { return __detail::__riemann_zeta(__s); } +# 1054 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + riemann_zeta(_Tp __s) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__riemann_zeta<__type>(__s); + } +# 1070 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_besself(unsigned int __n, float __x) + { return __detail::__sph_bessel(__n, __x); } + + + + + + + + inline long double + sph_bessell(unsigned int __n, long double __x) + { return __detail::__sph_bessel(__n, __x); } +# 1098 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_bessel(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_bessel<__type>(__n, __x); + } +# 1114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_legendref(unsigned int __l, unsigned int __m, float __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + sph_legendrel(unsigned int __l, unsigned int __m, long double __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_legendre<__type>(__l, __m, __theta); + } +# 1161 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_neumannf(unsigned int __n, float __x) + { return __detail::__sph_neumann(__n, __x); } + + + + + + + + inline long double + sph_neumannl(unsigned int __n, long double __x) + { return __detail::__sph_neumann(__n, __x); } +# 1189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_neumann(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_neumann<__type>(__n, __x); + } + + + + +} + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + airy_aif(float __x) + { + float __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + inline long double + airy_ail(long double __x) + { + long double __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + template + inline typename __gnu_cxx::__promote<_Tp>::__type + airy_ai(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + __type __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + inline float + airy_bif(float __x) + { + float __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } + + + + + inline long double + airy_bil(long double __x) + { + long double __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } + + + + + template + inline typename __gnu_cxx::__promote<_Tp>::__type + airy_bi(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + __type __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } +# 1292 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + conf_hypergf(float __a, float __c, float __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + conf_hypergl(long double __a, long double __c, long double __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type + conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x) + { + typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type; + return std::__detail::__conf_hyperg<__type>(__a, __c, __x); + } +# 1340 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + hypergf(float __a, float __b, float __c, float __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1351 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + hypergl(long double __a, long double __b, long double __c, long double __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1372 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type + hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) + { + typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp> + ::__type __type; + return std::__detail::__hyperg<__type>(__a, __b, __c, __x); + } + + + +} +# 3907 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + + +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 2 3 + +using std::abs; +using std::acos; +using std::asin; +using std::atan; +using std::atan2; +using std::cos; +using std::sin; +using std::tan; +using std::cosh; +using std::sinh; +using std::tanh; +using std::exp; +using std::frexp; +using std::ldexp; +using std::log; +using std::log10; +using std::modf; +using std::pow; +using std::sqrt; +using std::ceil; +using std::fabs; +using std::floor; +using std::fmod; + + +using std::fpclassify; +using std::isfinite; +using std::isinf; +using std::isnan; +using std::isnormal; +using std::signbit; +using std::isgreater; +using std::isgreaterequal; +using std::isless; +using std::islessequal; +using std::islessgreater; +using std::isunordered; + + + +using std::acosh; +using std::asinh; +using std::atanh; +using std::cbrt; +using std::copysign; +using std::erf; +using std::erfc; +using std::exp2; +using std::expm1; +using std::fdim; +using std::fma; +using std::fmax; +using std::fmin; +using std::hypot; +using std::ilogb; +using std::lgamma; +using std::llrint; +using std::llround; +using std::log1p; +using std::log2; +using std::logb; +using std::lrint; +using std::lround; +using std::nearbyint; +using std::nextafter; +using std::nexttoward; +using std::remainder; +using std::remquo; +using std::rint; +using std::round; +using std::scalbln; +using std::scalbn; +using std::tgamma; +using std::trunc; +# 4578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 4579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +# 4582 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +# 4583 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(long double x); +} +# 4832 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std +{ + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __pow_helper(T, int); + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __cmath_power(T, unsigned int); +} + +using std::abs; +using std::fabs; +using std::ceil; +using std::floor; +using std::sqrt; + +using std::pow; + +using std::log; +using std::log10; +using std::fmod; +using std::modf; +using std::exp; +using std::frexp; +using std::ldexp; +using std::asin; +using std::sin; +using std::sinh; +using std::acos; +using std::cos; +using std::cosh; +using std::atan; +using std::atan2; +using std::tan; +using std::tanh; +# 5243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 5252 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int abs(long long int); +# 5272 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int abs(long int a); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float abs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double abs(double); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fabs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ceil(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float floor(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sqrt(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float pow(float, float); + + + + +template +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) +typename __gnu_cxx::__promote_2<_Tp, _Up>::__type pow(_Tp, _Up); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log10(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fmod(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float modf(float, float*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float frexp(float, int*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ldexp(float, int); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float asin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float acos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cosh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan2(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tanh(float); +# 5399 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 5505 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float logb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr int ilogb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbn(float a, int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbln(float a, long int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float exp2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float expm1(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log1p(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float acosh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float asinh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float atanh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float hypot(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float cbrt(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erf(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erfc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float lgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float tgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float copysign(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nextafter(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float remainder(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float remquo(float a, float b, int *quo); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float round(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float trunc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float rint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nearbyint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fdim(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fma(float a, float b, float c); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmax(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmin(float a, float b); +} +# 5644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp10(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rsqrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rcbrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinpi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cospi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincospi(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincos(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float jn(const int n, const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float yn(const int n, const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i0(const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdf(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcx(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const double a, const float b); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const float a, const double b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int min(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int min(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const long long int b); +# 5785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float min(const float a, const float b); +# 5796 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const double b); +# 5806 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const float a, const double b); +# 5816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const float b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int max(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int max(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const long long int b); +# 5915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float max(const float a, const float b); +# 5926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const double b); +# 5936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const float a, const double b); +# 5946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const float b); +# 5958 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C"{ +inline __attribute__((device)) void *__nv_aligned_device_malloc(size_t size, size_t align) +{ + __attribute__((device)) void *__nv_aligned_device_malloc_impl(size_t, size_t); + return __nv_aligned_device_malloc_impl(size, align); +} +} +# 6248 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 78 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 2 +# 758 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +static inline __attribute__((host)) __attribute__((device)) float exp10(const float a) +{ + return exp10f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rsqrt(const float a) +{ + return rsqrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rcbrt(const float a) +{ + return rcbrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float sinpi(const float a) +{ + return sinpif(a); +} + +static inline __attribute__((host)) __attribute__((device)) float cospi(const float a) +{ + return cospif(a); +} + +static inline __attribute__((host)) __attribute__((device)) void sincospi(const float a, float *const sptr, float *const cptr) +{ + sincospif(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) void sincos(const float a, float *const sptr, float *const cptr) +{ + sincosf(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) float j0(const float a) +{ + return j0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float j1(const float a) +{ + return j1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float jn(const int n, const float a) +{ + return jnf(n, a); +} + +static inline __attribute__((host)) __attribute__((device)) float y0(const float a) +{ + return y0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float y1(const float a) +{ + return y1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float yn(const int n, const float a) +{ + return ynf(n, a); +} + +static inline __attribute__((device)) float cyl_bessel_i0(const float a) +{ + return cyl_bessel_i0f(a); +} + +static inline __attribute__((device)) float cyl_bessel_i1(const float a) +{ + return cyl_bessel_i1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfinv(const float a) +{ + return erfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcinv(const float a) +{ + return erfcinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdfinv(const float a) +{ + return normcdfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdf(const float a) +{ + return normcdff(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcx(const float a) +{ + return erfcxf(a); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const double a, const float b) +{ + return copysign(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const float a, const double b) +{ + return copysign(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const unsigned int b) +{ + return umin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const int a, const unsigned int b) +{ + return umin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const int b) +{ + return umin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int min(const long int a, const long int b) +{ + long int retval; + + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(min(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int min(const long long int a, const long long int b) +{ + return llmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b) +{ + return ullmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const long long int a, const unsigned long long int b) +{ + return ullmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const long long int b) +{ + return ullmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float min(const float a, const float b) +{ + return fminf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const double b) +{ + return fmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const float a, const double b) +{ + return fmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const float b) +{ + return fmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const unsigned int b) +{ + return umax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const int a, const unsigned int b) +{ + return umax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const int b) +{ + return umax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int max(const long int a, const long int b) +{ + long int retval; + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(max(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int max(const long long int a, const long long int b) +{ + return llmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b) +{ + return ullmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const long long int a, const unsigned long long int b) +{ + return ullmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const long long int b) +{ + return ullmax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float max(const float a, const float b) +{ + return fmaxf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const double b) +{ + return fmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const float a, const double b) +{ + return fmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const float b) +{ + return fmax(a, static_cast(b)); +} +# 6249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +extern "C" +{ +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mulhi(int x, int y); +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umulhi(unsigned int x, unsigned int y); +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __mul64hi(long long int x, long long int y); +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __umul64hi(unsigned long long int x, unsigned long long int y); +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int_as_float(int x); +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float_as_int(float x); +# 163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint_as_float(unsigned int x); +# 172 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float_as_uint(float x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __syncthreads(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __prof_trigger(int); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence_block(void); +__attribute__((device)) __attribute__((cudart_builtin)) + +__attribute__((__noreturn__)) + + + +__attribute__((device_builtin)) void __trap(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __brkpt(); +# 196 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __saturatef(float x); +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __sad(int x, int y, unsigned int z); +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __usad(unsigned int x, unsigned int y, unsigned int z); +# 243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mul24(int x, int y); +# 253 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umul24(unsigned int x, unsigned int y); +# 269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float fdividef(float x, float y); +# 289 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdividef(float x, float y); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) double fdivide(double x, double y); +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __sinf(float x) +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __cosf(float x) +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanf(float x) +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanhf(float x) +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void __sincosf(float x, float *sptr, float *cptr) +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __expf(float x) +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __exp10f(float x) +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log2f(float x) +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log10f(float x) +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __logf(float x) +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __powf(float x, float y) +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rn(float x); +# 463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rz(float x); +# 473 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_ru(float); +# 483 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rd(float x); +# 493 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rn(float x); +# 503 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rz(float x); +# 513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_ru(float x); +# 523 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rd(float x); +# 532 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rn(int x); +# 541 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rz(int x); +# 550 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_ru(int x); +# 559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rd(int x); +# 568 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rn(unsigned int x); +# 577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rz(unsigned int x); +# 586 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_ru(unsigned int x); +# 595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rd(unsigned int x); +# 605 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rn(float x); +# 615 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rz(float x); +# 625 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_ru(float x); +# 635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rd(float x); +# 645 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rn(float x); +# 655 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rz(float x); +# 665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_ru(float x); +# 675 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rd(float x); +# 684 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rn(long long int x); +# 693 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rz(long long int x); +# 702 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_ru(long long int x); +# 711 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rd(long long int x); +# 720 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rn(unsigned long long int x); +# 729 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rz(unsigned long long int x); +# 738 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_ru(unsigned long long int x); +# 747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rd(unsigned long long int x); +# 766 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rn(float x, float y); +# 785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rz(float x, float y); +# 804 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_ru(float x, float y); +# 823 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rd(float x, float y); +# 842 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rn(float x, float y); +# 861 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rz(float x, float y); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_ru(float x, float y); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rd(float x, float y); +# 917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rn(float x, float y); +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rz(float x, float y); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_ru(float x, float y); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rd(float x, float y); +# 1015 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rn(float x, float y, float z); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rz(float x, float y, float z); +# 1103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_ru(float x, float y, float z); +# 1147 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rd(float x, float y, float z); +# 1164 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rn(float x); +# 1181 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rz(float x); +# 1198 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_ru(float x); +# 1215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rd(float x); +# 1233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rn(float x); +# 1251 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rz(float x); +# 1269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_ru(float x); +# 1287 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rd(float x); +# 1305 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frsqrt_rn(float x); +# 1324 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rn(float x, float y); +# 1343 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rz(float x, float y); +# 1362 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_ru(float x, float y); +# 1381 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rd(float x, float y); +# 1390 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clz(int x); +# 1401 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffs(int x); +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popc(unsigned int x); +# 1419 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __brev(unsigned int x); +# 1428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clzll(long long int x); +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffsll(long long int x); +# 1450 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popcll(unsigned long long int x); +# 1459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __brevll(unsigned long long int x); +# 1482 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __byte_perm(unsigned int x, unsigned int y, unsigned int s); +# 1494 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __hadd(int x, int y); +# 1507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __rhadd(int x, int y); +# 1519 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __uhadd(unsigned int x, unsigned int y); +# 1532 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __urhadd(unsigned int x, unsigned int y); +# 1543 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __double2int_rz(double x); +# 1553 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __double2uint_rz(double x); +# 1563 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __double2ll_rz(double x); +# 1573 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __double2ull_rz(double x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm0(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm1(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm2(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm3(void); +# 1603 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs2(unsigned int a); +# 1614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss2(unsigned int a); +# 1625 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd2(unsigned int a, unsigned int b); +# 1636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss2 (unsigned int a, unsigned int b); +# 1646 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus2 (unsigned int a, unsigned int b); +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs2(unsigned int a, unsigned int b); +# 1668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu2(unsigned int a, unsigned int b); +# 1679 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu2(unsigned int a, unsigned int b); +# 1690 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq2(unsigned int a, unsigned int b); +# 1701 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges2(unsigned int a, unsigned int b); +# 1712 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu2(unsigned int a, unsigned int b); +# 1723 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts2(unsigned int a, unsigned int b); +# 1734 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu2(unsigned int a, unsigned int b); +# 1745 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples2(unsigned int a, unsigned int b); +# 1756 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu2(unsigned int a, unsigned int b); +# 1767 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts2(unsigned int a, unsigned int b); +# 1778 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu2(unsigned int a, unsigned int b); +# 1789 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne2(unsigned int a, unsigned int b); +# 1800 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu2(unsigned int a, unsigned int b); +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs2(unsigned int a, unsigned int b); +# 1822 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu2(unsigned int a, unsigned int b); +# 1833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins2(unsigned int a, unsigned int b); +# 1844 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu2(unsigned int a, unsigned int b); +# 1855 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq2(unsigned int a, unsigned int b); +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges2(unsigned int a, unsigned int b); +# 1877 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu2(unsigned int a, unsigned int b); +# 1888 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts2(unsigned int a, unsigned int b); +# 1899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu2(unsigned int a, unsigned int b); +# 1910 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles2(unsigned int a, unsigned int b); +# 1921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu2(unsigned int a, unsigned int b); +# 1932 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts2(unsigned int a, unsigned int b); +# 1943 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu2(unsigned int a, unsigned int b); +# 1954 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne2(unsigned int a, unsigned int b); +# 1965 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu2(unsigned int a, unsigned int b); +# 1976 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub2(unsigned int a, unsigned int b); +# 1987 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss2 (unsigned int a, unsigned int b); +# 1998 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus2 (unsigned int a, unsigned int b); +# 2008 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg2(unsigned int a); +# 2018 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss2(unsigned int a); +# 2029 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs2(unsigned int a, unsigned int b); +# 2040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads2(unsigned int a, unsigned int b); +# 2050 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs4(unsigned int a); +# 2061 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss4(unsigned int a); +# 2072 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd4(unsigned int a, unsigned int b); +# 2083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss4 (unsigned int a, unsigned int b); +# 2093 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus4 (unsigned int a, unsigned int b); +# 2104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs4(unsigned int a, unsigned int b); +# 2115 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu4(unsigned int a, unsigned int b); +# 2126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu4(unsigned int a, unsigned int b); +# 2137 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq4(unsigned int a, unsigned int b); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges4(unsigned int a, unsigned int b); +# 2159 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu4(unsigned int a, unsigned int b); +# 2170 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts4(unsigned int a, unsigned int b); +# 2181 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu4(unsigned int a, unsigned int b); +# 2192 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples4(unsigned int a, unsigned int b); +# 2203 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu4(unsigned int a, unsigned int b); +# 2214 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts4(unsigned int a, unsigned int b); +# 2225 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu4(unsigned int a, unsigned int b); +# 2236 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne4(unsigned int a, unsigned int b); +# 2247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu4(unsigned int a, unsigned int b); +# 2258 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs4(unsigned int a, unsigned int b); +# 2269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu4(unsigned int a, unsigned int b); +# 2280 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins4(unsigned int a, unsigned int b); +# 2291 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu4(unsigned int a, unsigned int b); +# 2302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq4(unsigned int a, unsigned int b); +# 2313 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles4(unsigned int a, unsigned int b); +# 2324 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu4(unsigned int a, unsigned int b); +# 2335 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts4(unsigned int a, unsigned int b); +# 2346 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu4(unsigned int a, unsigned int b); +# 2357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges4(unsigned int a, unsigned int b); +# 2368 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu4(unsigned int a, unsigned int b); +# 2379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts4(unsigned int a, unsigned int b); +# 2390 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu4(unsigned int a, unsigned int b); +# 2401 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne4(unsigned int a, unsigned int b); +# 2412 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu4(unsigned int a, unsigned int b); +# 2423 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub4(unsigned int a, unsigned int b); +# 2434 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss4(unsigned int a, unsigned int b); +# 2445 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus4(unsigned int a, unsigned int b); +# 2455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg4(unsigned int a); +# 2465 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss4(unsigned int a); +# 2476 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs4(unsigned int a, unsigned int b); +# 2487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads4(unsigned int a, unsigned int b); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b); +# 2509 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b); +# 2518 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b); +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b); +# 2539 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32(const int a, const int b, const int c); +# 2551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2572 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2581 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32(const int a, const int b, const int c); +# 2593 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2602 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32_relu(const int a, const int b, const int c); +# 2635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32_relu(const int a, const int b, const int c); +# 2656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32(const int a, const int b, const int c); +# 2677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2686 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2698 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2707 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32(const int a, const int b, const int c); +# 2719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2728 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2750 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32_relu(const int a, const int b, const int c); +# 2762 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2772 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32_relu(const int a, const int b, const int c); +# 2784 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2793 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmax_s32(const int a, const int b, bool* const pred); +# 2802 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool* const pred); +# 2811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmin_s32(const int a, const int b, bool* const pred); +# 2820 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool* const pred); +# 2834 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2848 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2862 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2876 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); + + + + + + +} +# 2899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 2 +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +static __attribute__((host)) __attribute__((device)) short __internal_cast_u2s(unsigned short x) +{ + short res; + + (void)memcpy(&res, &x, sizeof(x)); + + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b){ + + + + + + + int ans = max(a, b); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b){ + unsigned int res; + + + + res = __vmaxs2(__vmaxs2(a, b), 0U); +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b){ + + + + + + + int ans = min(a, b); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b){ + unsigned int res; + + + + res = __vmaxs2(__vmins2(a, b), 0U); +# 232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32(const int a, const int b, const int c){ +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(max(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned int ansU_lo = (unsigned int)max(max(aS_lo, bS_lo), cS_lo); + unsigned int ansU_hi = (unsigned int)max(max(aS_hi, bS_hi), cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 301 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(max(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vmaxu2(__vmaxu2(a, b), c); +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32(const int a, const int b, const int c){ +# 347 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(min(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned int ansU_lo = (unsigned int)min(min(aS_lo, bS_lo), cS_lo); + unsigned int ansU_hi = (unsigned int)min(min(aS_hi, bS_hi), cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(min(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vminu2(__vminu2(a, b), c); +# 436 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32_relu(const int a, const int b, const int c){ +# 449 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(max(a, b), c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, max(max(aS_lo, bS_lo), cS_lo)); + unsigned ansU_hi = (unsigned)max(0, max(max(aS_hi, bS_hi), cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32_relu(const int a, const int b, const int c){ +# 507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(min(a, b), c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned res; +# 525 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, min(min(aS_lo, bS_lo), cS_lo)); + unsigned ansU_hi = (unsigned)max(0, min(min(aS_hi, bS_hi), cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32(const int a, const int b, const int c){ +# 566 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vmaxs2(__vadd2(a, b), c); +# 609 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 622 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vmaxu2(__vadd2(a, b), c); +# 655 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32(const int a, const int b, const int c){ +# 668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vmins2(__vadd2(a, b), c); +# 711 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vminu2(__vadd2(a, b), c); +# 757 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32_relu(const int a, const int b, const int c){ +# 770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(a + b, c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vimax_s16x2_relu(__vadd2(a, b), c); +# 815 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32_relu(const int a, const int b, const int c){ +# 828 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(a + b, c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; + + + + + + + res = __vimin_s16x2_relu(__vadd2(a, b), c); +# 873 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return res; +} + + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmax_s32(const int a, const int b, bool* const pred){ +# 892 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(a, b); + + *pred = (a >= b); + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool* const pred){ +# 913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned int ans = max(a, b); + + *pred = (a >= b); + return ans; + +} + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmin_s32(const int a, const int b, bool* const pred){ +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(a, b); + + *pred = (a <= b); + return ans; + +} + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool* const pred){ +# 957 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned int ans = min(a, b); + + *pred = (a <= b); + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 986 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + unsigned int ansU_lo = (unsigned int)max(aS_lo, bS_lo); + unsigned int ansU_hi = (unsigned int)max(aS_hi, bS_hi); + + *pred_hi = (aS_hi >= bS_hi); + *pred_lo = (aS_lo >= bS_lo); + + + unsigned int ans = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + unsigned short ansU_lo = (unsigned short)max(aU_lo, bU_lo); + unsigned short ansU_hi = (unsigned short)max(aU_hi, bU_hi); + + *pred_hi = (aU_hi >= bU_hi); + *pred_lo = (aU_lo >= bU_lo); + + + unsigned int ans = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + unsigned int ansU_lo = (unsigned int)min(aS_lo, bS_lo); + unsigned int ansU_hi = (unsigned int)min(aS_hi, bS_hi); + + *pred_hi = (aS_hi <= bS_hi); + *pred_lo = (aS_lo <= bS_lo); + + + unsigned int ans = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + unsigned short ansU_lo = (unsigned short)min(aU_lo, bU_lo); + unsigned short ansU_hi = (unsigned short)min(aU_hi, bU_hi); + + *pred_hi = (aU_hi <= bU_hi); + *pred_lo = (aU_lo <= bU_lo); + + + unsigned int ans = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + return ans; + +} +# 2900 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" 1 +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) ; + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) ; +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __any(int cond); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __all(int cond); +} +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) ; + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) ; + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) ; + +static __inline__ __attribute__((device)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool any(bool cond) ; + +static __inline__ __attribute__((device)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool all(bool cond) ; +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.hpp" 1 +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicAdd(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicAdd(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicExch(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicExch(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) float __fAtomicExch(float *address, float val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicMin(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicMin(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicMax(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicMax(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicInc(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicDec(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicAnd(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicAnd(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicOr(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicOr(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicXor(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicXor(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicCAS(int *address, int compare, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicCAS(unsigned int *address, unsigned int compare, unsigned int val); + + +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicAdd(unsigned long long int *address, unsigned long long int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicExch(unsigned long long int *address, unsigned long long int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val); +} +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.hpp" +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) +{ + return __iAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) +{ + return __uAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) +{ + return __iAtomicAdd(address, (unsigned int)-(int)val); +} + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) +{ + return __uAtomicAdd(address, (unsigned int)-(int)val); +} + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) +{ + return __iAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) +{ + return __uAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) +{ + return __fAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) +{ + return __iAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) +{ + return __uAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) +{ + return __iAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) +{ + return __uAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) +{ + return __uAtomicInc(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) +{ + return __uAtomicDec(address, val); +} + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) +{ + return __iAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) +{ + return __uAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) +{ + return __iAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) +{ + return __uAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) +{ + return __iAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) +{ + return __uAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) +{ + return __iAtomicCAS(address, compare, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) +{ + return __uAtomicCAS(address, compare, val); +} +# 224 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.hpp" +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) +{ + return __ullAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) +{ + return __ullAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) +{ + return __ullAtomicCAS(address, compare, val); +} + +static __inline__ __attribute__((device)) bool any(bool cond) +{ + return (bool)__any((int)cond); +} + +static __inline__ __attribute__((device)) bool all(bool cond) +{ + return (bool)__all((int)cond); +} +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" 2 +# 2903 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 + + + + +extern "C" +{ +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 266 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 423 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 580 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 749 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 773 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 809 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 821 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 857 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 881 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 890 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 944 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 962 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 980 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 998 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1007 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1016 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1025 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 1050 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1113 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1141 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); +} + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode); + + + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode = cudaRoundNearest); + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 2 + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __fma_rz(a, b, c) : + mode == cudaRoundPosInf ? __fma_ru(a, b, c) : + mode == cudaRoundMinInf ? __fma_rd(a, b, c) : + __fma_rn(a, b, c); +} + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dmul_rz(a, b) : + mode == cudaRoundPosInf ? __dmul_ru(a, b) : + mode == cudaRoundMinInf ? __dmul_rd(a, b) : + __dmul_rn(a, b); +} + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dadd_rz(a, b) : + mode == cudaRoundPosInf ? __dadd_ru(a, b) : + mode == cudaRoundMinInf ? __dadd_rd(a, b) : + __dadd_rn(a, b); +} + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dsub_rz(a, b) : + mode == cudaRoundPosInf ? __dsub_ru(a, b) : + mode == cudaRoundMinInf ? __dsub_rd(a, b) : + __dsub_rn(a, b); +} + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2int_rn(a) : + mode == cudaRoundPosInf ? __double2int_ru(a) : + mode == cudaRoundMinInf ? __double2int_rd(a) : + __double2int_rz(a); +} + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2uint_rn(a) : + mode == cudaRoundPosInf ? __double2uint_ru(a) : + mode == cudaRoundMinInf ? __double2uint_rd(a) : + __double2uint_rz(a); +} + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ll_rn(a) : + mode == cudaRoundPosInf ? __double2ll_ru(a) : + mode == cudaRoundMinInf ? __double2ll_rd(a) : + __double2ll_rz(a); +} + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ull_rn(a) : + mode == cudaRoundPosInf ? __double2ull_ru(a) : + mode == cudaRoundMinInf ? __double2ull_rd(a) : + __double2ull_rz(a); +} + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ll2double_rz(a) : + mode == cudaRoundPosInf ? __ll2double_ru(a) : + mode == cudaRoundMinInf ? __ll2double_rd(a) : + __ll2double_rn(a); +} + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ull2double_rz(a) : + mode == cudaRoundPosInf ? __ull2double_ru(a) : + mode == cudaRoundMinInf ? __ull2double_rd(a) : + __ull2double_rn(a); +} + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode) +{ + return (double)a; +} +# 1185 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 +# 2904 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" 1 +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) ; + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.hpp" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) float __fAtomicAdd(float *address, float val); +} +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.hpp" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) +{ + return __fAtomicAdd(address, val); +} +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" 2 +# 2905 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 1 +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) ; +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.hpp" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) long long __illAtomicMin(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __illAtomicMax(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicAnd(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicOr(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicXor(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicMin(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicMax(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicAnd(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicOr (unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicXor(unsigned long long *address, unsigned long long val); +} +# 94 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.hpp" +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) +{ + return __illAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) +{ + return __illAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) +{ + return __llAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) +{ + return __llAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) +{ + return __llAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicXor(address, val); +} +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 2 +# 2906 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" 1 +# 56 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 1 +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" 2 +# 2907 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" 1 +# 325 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.hpp" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) double __dAtomicAdd(double *address, double val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicAdd_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicAdd_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicAdd_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicAdd_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicAdd_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicAdd_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +float __fAtomicAdd_block(float *address, float val); + +extern __attribute__((device)) __attribute__((device_builtin)) +float __fAtomicAdd_system(float *address, float val); + +extern __attribute__((device)) __attribute__((device_builtin)) +double __dAtomicAdd_block(double *address, double val); + +extern __attribute__((device)) __attribute__((device_builtin)) +double __dAtomicAdd_system(double *address, double val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicExch_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicExch_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicExch_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicExch_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicExch_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicExch_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +float __fAtomicExch_block(float *address, float val); + +extern __attribute__((device)) __attribute__((device_builtin)) +float __fAtomicExch_system(float *address, float val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicMin_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicMin_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __illAtomicMin_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __illAtomicMin_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicMin_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicMin_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicMin_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicMin_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicMax_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicMax_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __illAtomicMax_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __illAtomicMax_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicMax_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicMax_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicMax_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicMax_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicInc_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicInc_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicDec_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicDec_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicCAS_block(int *address, int compare, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicCAS_system(int *address, int compare, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicCAS_block(unsigned int *address, unsigned int compare, + unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicCAS_system(unsigned int *address, unsigned int compare, + unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicCAS_block(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicCAS_system(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicAnd_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicAnd_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicAnd_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicAnd_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicAnd_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicAnd_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicAnd_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicAnd_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicOr_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicOr_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicOr_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicOr_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicOr_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicOr_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicOr_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicOr_system(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicXor_block(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +int __iAtomicXor_system(int *address, int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicXor_block(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +long long __llAtomicXor_system(long long *address, long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicXor_block(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned int __uAtomicXor_system(unsigned int *address, unsigned int val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicXor_block(unsigned long long *address, unsigned long long val); + +extern __attribute__((device)) __attribute__((device_builtin)) +unsigned long long __ullAtomicXor_system(unsigned long long *address, unsigned long long val); +} +# 326 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" 2 +# 2908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" 1 +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) void __threadfence_system(void); +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rn(double x, double y); +# 139 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rz(double x, double y); +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_ru(double x, double y); +# 179 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rd(double x, double y); +# 194 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rn(double x); +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rz(double x); +# 224 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_ru(double x); +# 239 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rd(double x); +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rn(double x); +# 269 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rz(double x); +# 284 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_ru(double x); +# 299 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rd(double x); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __ballot(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_count(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_and(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_or(int); +extern __attribute__((device)) __attribute__((device_builtin)) long long int clock64(void); +# 314 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rn(float x, float y, float z); +# 323 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rd(float x, float y, float z); +# 332 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_ru(float x, float y, float z); +# 341 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rz(float x, float y, float z); +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 407 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 451 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 539 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 558 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 577 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 596 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 615 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 634 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 653 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 672 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 691 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 709 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 727 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 745 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 763 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 772 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 781 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 790 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 799 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 809 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 829 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 839 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 849 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 859 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 879 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 889 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 944 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 962 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 980 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 998 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1007 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1016 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1025 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); + + +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int ballot(bool pred) ; + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) ; + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) ; + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) ; + + + + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) ; + + + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *ptr) ; + + + + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) ; +# 1140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static __inline__ __attribute__((host)) __attribute__((device)) unsigned short __nv_bswap16(unsigned short in); +static __inline__ __attribute__((host)) __attribute__((device)) unsigned int __nv_bswap32(unsigned int in); +static __inline__ __attribute__((host)) __attribute__((device)) unsigned long long __nv_bswap64(unsigned long long in); +# 1152 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.hpp" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.hpp" +static __inline__ __attribute__((device)) unsigned int ballot(bool pred) +{ + return __ballot((int)pred); +} + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) +{ + return __syncthreads_count((int)pred); +} + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) +{ + return (bool)__syncthreads_and((int)pred); +} + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) +{ + return (bool)__syncthreads_or((int)pred); +} + + +extern "C" { + __attribute__((device)) unsigned __nv_isGlobal_impl(const void *); + __attribute__((device)) unsigned __nv_isShared_impl(const void *); + __attribute__((device)) unsigned __nv_isConstant_impl(const void *); + __attribute__((device)) unsigned __nv_isLocal_impl(const void *); + __attribute__((device)) unsigned __nv_isGridConstant_impl(const void *); +} + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) +{ + return __nv_isGlobal_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) +{ + return __nv_isShared_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) +{ + return __nv_isConstant_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) +{ + return __nv_isLocal_impl(ptr); +} +# 133 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.hpp" +extern "C" { + __attribute__((device)) size_t __nv_cvta_generic_to_global_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_shared_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_constant_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_local_impl(const void *); + __attribute__((device)) void * __nv_cvta_global_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_shared_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_constant_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_local_to_generic_impl(size_t); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *p) +{ + return __nv_cvta_generic_to_global_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *p) +{ + return __nv_cvta_generic_to_shared_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *p) +{ + return __nv_cvta_generic_to_constant_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *p) +{ + return __nv_cvta_generic_to_local_impl(p); +} + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) +{ + return __nv_cvta_global_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) +{ + return __nv_cvta_shared_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) +{ + return __nv_cvta_constant_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) +{ + return __nv_cvta_local_to_generic_impl(rawbits); +} +# 217 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.hpp" +extern "C" { + __attribute__((device)) unsigned short __nv_bswap16_impl(unsigned short); + __attribute__((device)) unsigned int __nv_bswap32_impl(unsigned int); + __attribute__((device)) unsigned long long __nv_bswap64_impl(unsigned long long); +} + +static __inline__ __attribute__((host)) __attribute__((device)) unsigned short __nv_bswap16(unsigned short in) { + return __nv_bswap16_impl(in); +} + +static __inline__ __attribute__((host)) __attribute__((device)) unsigned int __nv_bswap32(unsigned int in) { + return __nv_bswap32_impl(in); +} + +static __inline__ __attribute__((host)) __attribute__((device)) unsigned long long __nv_bswap64(unsigned long long in) { + return __nv_bswap64_impl(in); +} +# 1153 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" 2 +# 2909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" 1 +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +static __attribute__((device)) __inline__ unsigned __fns(unsigned mask, unsigned base, int offset) ; +static __attribute__((device)) __inline__ void __barrier_sync(unsigned id) ; +static __attribute__((device)) __inline__ void __barrier_sync_count(unsigned id, unsigned cnt) ; +static __attribute__((device)) __inline__ void __syncwarp(unsigned mask=0xFFFFFFFF) ; +static __attribute__((device)) __inline__ int __all_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ int __any_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ int __uni_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ unsigned __ballot_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ unsigned __activemask() ; +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl(int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl(unsigned int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_up(int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_up(unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_down(int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_down(unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_xor(int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_xor(unsigned int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl(float var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_up(float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_down(float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_xor(float var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width=32) ; + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl(unsigned long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl(long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_up(long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_down(long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_xor(long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl(double var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_up(double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_down(double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_xor(double var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width=32) ; + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl(long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl(unsigned long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_up(long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_up(unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_down(long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_down(unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_xor(long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_xor(unsigned long var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width=32) ; +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp" +extern "C" +{ +} +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp" +static __attribute__((device)) __inline__ +unsigned __fns(unsigned mask, unsigned base, int offset) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __nvvm_fns(unsigned int mask, unsigned int base, int offset); + return __nvvm_fns(mask, base, offset); +} + +static __attribute__((device)) __inline__ +void __barrier_sync(unsigned id) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_barrier_sync(unsigned id); + return __nvvm_barrier_sync(id); +} + +static __attribute__((device)) __inline__ +void __barrier_sync_count(unsigned id, unsigned cnt) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_barrier_sync_cnt(unsigned id, unsigned cnt); + return __nvvm_barrier_sync_cnt(id, cnt); +} + +static __attribute__((device)) __inline__ +void __syncwarp(unsigned mask) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_bar_warp_sync(unsigned mask); + return __nvvm_bar_warp_sync(mask); +} + +static __attribute__((device)) __inline__ +int __all_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_all_sync(unsigned int mask, int pred); + return __nvvm_vote_all_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +int __any_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_any_sync(unsigned int mask, int pred); + return __nvvm_vote_any_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +int __uni_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_uni_sync(unsigned int mask, int pred); + return __nvvm_vote_uni_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +unsigned __ballot_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __nvvm_vote_ballot_sync(unsigned int mask, int pred); + return __nvvm_vote_ballot_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +unsigned __activemask() { + unsigned ret; + asm volatile ("activemask.b32 %0;" : "=r"(ret)); + return ret; +} + + + + +static __attribute__((device)) __inline__ int __shfl(int var, int srcLane, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.idx.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(srcLane), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl(unsigned int var, int srcLane, int width) { + return (unsigned int) __shfl((int)var, srcLane, width); +} + +static __attribute__((device)) __inline__ int __shfl_up(int var, unsigned int delta, int width) { + int ret; + int c = (32 -width) << 8; + asm volatile ("shfl.up.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_up(unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_up((int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_down(int var, unsigned int delta, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.down.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_down(unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_down((int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_xor(int var, int laneMask, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.bfly.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(laneMask), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_xor(unsigned int var, int laneMask, int width) { + return (unsigned int) __shfl_xor((int)var, laneMask, width); +} + +static __attribute__((device)) __inline__ float __shfl(float var, int srcLane, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.idx.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(srcLane), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_up(float var, unsigned int delta, int width) { + float ret; + int c; + c = (32 -width) << 8; + asm volatile ("shfl.up.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_down(float var, unsigned int delta, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.down.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_xor(float var, int laneMask, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.bfly.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(laneMask), "r"(c)); + return ret; +} + + + +static __attribute__((device)) __inline__ long long __shfl(long long var, int srcLane, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl(hi, srcLane, width); + lo = __shfl(lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl(unsigned long long var, int srcLane, int width) { + return (unsigned long long) __shfl((long long) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long long __shfl_up(long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_up(hi, delta, width); + lo = __shfl_up(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_up((long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_down(long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_down(hi, delta, width); + lo = __shfl_down(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_down((long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_xor(long long var, int laneMask, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_xor(hi, laneMask, width); + lo = __shfl_xor(lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width) { + return (unsigned long long) __shfl_xor((long long) var, laneMask, width); +} + +static __attribute__((device)) __inline__ double __shfl(double var, int srcLane, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl(hi, srcLane, width); + lo = __shfl(lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_up(double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_up(hi, delta, width); + lo = __shfl_up(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_down(double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_down(hi, delta, width); + lo = __shfl_down(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_xor(double var, int laneMask, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_xor(hi, laneMask, width); + lo = __shfl_xor(lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ long __shfl(long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl((long long) var, srcLane, width) : + __shfl((int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl(unsigned long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl((unsigned long long) var, srcLane, width) : + __shfl((unsigned int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long __shfl_up(long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up((long long) var, delta, width) : + __shfl_up((int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_up(unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up((unsigned long long) var, delta, width) : + __shfl_up((unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_down(long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down((long long) var, delta, width) : + __shfl_down((int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_down(unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down((unsigned long long) var, delta, width) : + __shfl_down((unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_xor(long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor((long long) var, laneMask, width) : + __shfl_xor((int) var, laneMask, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_xor(unsigned long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor((unsigned long long) var, laneMask, width) : + __shfl_xor((unsigned int) var, laneMask, width); +} +# 369 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp" +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_idx_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_idx_sync(mask, var, srcLane, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width) { + return (unsigned int) __shfl_sync(mask, (int)var, srcLane, width); +} + +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_up_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = (32 -width) << 8; + ret = __nvvm_shfl_up_sync(mask, var, delta, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_up_sync(mask, (int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_down_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_down_sync(mask, var, delta, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_down_sync(mask, (int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_bfly_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_bfly_sync(mask, var, laneMask, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width) { + return (unsigned int) __shfl_xor_sync(mask, (int)var, laneMask, width); +} + +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_idx_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_idx_sync(mask, __float_as_int(var), srcLane, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_up_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = (32 -width) << 8; + ret = __nvvm_shfl_up_sync(mask, __float_as_int(var), delta, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_down_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_down_sync(mask, __float_as_int(var), delta, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_bfly_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_bfly_sync(mask, __float_as_int(var), laneMask, c); + return __int_as_float(ret); +} + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_sync(mask, hi, srcLane, width); + lo = __shfl_sync(mask, lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width) { + return (unsigned long long) __shfl_sync(mask, (long long) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_up_sync(mask, hi, delta, width); + lo = __shfl_up_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_up_sync(mask, (long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_down_sync(mask, hi, delta, width); + lo = __shfl_down_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_down_sync(mask, (long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_xor_sync(mask, hi, laneMask, width); + lo = __shfl_xor_sync(mask, lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width) { + return (unsigned long long) __shfl_xor_sync(mask, (long long) var, laneMask, width); +} + +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_sync(mask, hi, srcLane, width); + lo = __shfl_sync(mask, lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_up_sync(mask, hi, delta, width); + lo = __shfl_up_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_down_sync(mask, hi, delta, width); + lo = __shfl_down_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_xor_sync(mask, hi, laneMask, width); + lo = __shfl_xor_sync(mask, lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_sync(mask, (long long) var, srcLane, width) : + __shfl_sync(mask, (int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_sync(mask, (unsigned long long) var, srcLane, width) : + __shfl_sync(mask, (unsigned int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up_sync(mask, (long long) var, delta, width) : + __shfl_up_sync(mask, (int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up_sync(mask, (unsigned long long) var, delta, width) : + __shfl_up_sync(mask, (unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down_sync(mask, (long long) var, delta, width) : + __shfl_down_sync(mask, (int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down_sync(mask, (unsigned long long) var, delta, width) : + __shfl_down_sync(mask, (unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor_sync(mask, (long long) var, laneMask, width) : + __shfl_xor_sync(mask, (int) var, laneMask, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor_sync(mask, (unsigned long long) var, laneMask, width) : + __shfl_xor_sync(mask, (unsigned int) var, laneMask, width); +} +# 234 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" 2 +# 2910 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" 1 +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ long __ldg(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldg(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldg(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldg(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) ; + + + + +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldca(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldca(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldca(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) ; +# 465 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 490 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 502 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 512 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" +extern "C" +{ + + +} +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" +static __attribute__((device)) __inline__ long __ldg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.nc.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.nc.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.nc.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.nc.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.nc.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.nc.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.nc.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.nc.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.nc.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.nc.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.nc.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.nc.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.nc.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.nc.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) { float ret; asm volatile ("ld.global.nc.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldg(const double *ptr) { double ret; asm volatile ("ld.global.nc.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) { float2 ret; asm volatile ("ld.global.nc.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) { float4 ret; asm volatile ("ld.global.nc.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) { double2 ret; asm volatile ("ld.global.nc.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.cg.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.cg.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.cg.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cg.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.cg.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.cg.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.cg.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.cg.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.cg.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.cg.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.cg.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.cg.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.cg.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cg.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.cg.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.cg.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.cg.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.cg.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.cg.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.cg.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.cg.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) { float ret; asm volatile ("ld.global.cg.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) { double ret; asm volatile ("ld.global.cg.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) { float2 ret; asm volatile ("ld.global.cg.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) { float4 ret; asm volatile ("ld.global.cg.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) { double2 ret; asm volatile ("ld.global.cg.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) { unsigned long ret; asm volatile ("ld.global.ca.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.ca.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldca(const short *ptr) { unsigned short ret; asm volatile ("ld.global.ca.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldca(const int *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.ca.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.ca.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.ca.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) { short2 ret; asm volatile ("ld.global.ca.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) { short4 ret; asm volatile ("ld.global.ca.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) { int2 ret; asm volatile ("ld.global.ca.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) { int4 ret; asm volatile ("ld.global.ca.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.ca.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.ca.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.ca.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.ca.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.ca.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.ca.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.ca.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.ca.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.ca.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.ca.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.ca.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) { float ret; asm volatile ("ld.global.ca.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldca(const double *ptr) { double ret; asm volatile ("ld.global.ca.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) { float2 ret; asm volatile ("ld.global.ca.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) { float4 ret; asm volatile ("ld.global.ca.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) { double2 ret; asm volatile ("ld.global.ca.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) { unsigned long ret; asm volatile ("ld.global.cs.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.cs.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) { unsigned short ret; asm volatile ("ld.global.cs.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cs.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.cs.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.cs.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) { short2 ret; asm volatile ("ld.global.cs.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) { short4 ret; asm volatile ("ld.global.cs.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) { int2 ret; asm volatile ("ld.global.cs.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) { int4 ret; asm volatile ("ld.global.cs.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.cs.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.cs.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.cs.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cs.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.cs.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.cs.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.cs.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.cs.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.cs.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.cs.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.cs.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) { float ret; asm volatile ("ld.global.cs.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) { double ret; asm volatile ("ld.global.cs.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) { float2 ret; asm volatile ("ld.global.cs.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) { float4 ret; asm volatile ("ld.global.cs.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) { double2 ret; asm volatile ("ld.global.cs.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) { unsigned long ret; asm ("ld.global.lu.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) { unsigned long ret; asm ("ld.global.lu.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) { unsigned int ret; asm ("ld.global.lu.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) { unsigned int ret; asm ("ld.global.lu.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) { unsigned short ret; asm ("ld.global.lu.s16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return (short)ret; } +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) { unsigned int ret; asm ("ld.global.lu.s32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) { unsigned long long ret; asm ("ld.global.lu.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) { char2 ret; int2 tmp; asm ("ld.global.lu.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) { char4 ret; int4 tmp; asm ("ld.global.lu.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) { short2 ret; asm ("ld.global.lu.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) { short4 ret; asm ("ld.global.lu.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) { int2 ret; asm ("ld.global.lu.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) { int4 ret; asm ("ld.global.lu.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) { longlong2 ret; asm ("ld.global.lu.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) { unsigned int ret; asm ("ld.global.lu.u8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) { unsigned short ret; asm ("ld.global.lu.u16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) { unsigned int ret; asm ("ld.global.lu.u32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) { unsigned long long ret; asm ("ld.global.lu.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm ("ld.global.lu.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm ("ld.global.lu.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) { ushort2 ret; asm ("ld.global.lu.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) { ushort4 ret; asm ("ld.global.lu.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) { uint2 ret; asm ("ld.global.lu.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) { uint4 ret; asm ("ld.global.lu.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) { ulonglong2 ret; asm ("ld.global.lu.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) { float ret; asm ("ld.global.lu.f32 %0, [%1];" : "=f"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) { double ret; asm ("ld.global.lu.f64 %0, [%1];" : "=d"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) { float2 ret; asm ("ld.global.lu.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) { float4 ret; asm ("ld.global.lu.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) { double2 ret; asm ("ld.global.lu.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr) : "memory"); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) { unsigned long ret; asm ("ld.global.cv.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) { unsigned long ret; asm ("ld.global.cv.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) { unsigned int ret; asm ("ld.global.cv.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) { unsigned int ret; asm ("ld.global.cv.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) { unsigned short ret; asm ("ld.global.cv.s16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) { unsigned int ret; asm ("ld.global.cv.s32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) { unsigned long long ret; asm ("ld.global.cv.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) { char2 ret; int2 tmp; asm ("ld.global.cv.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) { char4 ret; int4 tmp; asm ("ld.global.cv.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) { short2 ret; asm ("ld.global.cv.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) { short4 ret; asm ("ld.global.cv.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) { int2 ret; asm ("ld.global.cv.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) { int4 ret; asm ("ld.global.cv.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) { longlong2 ret; asm ("ld.global.cv.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) { unsigned int ret; asm ("ld.global.cv.u8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) { unsigned short ret; asm ("ld.global.cv.u16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) { unsigned int ret; asm ("ld.global.cv.u32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) { unsigned long long ret; asm ("ld.global.cv.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm ("ld.global.cv.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm ("ld.global.cv.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) { ushort2 ret; asm ("ld.global.cv.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) { ushort4 ret; asm ("ld.global.cv.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) { uint2 ret; asm ("ld.global.cv.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) { uint4 ret; asm ("ld.global.cv.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) { ulonglong2 ret; asm ("ld.global.cv.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) { float ret; asm ("ld.global.cv.f32 %0, [%1];" : "=f"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) { double ret; asm ("ld.global.cv.f64 %0, [%1];" : "=d"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) { float2 ret; asm ("ld.global.cv.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) { float4 ret; asm ("ld.global.cv.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) { double2 ret; asm ("ld.global.cv.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr) : "memory"); return ret; } + + + + + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) { asm ("st.global.wb.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) { asm ("st.global.wb.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) { asm ("st.global.wb.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) { asm ("st.global.wb.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) { asm ("st.global.wb.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) { asm ("st.global.wb.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) { asm ("st.global.wb.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.wb.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wb.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) { asm ("st.global.wb.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) { asm ("st.global.wb.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) { asm ("st.global.wb.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) { asm ("st.global.wb.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) { asm ("st.global.wb.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) { asm ("st.global.wb.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) { asm ("st.global.wb.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) { asm ("st.global.wb.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) { asm ("st.global.wb.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.wb.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wb.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) { asm ("st.global.wb.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) { asm ("st.global.wb.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) { asm ("st.global.wb.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) { asm ("st.global.wb.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.wb.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) { asm ("st.global.wb.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) { asm ("st.global.wb.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) { asm ("st.global.wb.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) { asm ("st.global.wb.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) { asm ("st.global.wb.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) { asm ("st.global.cg.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) { asm ("st.global.cg.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) { asm ("st.global.cg.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) { asm ("st.global.cg.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) { asm ("st.global.cg.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) { asm ("st.global.cg.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) { asm ("st.global.cg.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.cg.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cg.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) { asm ("st.global.cg.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) { asm ("st.global.cg.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) { asm ("st.global.cg.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) { asm ("st.global.cg.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) { asm ("st.global.cg.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) { asm ("st.global.cg.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) { asm ("st.global.cg.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) { asm ("st.global.cg.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) { asm ("st.global.cg.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.cg.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cg.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) { asm ("st.global.cg.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) { asm ("st.global.cg.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) { asm ("st.global.cg.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) { asm ("st.global.cg.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.cg.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) { asm ("st.global.cg.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) { asm ("st.global.cg.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) { asm ("st.global.cg.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) { asm ("st.global.cg.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) { asm ("st.global.cg.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) { asm ("st.global.cs.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) { asm ("st.global.cs.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) { asm ("st.global.cs.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) { asm ("st.global.cs.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) { asm ("st.global.cs.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) { asm ("st.global.cs.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) { asm ("st.global.cs.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.cs.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cs.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) { asm ("st.global.cs.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) { asm ("st.global.cs.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) { asm ("st.global.cs.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) { asm ("st.global.cs.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) { asm ("st.global.cs.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) { asm ("st.global.cs.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) { asm ("st.global.cs.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) { asm ("st.global.cs.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) { asm ("st.global.cs.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.cs.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cs.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) { asm ("st.global.cs.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) { asm ("st.global.cs.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) { asm ("st.global.cs.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) { asm ("st.global.cs.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.cs.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) { asm ("st.global.cs.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) { asm ("st.global.cs.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) { asm ("st.global.cs.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) { asm ("st.global.cs.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) { asm ("st.global.cs.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) { asm ("st.global.wt.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) { asm ("st.global.wt.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) { asm ("st.global.wt.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) { asm ("st.global.wt.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) { asm ("st.global.wt.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) { asm ("st.global.wt.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) { asm ("st.global.wt.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.wt.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wt.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) { asm ("st.global.wt.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) { asm ("st.global.wt.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) { asm ("st.global.wt.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) { asm ("st.global.wt.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) { asm ("st.global.wt.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) { asm ("st.global.wt.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) { asm ("st.global.wt.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) { asm ("st.global.wt.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) { asm ("st.global.wt.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.wt.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wt.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) { asm ("st.global.wt.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) { asm ("st.global.wt.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) { asm ("st.global.wt.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) { asm ("st.global.wt.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.wt.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) { asm ("st.global.wt.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) { asm ("st.global.wt.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) { asm ("st.global.wt.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) { asm ("st.global.wt.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) { asm ("st.global.wt.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } +# 553 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.hpp" +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.l.wrap.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.l.clamp.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} + + +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.r.clamp.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +# 513 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" 2 +# 2911 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_intrinsics.h" 1 +# 2912 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" 1 +# 235 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.hpp" 1 +# 236 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" 2 +# 2913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 1 +# 128 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.hpp" 1 +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 2 +# 2914 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 1 +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.hpp" 1 +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 2 +# 2915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 1 +# 273 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.hpp" 1 +# 274 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 2 +# 2916 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 1 +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.hpp" 1 +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 2 +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" 1 +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template struct __nv_itex_trait { }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +{ + __nv_tex_surf_handler("__itex1Dfetch", ptr, obj, x); +} + +template +static __attribute__((device)) T tex1Dfetch(cudaTextureObject_t texObject, int x) +{ + T ret; + tex1Dfetch(&ret, texObject, x); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1D(T *ptr, cudaTextureObject_t obj, float x) +{ + __nv_tex_surf_handler("__itex1D", ptr, obj, x); +} + + +template +static __attribute__((device)) T tex1D(cudaTextureObject_t texObject, float x) +{ + T ret; + tex1D(&ret, texObject, x); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +{ + __nv_tex_surf_handler("__itex2D", ptr, obj, x, y); +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y) +{ + T ret; + tex2D(&ret, texObject, x, y); + return ret; +} +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + __nv_tex_surf_handler("__itex3D", ptr, obj, x, y, z); +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z) +{ + T ret; + tex3D(&ret, texObject, x, y, z); + return ret; +} +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +{ + __nv_tex_surf_handler("__itex1DLayered", ptr, obj, x, layer); +} + +template +static __attribute__((device)) T tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +{ + T ret; + tex1DLayered(&ret, texObject, x, layer); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +{ + __nv_tex_surf_handler("__itex2DLayered", ptr, obj, x, y, layer); +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +{ + T ret; + tex2DLayered(&ret, texObject, x, y, layer); + return ret; +} +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + __nv_tex_surf_handler("__itexCubemap", ptr, obj, x, y, z); +} + + +template +static __attribute__((device)) T texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +{ + T ret; + texCubemap(&ret, texObject, x, y, z); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +{ + __nv_tex_surf_handler("__itexCubemapLayered", ptr, obj, x, y, z, layer); +} + +template +static __attribute__((device)) T texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +{ + T ret; + texCubemapLayered(&ret, texObject, x, y, z, layer); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +{ + __nv_tex_surf_handler("__itex2Dgather", ptr, obj, x, y, comp); +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +{ + T ret; + tex2Dgather(&ret, to, x, y, comp); + return ret; +} +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +{ + __nv_tex_surf_handler("__itex1DLod", ptr, obj, x, level); +} + +template +static __attribute__((device)) T tex1DLod(cudaTextureObject_t texObject, float x, float level) +{ + T ret; + tex1DLod(&ret, texObject, x, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +{ + __nv_tex_surf_handler("__itex2DLod", ptr, obj, x, y, level); +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +{ + T ret; + tex2DLod(&ret, texObject, x, y, level); + return ret; +} +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + __nv_tex_surf_handler("__itex3DLod", ptr, obj, x, y, z, level); +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + T ret; + tex3DLod(&ret, texObject, x, y, z, level); + return ret; +} +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +{ + __nv_tex_surf_handler("__itex1DLayeredLod", ptr, obj, x, layer, level); +} + +template +static __attribute__((device)) T tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +{ + T ret; + tex1DLayeredLod(&ret, texObject, x, layer, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +{ + __nv_tex_surf_handler("__itex2DLayeredLod", ptr, obj, x, y, layer, level); +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +{ + T ret; + tex2DLayeredLod(&ret, texObject, x, y, layer, level); + return ret; +} +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + __nv_tex_surf_handler("__itexCubemapLod", ptr, obj, x, y, z, level); +} + +template +static __attribute__((device)) T texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + T ret; + texCubemapLod(&ret, texObject, x, y, z, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itexCubemapGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + T ret; + texCubemapGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +{ + __nv_tex_surf_handler("__itexCubemapLayeredLod", ptr, obj, x, y, z, layer, level); +} + +template +static __attribute__((device)) T texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +{ + T ret; + texCubemapLayeredLod(&ret, texObject, x, y, z, layer, level); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +{ + __nv_tex_surf_handler("__itex1DGrad", ptr, obj, x, dPdx, dPdy); +} + +template +static __attribute__((device)) T tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +{ + T ret; + tex1DGrad(&ret, texObject, x, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +{ + __nv_tex_surf_handler("__itex2DGrad_v2", ptr, obj, x, y, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +{ + T ret; + tex2DGrad(&ret, texObject, x, y, dPdx, dPdy); + return ret; +} +# 539 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itex3DGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + T ret; + tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; +} +# 573 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +{ + __nv_tex_surf_handler("__itex1DLayeredGrad", ptr, obj, x, layer, dPdx, dPdy); +} + +template +static __attribute__((device)) T tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +{ + T ret; + tex1DLayeredGrad(&ret, texObject, x, layer, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + __nv_tex_surf_handler("__itex2DLayeredGrad_v2", ptr, obj, x, y, layer, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + T ret; + tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy); + return ret; +} +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itexCubemapLayeredGrad_v2", ptr, obj, x, y, z, layer, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + T ret; + texCubemapLayeredGrad(&ret, texObject, x, y, z, layer, dPdx, dPdy); + return ret; +} +# 2919 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" 1 +# 58 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template struct __nv_isurf_trait { }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1Dread", ptr, obj, x, mode); +} + +template +static __attribute__((device)) T surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf1Dread(&ret, surfObject, x, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2Dread", ptr, obj, x, y, mode); +} + +template +static __attribute__((device)) T surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf2Dread(&ret, surfObject, x, y, boundaryMode); + return ret; +} + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf3Dread", ptr, obj, x, y, z, mode); +} + +template +static __attribute__((device)) T surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf3Dread(&ret, surfObject, x, y, z, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1DLayeredread", ptr, obj, x, layer, mode); +} + +template +static __attribute__((device)) T surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf1DLayeredread(&ret, surfObject, x, layer, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2DLayeredread", ptr, obj, x, y, layer, mode); +} + +template +static __attribute__((device)) T surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf2DLayeredread(&ret, surfObject, x, y, layer, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapread", ptr, obj, x, y, face, mode); +} + +template +static __attribute__((device)) T surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surfCubemapread(&ret, surfObject, x, y, face, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapLayeredread", ptr, obj, x, y, layerface, mode); +} + +template +static __attribute__((device)) T surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surfCubemapLayeredread(&ret, surfObject, x, y, layerface, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1Dwrite_v2", &val, obj, x, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2Dwrite_v2", &val, obj, x, y, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf3Dwrite_v2", &val, obj, x, y, z, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1DLayeredwrite_v2", &val, obj, x, layer, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2DLayeredwrite_v2", &val, obj, x, y, layer, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapwrite_v2", &val, obj, x, y, face, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapLayeredwrite_v2", &val, obj, x, y, layerface, mode); +} +# 2920 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/cudacc_ext.h" 1 +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + + +extern "C" __attribute__((host)) __attribute__((device)) unsigned __cudaPushCallConfiguration(dim3 gridDim, + dim3 blockDim, + size_t sharedMem = 0, + struct CUstream_st *stream = 0); +# 2969 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +enum { + __NV_ATOMIC_RELAXED, + __NV_ATOMIC_CONSUME, + __NV_ATOMIC_ACQUIRE, + __NV_ATOMIC_RELEASE, + __NV_ATOMIC_ACQ_REL, + __NV_ATOMIC_SEQ_CST +}; + +enum { + __NV_THREAD_SCOPE_THREAD, + __NV_THREAD_SCOPE_BLOCK, + __NV_THREAD_SCOPE_CLUSTER, + __NV_THREAD_SCOPE_DEVICE, + __NV_THREAD_SCOPE_SYSTEM +}; +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" 1 +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" +extern "C" { + + +uint3 __attribute__((device_builtin)) extern const threadIdx; +uint3 __attribute__((device_builtin)) extern const blockIdx; +dim3 __attribute__((device_builtin)) extern const blockDim; +dim3 __attribute__((device_builtin)) extern const gridDim; +int __attribute__((device_builtin)) extern const warpSize; + + + + +} +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 1 3 +# 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 + +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace rel_ops + { +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 99 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + } + + +} +# 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + template + class initializer_list + { + public: + typedef _E value_type; + typedef const _E& reference; + typedef const _E& const_reference; + typedef size_t size_type; + typedef const _E* iterator; + typedef const _E* const_iterator; + + private: + iterator _M_array; + size_type _M_len; + + + constexpr initializer_list(const_iterator __a, size_type __l) + : _M_array(__a), _M_len(__l) { } + + public: + constexpr initializer_list() noexcept + : _M_array(0), _M_len(0) { } + + + constexpr size_type + size() const noexcept { return _M_len; } + + + constexpr const_iterator + begin() const noexcept { return _M_array; } + + + constexpr const_iterator + end() const noexcept { return begin() + size(); } + }; + + + + + + + + template + constexpr const _Tp* + begin(initializer_list<_Tp> __ils) noexcept + { return __ils.begin(); } + + + + + + + + template + constexpr const _Tp* + end(initializer_list<_Tp> __ils) noexcept + { return __ils.end(); } +} +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 +# 96 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 97 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template + + inline _Tp + exchange(_Tp& __obj, _Up&& __new_val) + noexcept(__and_, + is_nothrow_assignable<_Tp&, _Up>>::value) + { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } + + + + template + [[nodiscard]] + constexpr add_const_t<_Tp>& + as_const(_Tp& __t) noexcept + { return __t; } + + template + void as_const(const _Tp&&) = delete; +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 + +} +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" + +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernel( + T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + void (*kernel)(ExpTypes...), + ActTypes &&... args +) +{ + return [&](ExpTypes... coercedArgs){ + void *pArgs[] = { &coercedArgs... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); + }(std::forward(args)...); +} +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + const cudaKernel_t kernel, + ActTypes &&... args +) +{ + void *pArgs[] = { &args... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); +} +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel( + T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 454 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaEventCreate( + cudaEvent_t *event, + unsigned int flags +) +{ + return ::cudaEventCreateWithFlags(event, flags); +} +# 498 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaGraphInstantiate( + cudaGraphExec_t *pGraphExec, + cudaGraph_t graph, + cudaGraphNode_t *pErrorNode, + char *pLogBuffer, + size_t bufferSize +) +{ + (void)pErrorNode; + (void)pLogBuffer; + (void)bufferSize; + return ::cudaGraphInstantiate(pGraphExec, graph, 0); +} +# 569 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + void **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc(ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostAlloc( + T **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostGetDevicePointer( + T **pDevice, + void *pHost, + unsigned int flags +) +{ + return ::cudaHostGetDevicePointer((void**)(void*)pDevice, pHost, flags); +} +# 698 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocManaged( + T **devPtr, + size_t size, + unsigned int flags = 0x01 +) +{ + return ::cudaMallocManaged((void**)(void*)devPtr, size, flags); +} +# 716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +cudaError_t cudaMemAdvise( + T *devPtr, + size_t count, + enum cudaMemoryAdvise advice, + struct cudaMemLocation location +) +{ + return ::cudaMemAdvise_v2((const void *)devPtr, count, advice, location); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMemPrefetchAsync( + T *devPtr, + size_t count, + struct cudaMemLocation location, + unsigned int flags, + cudaStream_t stream = 0 +) +{ + return ::cudaMemPrefetchAsync_v2((const void *)devPtr, count, location, flags, stream); +} +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaStreamAttachMemAsync( + cudaStream_t stream, + T *devPtr, + size_t length = 0, + unsigned int flags = 0x04 +) +{ + return ::cudaStreamAttachMemAsync(stream, (void*)devPtr, length, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMalloc( + T **devPtr, + size_t size +) +{ + return ::cudaMalloc((void**)(void*)devPtr, size); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + T **ptr, + size_t size, + unsigned int flags = 0 +) +{ + return cudaMallocHost((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocPitch( + T **devPtr, + size_t *pitch, + size_t width, + size_t height +) +{ + return ::cudaMallocPitch((void**)(void*)devPtr, pitch, width, height); +} +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + void **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaStream_t stream +) +{ + return ::cudaMallocAsync((void**)(void*)ptr, size, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocFromPoolAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyBatchAsync( + T **dsts, U **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes *attrs, + size_t *attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t hStream +) +{ + return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, attrs, attrsIdxs, numAttrs, failIdx, hStream); +} +# 938 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyBatchAsync( + T **dsts, U **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes attr, size_t *failIdx, cudaStream_t hStream +) +{ + size_t attrsIdxs = 0; + return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, &attr, &attrsIdxs, 1, failIdx, hStream); +} +# 984 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbol( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice +) +{ + return ::cudaMemcpyToSymbol((const void*)&symbol, src, count, offset, kind); +} +# 1038 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyToSymbolAsync((const void*)&symbol, src, count, offset, kind, stream); +} +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbol( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost +) +{ + return ::cudaMemcpyFromSymbol(dst, (const void*)&symbol, count, offset, kind); +} +# 1140 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyFromSymbolAsync(dst, (const void*)&symbol, count, offset, kind, stream); +} +# 1209 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void*)&symbol, src, count, offset, kind); +} +# 1280 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void*)&symbol, count, offset, kind); +} +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void*)&symbol, src, count, offset, kind); +} +# 1379 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void*)&symbol, count, offset, kind); +} +# 1437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void*)&symbol, src, count, offset, kind); +} +# 1496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void*)&symbol, count, offset, kind); +} + + +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, enum cudaGraphExecUpdateResult *updateResult_out) +{ + cudaGraphExecUpdateResultInfo resultInfo; + cudaError_t status = cudaGraphExecUpdate(hGraphExec, hGraph, &resultInfo); + if (hErrorNode_out) { + *hErrorNode_out = resultInfo.errorNode; + } + if (updateResult_out) { + *updateResult_out = resultInfo.result; + } + return status; +} +# 1549 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + unsigned int flags) +{ + return ::cudaUserObjectCreate( + object_out, + objectToWrap, + [](void *vpObj) { delete reinterpret_cast(vpObj); }, + initialRefcount, + flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + cudaUserObjectFlags flags) +{ + return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned int)flags); +} +# 1599 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolAddress( + void **devPtr, + const T &symbol +) +{ + return ::cudaGetSymbolAddress(devPtr, (const void*)&symbol); +} +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolSize( + size_t *size, + const T &symbol +) +{ + return ::cudaGetSymbolSize(size, (const void*)&symbol); +} +# 1683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetCacheConfig( + T *func, + enum cudaFuncCache cacheConfig +) +{ + return ::cudaFuncSetCacheConfig((const void*)func, cacheConfig); +} + +template +static __inline__ +__attribute__((deprecated)) +__attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig( + T *func, + enum cudaSharedMemConfig config +) +{ + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + + + + return ::cudaFuncSetSharedMemConfig((const void*)func, config); + +#pragma GCC diagnostic pop + +} +# 1743 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, 0x00); +} +# 1796 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize, + unsigned int flags) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, flags); +} + + + + +class __cudaOccupancyB2DHelper { + size_t n; +public: + inline __attribute__((host)) __attribute__((device)) __cudaOccupancyB2DHelper(size_t n_) : n(n_) {} + inline __attribute__((host)) __attribute__((device)) size_t operator()(int) + { + return n; + } +}; +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + cudaError_t status; + + + int device; + struct cudaFuncAttributes attr; + + + int maxThreadsPerMultiProcessor; + int warpSize; + int devMaxThreadsPerBlock; + int multiProcessorCount; + int funcMaxThreadsPerBlock; + int occupancyLimit; + int granularity; + + + int maxBlockSize = 0; + int numBlocks = 0; + int maxOccupancy = 0; + + + int blockSizeToTryAligned; + int blockSizeToTry; + int blockSizeLimitAligned; + int occupancyInBlocks; + int occupancyInThreads; + size_t dynamicSMemSize; + + + + + + if (!minGridSize || !blockSize || !func) { + return cudaErrorInvalidValue; + } + + + + + + status = ::cudaGetDevice(&device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &maxThreadsPerMultiProcessor, + cudaDevAttrMaxThreadsPerMultiProcessor, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &warpSize, + cudaDevAttrWarpSize, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &devMaxThreadsPerBlock, + cudaDevAttrMaxThreadsPerBlock, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &multiProcessorCount, + cudaDevAttrMultiProcessorCount, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaFuncGetAttributes(&attr, func); + if (status != cudaSuccess) { + return status; + } + + funcMaxThreadsPerBlock = attr.maxThreadsPerBlock; + + + + + + occupancyLimit = maxThreadsPerMultiProcessor; + granularity = warpSize; + + if (blockSizeLimit == 0) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (devMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (funcMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = funcMaxThreadsPerBlock; + } + + blockSizeLimitAligned = ((blockSizeLimit + (granularity - 1)) / granularity) * granularity; + + for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { + + + + if (blockSizeLimit < blockSizeToTryAligned) { + blockSizeToTry = blockSizeLimit; + } else { + blockSizeToTry = blockSizeToTryAligned; + } + + dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); + + status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + &occupancyInBlocks, + func, + blockSizeToTry, + dynamicSMemSize, + flags); + + if (status != cudaSuccess) { + return status; + } + + occupancyInThreads = blockSizeToTry * occupancyInBlocks; + + if (occupancyInThreads > maxOccupancy) { + maxBlockSize = blockSizeToTry; + numBlocks = occupancyInBlocks; + maxOccupancy = occupancyInThreads; + } + + + + if (occupancyLimit == maxOccupancy) { + break; + } + } + + + + + + + + *minGridSize = numBlocks * multiProcessorCount; + *blockSize = maxBlockSize; + + return status; +} +# 2062 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMem( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0x00); +} +# 2108 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSize( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, 0x00); +} +# 2147 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock( + size_t *dynamicSmemSize, + T *func, + int numBlocks, + int blockSize) +{ + return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void*)func, numBlocks, blockSize); +} +# 2206 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeWithFlags( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, flags); +} +# 2251 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxPotentialClusterSize( + int *clusterSize, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void*)func, config); +} +# 2295 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveClusters( + int *numClusters, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxActiveClusters(numClusters, (const void*)func, config); +} +# 2336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetAttributes( + struct cudaFuncAttributes *attr, + T *entry +) +{ + return ::cudaFuncGetAttributes(attr, (const void*)entry); +} +# 2402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetAttribute( + T *func, + enum cudaFuncAttribute attr, + int value +) +{ + return ::cudaFuncSetAttribute((const void*)func, attr, value); +} +# 2435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetName( + const char **name, + T *func +) +{ + return ::cudaFuncGetName(name, (const void *)func); +} +# 2458 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetKernel( + cudaKernel_t *kernelPtr, + T *func +) +{ + return ::cudaGetKernel(kernelPtr, (const void *)func); +} +# 2496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetGlobal(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +{ + return ::cudaLibraryGetGlobal((void**)(void*)dptr, bytes, library, name); +} +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetManaged(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +{ + return ::cudaLibraryGetManaged((void**)(void*)dptr, bytes, library, name); +} +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetUnifiedFunction(T **fptr, cudaLibrary_t library, const char *symbol) +{ + return ::cudaLibraryGetUnifiedFunction((void**)(void*)fptr, library, symbol); +} +# 2576 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 0 "" 2 +# 1 "CMakeCUDACompilerId.cu" +# 477 "CMakeCUDACompilerId.cu" +char const* info_compiler = "INFO" ":" "compiler[" "NVIDIA" "]"; + +char const* info_simulate = "INFO" ":" "simulate[" "GNU" "]"; +# 790 "CMakeCUDACompilerId.cu" +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((12) / 10000000)%10)), ('0' + (((12) / 1000000)%10)), ('0' + (((12) / 100000)%10)), ('0' + (((12) / 10000)%10)), ('0' + (((12) / 1000)%10)), ('0' + (((12) / 100)%10)), ('0' + (((12) / 10)%10)), ('0' + ((12) % 10)), + + '.', ('0' + (((8) / 10000000)%10)), ('0' + (((8) / 1000000)%10)), ('0' + (((8) / 100000)%10)), ('0' + (((8) / 10000)%10)), ('0' + (((8) / 1000)%10)), ('0' + (((8) / 100)%10)), ('0' + (((8) / 10)%10)), ('0' + ((8) % 10)), + + '.', ('0' + (((93) / 10000000)%10)), ('0' + (((93) / 1000000)%10)), ('0' + (((93) / 100000)%10)), ('0' + (((93) / 10000)%10)), ('0' + (((93) / 1000)%10)), ('0' + (((93) / 100)%10)), ('0' + (((93) / 10)%10)), ('0' + ((93) % 10)), + + + + + + ']','\0'}; +# 819 "CMakeCUDACompilerId.cu" +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + ('0' + (((14) / 10000000)%10)), ('0' + (((14) / 1000000)%10)), ('0' + (((14) / 100000)%10)), ('0' + (((14) / 10000)%10)), ('0' + (((14) / 1000)%10)), ('0' + (((14) / 100)%10)), ('0' + (((14) / 10)%10)), ('0' + ((14) % 10)), + + '.', ('0' + (((2) / 10000000)%10)), ('0' + (((2) / 1000000)%10)), ('0' + (((2) / 100000)%10)), ('0' + (((2) / 10000)%10)), ('0' + (((2) / 1000)%10)), ('0' + (((2) / 100)%10)), ('0' + (((2) / 10)%10)), ('0' + ((2) % 10)), + + + + + + + + ']','\0'}; + + + + + + +char const* info_platform = "INFO" ":" "platform[" "Linux" "]"; +char const* info_arch = "INFO" ":" "arch[" "]"; + + + + +char const* info_host_compiler = "INFO" ":" "host_compiler[" "GNU" "]"; + + + + +char const info_host_compiler_version[] = { + 'I', 'N', 'F', 'O', ':','h','o','s','t','_', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((14) / 10000000)%10)), ('0' + (((14) / 1000000)%10)), ('0' + (((14) / 100000)%10)), ('0' + (((14) / 10000)%10)), ('0' + (((14) / 1000)%10)), ('0' + (((14) / 100)%10)), ('0' + (((14) / 10)%10)), ('0' + ((14) % 10)), + + '.', ('0' + (((2) / 10000000)%10)), ('0' + (((2) / 1000000)%10)), ('0' + (((2) / 100000)%10)), ('0' + (((2) / 10000)%10)), ('0' + (((2) / 1000)%10)), ('0' + (((2) / 100)%10)), ('0' + (((2) / 10)%10)), ('0' + ((2) % 10)), + + '.', ('0' + (((1) / 10000000)%10)), ('0' + (((1) / 1000000)%10)), ('0' + (((1) / 100000)%10)), ('0' + (((1) / 10000)%10)), ('0' + (((1) / 1000)%10)), ('0' + (((1) / 100)%10)), ('0' + (((1) / 10)%10)), ('0' + ((1) % 10)), + + + + + + ']','\0'}; +# 882 "CMakeCUDACompilerId.cu" +const char* info_language_standard_default = "INFO" ":" "standard_default[" + + + + + + + + "17" + + + + + + + +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" + + + "ON" + + + +"]"; + + + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + + require += info_version[argc]; + + + require += info_simulate[argc]; + + + require += info_simulate_version[argc]; + + + require += info_host_compiler[argc]; + + + require += info_host_compiler_version[argc]; + + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii new file mode 100644 index 0000000..1a04387 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii @@ -0,0 +1,34363 @@ +# 0 "CMakeCUDACompilerId.cu" +# 0 "" +# 0 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 0 "" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic push + + +#pragma GCC diagnostic ignored "-Wunused-function" +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" 1 +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" +# 1 "/usr/include/features.h" 1 3 4 +# 415 "/usr/include/features.h" 3 4 +# 1 "/usr/include/features-time64.h" 1 3 4 +# 20 "/usr/include/features-time64.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 21 "/usr/include/features-time64.h" 2 3 4 +# 1 "/usr/include/bits/timesize.h" 1 3 4 +# 19 "/usr/include/bits/timesize.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/bits/timesize.h" 2 3 4 +# 22 "/usr/include/features-time64.h" 2 3 4 +# 416 "/usr/include/features.h" 2 3 4 +# 524 "/usr/include/features.h" 3 4 +# 1 "/usr/include/sys/cdefs.h" 1 3 4 +# 730 "/usr/include/sys/cdefs.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 731 "/usr/include/sys/cdefs.h" 2 3 4 +# 1 "/usr/include/bits/long-double.h" 1 3 4 +# 732 "/usr/include/sys/cdefs.h" 2 3 4 +# 525 "/usr/include/features.h" 2 3 4 +# 548 "/usr/include/features.h" 3 4 +# 1 "/usr/include/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/gnu/stubs.h" 3 4 +# 1 "/usr/include/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/gnu/stubs.h" 2 3 4 +# 549 "/usr/include/features.h" 2 3 4 +# 217 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h" 2 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 56 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 1 +# 59 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 64 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" +# 1 "/usr/include/ctype.h" 1 3 4 +# 26 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/types.h" 1 3 4 +# 27 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/bits/types.h" 2 3 4 +# 1 "/usr/include/bits/timesize.h" 1 3 4 +# 19 "/usr/include/bits/timesize.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/bits/timesize.h" 2 3 4 +# 29 "/usr/include/bits/types.h" 2 3 4 + + + +# 31 "/usr/include/bits/types.h" 3 4 +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; + + + + + + +typedef __int8_t __int_least8_t; +typedef __uint8_t __uint_least8_t; +typedef __int16_t __int_least16_t; +typedef __uint16_t __uint_least16_t; +typedef __int32_t __int_least32_t; +typedef __uint32_t __uint_least32_t; +typedef __int64_t __int_least64_t; +typedef __uint64_t __uint_least64_t; + + + +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; + + + + + + + +typedef long int __intmax_t; +typedef unsigned long int __uintmax_t; +# 141 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/typesizes.h" 1 3 4 +# 142 "/usr/include/bits/types.h" 2 3 4 +# 1 "/usr/include/bits/time64.h" 1 3 4 +# 143 "/usr/include/bits/types.h" 2 3 4 + + +typedef unsigned long int __dev_t; +typedef unsigned int __uid_t; +typedef unsigned int __gid_t; +typedef unsigned long int __ino_t; +typedef unsigned long int __ino64_t; +typedef unsigned int __mode_t; +typedef unsigned long int __nlink_t; +typedef long int __off_t; +typedef long int __off64_t; +typedef int __pid_t; +typedef struct { int __val[2]; } __fsid_t; +typedef long int __clock_t; +typedef unsigned long int __rlim_t; +typedef unsigned long int __rlim64_t; +typedef unsigned int __id_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef long int __suseconds_t; +typedef long int __suseconds64_t; + +typedef int __daddr_t; +typedef int __key_t; + + +typedef int __clockid_t; + + +typedef void * __timer_t; + + +typedef long int __blksize_t; + + + + +typedef long int __blkcnt_t; +typedef long int __blkcnt64_t; + + +typedef unsigned long int __fsblkcnt_t; +typedef unsigned long int __fsblkcnt64_t; + + +typedef unsigned long int __fsfilcnt_t; +typedef unsigned long int __fsfilcnt64_t; + + +typedef long int __fsword_t; + +typedef long int __ssize_t; + + +typedef long int __syscall_slong_t; + +typedef unsigned long int __syscall_ulong_t; + + + +typedef __off64_t __loff_t; +typedef char *__caddr_t; + + +typedef long int __intptr_t; + + +typedef unsigned int __socklen_t; + + + + +typedef int __sig_atomic_t; +# 27 "/usr/include/ctype.h" 2 3 4 + +extern "C" { +# 39 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/endian.h" 1 3 4 +# 35 "/usr/include/bits/endian.h" 3 4 +# 1 "/usr/include/bits/endianness.h" 1 3 4 +# 36 "/usr/include/bits/endian.h" 2 3 4 +# 40 "/usr/include/ctype.h" 2 3 4 + + + + + + +enum +{ + _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), + _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), + _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), + _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), + _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), + _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), + _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), + _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), + _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), + _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), + _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), + _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) +}; +# 79 "/usr/include/ctype.h" 3 4 +extern const unsigned short int **__ctype_b_loc (void) + noexcept (true) __attribute__ ((__const__)); +extern const __int32_t **__ctype_tolower_loc (void) + noexcept (true) __attribute__ ((__const__)); +extern const __int32_t **__ctype_toupper_loc (void) + noexcept (true) __attribute__ ((__const__)); +# 108 "/usr/include/ctype.h" 3 4 +extern int isalnum (int) noexcept (true); +extern int isalpha (int) noexcept (true); +extern int iscntrl (int) noexcept (true); +extern int isdigit (int) noexcept (true); +extern int islower (int) noexcept (true); +extern int isgraph (int) noexcept (true); +extern int isprint (int) noexcept (true); +extern int ispunct (int) noexcept (true); +extern int isspace (int) noexcept (true); +extern int isupper (int) noexcept (true); +extern int isxdigit (int) noexcept (true); + + + +extern int tolower (int __c) noexcept (true); + + +extern int toupper (int __c) noexcept (true); + + + + +extern int isblank (int) noexcept (true); + + + + +extern int isctype (int __c, int __mask) noexcept (true); + + + + + + +extern int isascii (int __c) noexcept (true); + + + +extern int toascii (int __c) noexcept (true); + + + +extern int _toupper (int) noexcept (true); +extern int _tolower (int) noexcept (true); +# 237 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/bits/types/locale_t.h" 1 3 4 +# 22 "/usr/include/bits/types/locale_t.h" 3 4 +# 1 "/usr/include/bits/types/__locale_t.h" 1 3 4 +# 27 "/usr/include/bits/types/__locale_t.h" 3 4 +struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +}; + +typedef struct __locale_struct *__locale_t; +# 23 "/usr/include/bits/types/locale_t.h" 2 3 4 + +typedef __locale_t locale_t; +# 238 "/usr/include/ctype.h" 2 3 4 +# 251 "/usr/include/ctype.h" 3 4 +extern int isalnum_l (int, locale_t) noexcept (true); +extern int isalpha_l (int, locale_t) noexcept (true); +extern int iscntrl_l (int, locale_t) noexcept (true); +extern int isdigit_l (int, locale_t) noexcept (true); +extern int islower_l (int, locale_t) noexcept (true); +extern int isgraph_l (int, locale_t) noexcept (true); +extern int isprint_l (int, locale_t) noexcept (true); +extern int ispunct_l (int, locale_t) noexcept (true); +extern int isspace_l (int, locale_t) noexcept (true); +extern int isupper_l (int, locale_t) noexcept (true); +extern int isxdigit_l (int, locale_t) noexcept (true); + +extern int isblank_l (int, locale_t) noexcept (true); + + + +extern int __tolower_l (int __c, locale_t __l) noexcept (true); +extern int tolower_l (int __c, locale_t __l) noexcept (true); + + +extern int __toupper_l (int __c, locale_t __l) noexcept (true); +extern int toupper_l (int __c, locale_t __l) noexcept (true); +# 327 "/usr/include/ctype.h" 3 4 +} +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 2 +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 2 +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" + +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +enum __attribute__((device_builtin)) cudaRoundMode +{ + cudaRoundNearest, + cudaRoundZero, + cudaRoundPosInf, + cudaRoundMinInf +}; +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 1 +# 59 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" 1 +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 66 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" 2 +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) char1 +{ + signed char x; +}; + +struct __attribute__((device_builtin)) uchar1 +{ + unsigned char x; +}; + + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) char2 +{ + signed char x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) uchar2 +{ + unsigned char x, y; +}; + +struct __attribute__((device_builtin)) char3 +{ + signed char x, y, z; +}; + +struct __attribute__((device_builtin)) uchar3 +{ + unsigned char x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) char4 +{ + signed char x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) uchar4 +{ + unsigned char x, y, z, w; +}; + +struct __attribute__((device_builtin)) short1 +{ + short x; +}; + +struct __attribute__((device_builtin)) ushort1 +{ + unsigned short x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) short2 +{ + short x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) ushort2 +{ + unsigned short x, y; +}; + +struct __attribute__((device_builtin)) short3 +{ + short x, y, z; +}; + +struct __attribute__((device_builtin)) ushort3 +{ + unsigned short x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) short4 { short x; short y; short z; short w; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; + +struct __attribute__((device_builtin)) int1 +{ + int x; +}; + +struct __attribute__((device_builtin)) uint1 +{ + unsigned int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) int2 { int x; int y; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) uint2 { unsigned int x; unsigned int y; }; + +struct __attribute__((device_builtin)) int3 +{ + int x, y, z; +}; + +struct __attribute__((device_builtin)) uint3 +{ + unsigned int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) int4 +{ + int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) uint4 +{ + unsigned int x, y, z, w; +}; + +struct __attribute__((device_builtin)) long1 +{ + long int x; +}; + +struct __attribute__((device_builtin)) ulong1 +{ + unsigned long x; +}; + + + + + + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(long int)))) long2 +{ + long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(unsigned long int)))) ulong2 +{ + unsigned long int x, y; +}; + + + +struct __attribute__((device_builtin)) long3 +{ + long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulong3 +{ + unsigned long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) long4 +{ + long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulong4 +{ + unsigned long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) float1 +{ + float x; +}; +# 280 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) __attribute__((aligned(8))) float2 { float x; float y; }; + + + + +struct __attribute__((device_builtin)) float3 +{ + float x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) float4 +{ + float x, y, z, w; +}; + +struct __attribute__((device_builtin)) longlong1 +{ + long long int x; +}; + +struct __attribute__((device_builtin)) ulonglong1 +{ + unsigned long long int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong2 +{ + long long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong2 +{ + unsigned long long int x, y; +}; + +struct __attribute__((device_builtin)) longlong3 +{ + long long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulonglong3 +{ + unsigned long long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong4 +{ + long long int x, y, z ,w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong4 +{ + unsigned long long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) double1 +{ + double x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double2 +{ + double x, y; +}; + +struct __attribute__((device_builtin)) double3 +{ + double x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double4 +{ + double x, y, z, w; +}; +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +typedef __attribute__((device_builtin)) struct char1 char1; +typedef __attribute__((device_builtin)) struct uchar1 uchar1; +typedef __attribute__((device_builtin)) struct char2 char2; +typedef __attribute__((device_builtin)) struct uchar2 uchar2; +typedef __attribute__((device_builtin)) struct char3 char3; +typedef __attribute__((device_builtin)) struct uchar3 uchar3; +typedef __attribute__((device_builtin)) struct char4 char4; +typedef __attribute__((device_builtin)) struct uchar4 uchar4; +typedef __attribute__((device_builtin)) struct short1 short1; +typedef __attribute__((device_builtin)) struct ushort1 ushort1; +typedef __attribute__((device_builtin)) struct short2 short2; +typedef __attribute__((device_builtin)) struct ushort2 ushort2; +typedef __attribute__((device_builtin)) struct short3 short3; +typedef __attribute__((device_builtin)) struct ushort3 ushort3; +typedef __attribute__((device_builtin)) struct short4 short4; +typedef __attribute__((device_builtin)) struct ushort4 ushort4; +typedef __attribute__((device_builtin)) struct int1 int1; +typedef __attribute__((device_builtin)) struct uint1 uint1; +typedef __attribute__((device_builtin)) struct int2 int2; +typedef __attribute__((device_builtin)) struct uint2 uint2; +typedef __attribute__((device_builtin)) struct int3 int3; +typedef __attribute__((device_builtin)) struct uint3 uint3; +typedef __attribute__((device_builtin)) struct int4 int4; +typedef __attribute__((device_builtin)) struct uint4 uint4; +typedef __attribute__((device_builtin)) struct long1 long1; +typedef __attribute__((device_builtin)) struct ulong1 ulong1; +typedef __attribute__((device_builtin)) struct long2 long2; +typedef __attribute__((device_builtin)) struct ulong2 ulong2; +typedef __attribute__((device_builtin)) struct long3 long3; +typedef __attribute__((device_builtin)) struct ulong3 ulong3; +typedef __attribute__((device_builtin)) struct long4 long4; +typedef __attribute__((device_builtin)) struct ulong4 ulong4; +typedef __attribute__((device_builtin)) struct float1 float1; +typedef __attribute__((device_builtin)) struct float2 float2; +typedef __attribute__((device_builtin)) struct float3 float3; +typedef __attribute__((device_builtin)) struct float4 float4; +typedef __attribute__((device_builtin)) struct longlong1 longlong1; +typedef __attribute__((device_builtin)) struct ulonglong1 ulonglong1; +typedef __attribute__((device_builtin)) struct longlong2 longlong2; +typedef __attribute__((device_builtin)) struct ulonglong2 ulonglong2; +typedef __attribute__((device_builtin)) struct longlong3 longlong3; +typedef __attribute__((device_builtin)) struct ulonglong3 ulonglong3; +typedef __attribute__((device_builtin)) struct longlong4 longlong4; +typedef __attribute__((device_builtin)) struct ulonglong4 ulonglong4; +typedef __attribute__((device_builtin)) struct double1 double1; +typedef __attribute__((device_builtin)) struct double2 double2; +typedef __attribute__((device_builtin)) struct double3 double3; +typedef __attribute__((device_builtin)) struct double4 double4; +# 426 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +struct __attribute__((device_builtin)) dim3 +{ + unsigned int x, y, z; + + + __attribute__((host)) __attribute__((device)) constexpr dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {} + __attribute__((host)) __attribute__((device)) constexpr dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {} + __attribute__((host)) __attribute__((device)) constexpr operator uint3(void) const { return uint3{x, y, z}; } + + + + + + +}; + +typedef __attribute__((device_builtin)) struct dim3 dim3; +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 1 3 4 +# 210 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 26 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/limits.h" 2 3 4 +# 195 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/posix1_lim.h" 1 3 4 +# 27 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 161 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/bits/local_lim.h" 2 3 4 +# 81 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/bits/pthread_stack_min-dynamic.h" 1 3 4 +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 + +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 +extern "C" { +extern long int __sysconf (int __name) noexcept (true); +} +# 82 "/usr/include/bits/local_lim.h" 2 3 4 +# 162 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 196 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/posix2_lim.h" 1 3 4 +# 200 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/xopen_lim.h" 1 3 4 +# 64 "/usr/include/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/bits/uio_lim.h" 1 3 4 +# 65 "/usr/include/bits/xopen_lim.h" 2 3 4 +# 204 "/usr/include/limits.h" 2 3 4 +# 211 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/limits.h" 2 3 4 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 425 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +typedef struct { + long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); + long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); +# 436 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 4 +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" 2 +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum __attribute__((device_builtin)) cudaError +{ + + + + + + cudaSuccess = 0, + + + + + + cudaErrorInvalidValue = 1, + + + + + + cudaErrorMemoryAllocation = 2, + + + + + + cudaErrorInitializationError = 3, + + + + + + + cudaErrorCudartUnloading = 4, + + + + + + + cudaErrorProfilerDisabled = 5, + + + + + + + + cudaErrorProfilerNotInitialized = 6, + + + + + + + cudaErrorProfilerAlreadyStarted = 7, + + + + + + + cudaErrorProfilerAlreadyStopped = 8, + + + + + + + + cudaErrorInvalidConfiguration = 9, + + + + + + cudaErrorInvalidPitchValue = 12, + + + + + + cudaErrorInvalidSymbol = 13, + + + + + + + + cudaErrorInvalidHostPointer = 16, + + + + + + + + cudaErrorInvalidDevicePointer = 17, + + + + + cudaErrorInvalidTexture = 18, + + + + + + cudaErrorInvalidTextureBinding = 19, + + + + + + + cudaErrorInvalidChannelDescriptor = 20, + + + + + + cudaErrorInvalidMemcpyDirection = 21, +# 336 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorAddressOfConstant = 22, +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorTextureFetchFailed = 23, +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorTextureNotBound = 24, +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSynchronizationError = 25, + + + + + cudaErrorInvalidFilterSetting = 26, + + + + + + cudaErrorInvalidNormSetting = 27, + + + + + + + + cudaErrorMixedDeviceExecution = 28, + + + + + + + + cudaErrorNotYetImplemented = 31, +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorMemoryValueTooLarge = 32, + + + + + + cudaErrorStubLibrary = 34, + + + + + + + cudaErrorInsufficientDriver = 35, + + + + + + + cudaErrorCallRequiresNewerDriver = 36, + + + + + + cudaErrorInvalidSurface = 37, + + + + + + cudaErrorDuplicateVariableName = 43, + + + + + + cudaErrorDuplicateTextureName = 44, + + + + + + cudaErrorDuplicateSurfaceName = 45, +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorDevicesUnavailable = 46, +# 466 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorIncompatibleDriverContext = 49, + + + + + + cudaErrorMissingConfiguration = 52, +# 481 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorPriorLaunchFailure = 53, + + + + + + cudaErrorLaunchMaxDepthExceeded = 65, + + + + + + + + cudaErrorLaunchFileScopedTex = 66, + + + + + + + + cudaErrorLaunchFileScopedSurf = 67, +# 519 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSyncDepthExceeded = 68, +# 531 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchPendingCountExceeded = 69, + + + + + + cudaErrorInvalidDeviceFunction = 98, + + + + + + cudaErrorNoDevice = 100, + + + + + + + cudaErrorInvalidDevice = 101, + + + + + cudaErrorDeviceNotLicensed = 102, +# 564 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSoftwareValidityNotEstablished = 103, + + + + + cudaErrorStartupFailure = 127, + + + + + cudaErrorInvalidKernelImage = 200, +# 584 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorDeviceUninitialized = 201, + + + + + cudaErrorMapBufferObjectFailed = 205, + + + + + cudaErrorUnmapBufferObjectFailed = 206, + + + + + + cudaErrorArrayIsMapped = 207, + + + + + cudaErrorAlreadyMapped = 208, + + + + + + + + cudaErrorNoKernelImageForDevice = 209, + + + + + cudaErrorAlreadyAcquired = 210, + + + + + cudaErrorNotMapped = 211, + + + + + + cudaErrorNotMappedAsArray = 212, + + + + + + cudaErrorNotMappedAsPointer = 213, + + + + + + cudaErrorECCUncorrectable = 214, + + + + + + cudaErrorUnsupportedLimit = 215, + + + + + + cudaErrorDeviceAlreadyInUse = 216, + + + + + + cudaErrorPeerAccessUnsupported = 217, + + + + + + cudaErrorInvalidPtx = 218, + + + + + cudaErrorInvalidGraphicsContext = 219, + + + + + + cudaErrorNvlinkUncorrectable = 220, + + + + + + + cudaErrorJitCompilerNotFound = 221, + + + + + + + cudaErrorUnsupportedPtxVersion = 222, + + + + + + + cudaErrorJitCompilationDisabled = 223, + + + + + cudaErrorUnsupportedExecAffinity = 224, + + + + + + cudaErrorUnsupportedDevSideSync = 225, +# 719 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorContained = 226, + + + + + cudaErrorInvalidSource = 300, + + + + + cudaErrorFileNotFound = 301, + + + + + cudaErrorSharedObjectSymbolNotFound = 302, + + + + + cudaErrorSharedObjectInitFailed = 303, + + + + + cudaErrorOperatingSystem = 304, + + + + + + + cudaErrorInvalidResourceHandle = 400, + + + + + + cudaErrorIllegalState = 401, + + + + + + + + cudaErrorLossyQuery = 402, + + + + + + + cudaErrorSymbolNotFound = 500, + + + + + + + + cudaErrorNotReady = 600, + + + + + + + + cudaErrorIllegalAddress = 700, +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchOutOfResources = 701, +# 808 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchTimeout = 702, + + + + + + cudaErrorLaunchIncompatibleTexturing = 703, + + + + + + + cudaErrorPeerAccessAlreadyEnabled = 704, + + + + + + + cudaErrorPeerAccessNotEnabled = 705, +# 841 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSetOnActiveProcess = 708, + + + + + + + cudaErrorContextIsDestroyed = 709, + + + + + + + cudaErrorAssert = 710, + + + + + + + cudaErrorTooManyPeers = 711, + + + + + + cudaErrorHostMemoryAlreadyRegistered = 712, + + + + + + cudaErrorHostMemoryNotRegistered = 713, +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorHardwareStackError = 714, + + + + + + + + cudaErrorIllegalInstruction = 715, +# 900 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorMisalignedAddress = 716, +# 911 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorInvalidAddressSpace = 717, + + + + + + + + cudaErrorInvalidPc = 718, +# 930 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorLaunchFailure = 719, +# 939 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorCooperativeLaunchTooLarge = 720, + + + + + + + + cudaErrorTensorMemoryLeak = 721, + + + + + cudaErrorNotPermitted = 800, + + + + + + cudaErrorNotSupported = 801, +# 967 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorSystemNotReady = 802, + + + + + + + cudaErrorSystemDriverMismatch = 803, +# 983 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorCompatNotSupportedOnDevice = 804, + + + + + cudaErrorMpsConnectionFailed = 805, + + + + + cudaErrorMpsRpcFailure = 806, + + + + + + cudaErrorMpsServerNotReady = 807, + + + + + cudaErrorMpsMaxClientsReached = 808, + + + + + cudaErrorMpsMaxConnectionsReached = 809, + + + + + cudaErrorMpsClientTerminated = 810, + + + + + cudaErrorCdpNotSupported = 811, + + + + + cudaErrorCdpVersionMismatch = 812, + + + + + cudaErrorStreamCaptureUnsupported = 900, + + + + + + cudaErrorStreamCaptureInvalidated = 901, + + + + + + cudaErrorStreamCaptureMerge = 902, + + + + + cudaErrorStreamCaptureUnmatched = 903, + + + + + + cudaErrorStreamCaptureUnjoined = 904, + + + + + + + cudaErrorStreamCaptureIsolation = 905, + + + + + + cudaErrorStreamCaptureImplicit = 906, + + + + + + cudaErrorCapturedEvent = 907, + + + + + + + cudaErrorStreamCaptureWrongThread = 908, + + + + + cudaErrorTimeout = 909, + + + + + + cudaErrorGraphExecUpdateFailure = 910, +# 1099 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaErrorExternalDevice = 911, + + + + + + cudaErrorInvalidClusterSize = 912, + + + + + + cudaErrorFunctionNotLoaded = 913, + + + + + + cudaErrorInvalidResourceType = 914, + + + + + + cudaErrorInvalidResourceConfiguration = 915, + + + + + cudaErrorUnknown = 999 + + + + + + + + , cudaErrorApiFailureBase = 10000 +}; + + + + +enum __attribute__((device_builtin)) cudaChannelFormatKind +{ + cudaChannelFormatKindSigned = 0, + cudaChannelFormatKindUnsigned = 1, + cudaChannelFormatKindFloat = 2, + cudaChannelFormatKindNone = 3, + cudaChannelFormatKindNV12 = 4, + cudaChannelFormatKindUnsignedNormalized8X1 = 5, + cudaChannelFormatKindUnsignedNormalized8X2 = 6, + cudaChannelFormatKindUnsignedNormalized8X4 = 7, + cudaChannelFormatKindUnsignedNormalized16X1 = 8, + cudaChannelFormatKindUnsignedNormalized16X2 = 9, + cudaChannelFormatKindUnsignedNormalized16X4 = 10, + cudaChannelFormatKindSignedNormalized8X1 = 11, + cudaChannelFormatKindSignedNormalized8X2 = 12, + cudaChannelFormatKindSignedNormalized8X4 = 13, + cudaChannelFormatKindSignedNormalized16X1 = 14, + cudaChannelFormatKindSignedNormalized16X2 = 15, + cudaChannelFormatKindSignedNormalized16X4 = 16, + cudaChannelFormatKindUnsignedBlockCompressed1 = 17, + cudaChannelFormatKindUnsignedBlockCompressed1SRGB = 18, + cudaChannelFormatKindUnsignedBlockCompressed2 = 19, + cudaChannelFormatKindUnsignedBlockCompressed2SRGB = 20, + cudaChannelFormatKindUnsignedBlockCompressed3 = 21, + cudaChannelFormatKindUnsignedBlockCompressed3SRGB = 22, + cudaChannelFormatKindUnsignedBlockCompressed4 = 23, + cudaChannelFormatKindSignedBlockCompressed4 = 24, + cudaChannelFormatKindUnsignedBlockCompressed5 = 25, + cudaChannelFormatKindSignedBlockCompressed5 = 26, + cudaChannelFormatKindUnsignedBlockCompressed6H = 27, + cudaChannelFormatKindSignedBlockCompressed6H = 28, + cudaChannelFormatKindUnsignedBlockCompressed7 = 29, + cudaChannelFormatKindUnsignedBlockCompressed7SRGB = 30, + cudaChannelFormatKindUnsignedNormalized1010102 = 31 + +}; + + + + +struct __attribute__((device_builtin)) cudaChannelFormatDesc +{ + int x; + int y; + int z; + int w; + enum cudaChannelFormatKind f; +}; + + + + +typedef struct cudaArray *cudaArray_t; + + + + +typedef const struct cudaArray *cudaArray_const_t; + +struct cudaArray; + + + + +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; + + + + +typedef const struct cudaMipmappedArray *cudaMipmappedArray_const_t; + +struct cudaMipmappedArray; +# 1223 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaArraySparseProperties { + struct { + unsigned int width; + unsigned int height; + unsigned int depth; + } tileExtent; + unsigned int miptailFirstLevel; + unsigned long long miptailSize; + unsigned int flags; + unsigned int reserved[4]; +}; + + + + +struct __attribute__((device_builtin)) cudaArrayMemoryRequirements { + size_t size; + size_t alignment; + unsigned int reserved[4]; +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryType +{ + cudaMemoryTypeUnregistered = 0, + cudaMemoryTypeHost = 1, + cudaMemoryTypeDevice = 2, + cudaMemoryTypeManaged = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyKind +{ + cudaMemcpyHostToHost = 0, + cudaMemcpyHostToDevice = 1, + cudaMemcpyDeviceToHost = 2, + cudaMemcpyDeviceToDevice = 3, + cudaMemcpyDefault = 4 +}; + + + + + + +struct __attribute__((device_builtin)) cudaPitchedPtr +{ + void *ptr; + size_t pitch; + size_t xsize; + size_t ysize; +}; + + + + + + +struct __attribute__((device_builtin)) cudaExtent +{ + size_t width; + size_t height; + size_t depth; +}; + + + + + + +struct __attribute__((device_builtin)) cudaPos +{ + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + + struct cudaExtent extent; + enum cudaMemcpyKind kind; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpyNodeParams { + int flags; + int reserved[3]; + struct cudaMemcpy3DParms copyParams; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DPeerParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + int srcDevice; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + int dstDevice; + + struct cudaExtent extent; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParams { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParamsV2 { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +enum __attribute__((device_builtin)) cudaAccessProperty { + cudaAccessPropertyNormal = 0, + cudaAccessPropertyStreaming = 1, + cudaAccessPropertyPersisting = 2 +}; +# 1392 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaAccessPolicyWindow { + void *base_ptr; + size_t num_bytes; + float hitRatio; + enum cudaAccessProperty hitProp; + enum cudaAccessProperty missProp; +}; +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef void ( *cudaHostFn_t)(void *userData); + + + + +struct __attribute__((device_builtin)) cudaHostNodeParams { + cudaHostFn_t fn; + void* userData; +}; + + + + +struct __attribute__((device_builtin)) cudaHostNodeParamsV2 { + cudaHostFn_t fn; + void* userData; +}; + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureStatus { + cudaStreamCaptureStatusNone = 0, + cudaStreamCaptureStatusActive = 1, + cudaStreamCaptureStatusInvalidated = 2 + +}; + + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureMode { + cudaStreamCaptureModeGlobal = 0, + cudaStreamCaptureModeThreadLocal = 1, + cudaStreamCaptureModeRelaxed = 2 +}; + +enum __attribute__((device_builtin)) cudaSynchronizationPolicy { + cudaSyncPolicyAuto = 1, + cudaSyncPolicySpin = 2, + cudaSyncPolicyYield = 3, + cudaSyncPolicyBlockingSync = 4 +}; + + + + +enum __attribute__((device_builtin)) cudaClusterSchedulingPolicy { + cudaClusterSchedulingPolicyDefault = 0, + cudaClusterSchedulingPolicySpread = 1, + cudaClusterSchedulingPolicyLoadBalancing = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaStreamUpdateCaptureDependenciesFlags { + cudaStreamAddCaptureDependencies = 0x0, + cudaStreamSetCaptureDependencies = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectFlags { + cudaUserObjectNoDestructorSync = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectRetainFlags { + cudaGraphUserObjectMove = 0x1 +}; + + + + +struct cudaGraphicsResource; + + + + +enum __attribute__((device_builtin)) cudaGraphicsRegisterFlags +{ + cudaGraphicsRegisterFlagsNone = 0, + cudaGraphicsRegisterFlagsReadOnly = 1, + cudaGraphicsRegisterFlagsWriteDiscard = 2, + cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, + cudaGraphicsRegisterFlagsTextureGather = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsMapFlags +{ + cudaGraphicsMapFlagsNone = 0, + cudaGraphicsMapFlagsReadOnly = 1, + cudaGraphicsMapFlagsWriteDiscard = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsCubeFace +{ + cudaGraphicsCubeFacePositiveX = 0x00, + cudaGraphicsCubeFaceNegativeX = 0x01, + cudaGraphicsCubeFacePositiveY = 0x02, + cudaGraphicsCubeFaceNegativeY = 0x03, + cudaGraphicsCubeFacePositiveZ = 0x04, + cudaGraphicsCubeFaceNegativeZ = 0x05 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceType +{ + cudaResourceTypeArray = 0x00, + cudaResourceTypeMipmappedArray = 0x01, + cudaResourceTypeLinear = 0x02, + cudaResourceTypePitch2D = 0x03 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceViewFormat +{ + cudaResViewFormatNone = 0x00, + cudaResViewFormatUnsignedChar1 = 0x01, + cudaResViewFormatUnsignedChar2 = 0x02, + cudaResViewFormatUnsignedChar4 = 0x03, + cudaResViewFormatSignedChar1 = 0x04, + cudaResViewFormatSignedChar2 = 0x05, + cudaResViewFormatSignedChar4 = 0x06, + cudaResViewFormatUnsignedShort1 = 0x07, + cudaResViewFormatUnsignedShort2 = 0x08, + cudaResViewFormatUnsignedShort4 = 0x09, + cudaResViewFormatSignedShort1 = 0x0a, + cudaResViewFormatSignedShort2 = 0x0b, + cudaResViewFormatSignedShort4 = 0x0c, + cudaResViewFormatUnsignedInt1 = 0x0d, + cudaResViewFormatUnsignedInt2 = 0x0e, + cudaResViewFormatUnsignedInt4 = 0x0f, + cudaResViewFormatSignedInt1 = 0x10, + cudaResViewFormatSignedInt2 = 0x11, + cudaResViewFormatSignedInt4 = 0x12, + cudaResViewFormatHalf1 = 0x13, + cudaResViewFormatHalf2 = 0x14, + cudaResViewFormatHalf4 = 0x15, + cudaResViewFormatFloat1 = 0x16, + cudaResViewFormatFloat2 = 0x17, + cudaResViewFormatFloat4 = 0x18, + cudaResViewFormatUnsignedBlockCompressed1 = 0x19, + cudaResViewFormatUnsignedBlockCompressed2 = 0x1a, + cudaResViewFormatUnsignedBlockCompressed3 = 0x1b, + cudaResViewFormatUnsignedBlockCompressed4 = 0x1c, + cudaResViewFormatSignedBlockCompressed4 = 0x1d, + cudaResViewFormatUnsignedBlockCompressed5 = 0x1e, + cudaResViewFormatSignedBlockCompressed5 = 0x1f, + cudaResViewFormatUnsignedBlockCompressed6H = 0x20, + cudaResViewFormatSignedBlockCompressed6H = 0x21, + cudaResViewFormatUnsignedBlockCompressed7 = 0x22 +}; + + + + +struct __attribute__((device_builtin)) cudaResourceDesc { + enum cudaResourceType resType; + + union { + struct { + cudaArray_t array; + } array; + struct { + cudaMipmappedArray_t mipmap; + } mipmap; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t sizeInBytes; + } linear; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t width; + size_t height; + size_t pitchInBytes; + } pitch2D; + } res; +}; + + + + +struct __attribute__((device_builtin)) cudaResourceViewDesc +{ + enum cudaResourceViewFormat format; + size_t width; + size_t height; + size_t depth; + unsigned int firstMipmapLevel; + unsigned int lastMipmapLevel; + unsigned int firstLayer; + unsigned int lastLayer; +}; + + + + +struct __attribute__((device_builtin)) cudaPointerAttributes +{ + + + + + enum cudaMemoryType type; +# 1642 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int device; + + + + + + void *devicePointer; +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + void *hostPointer; +}; + + + + +struct __attribute__((device_builtin)) cudaFuncAttributes +{ + + + + + + size_t sharedSizeBytes; + + + + + + size_t constSizeBytes; + + + + + size_t localSizeBytes; + + + + + + + int maxThreadsPerBlock; + + + + + int numRegs; + + + + + + + int ptxVersion; + + + + + + + int binaryVersion; + + + + + + int cacheModeCA; + + + + + + + int maxDynamicSharedSizeBytes; +# 1729 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int preferredShmemCarveout; + + + + + + int clusterDimMustBeSet; +# 1746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int requiredClusterWidth; + int requiredClusterHeight; + int requiredClusterDepth; + + + + + + int clusterSchedulingPolicyPreference; +# 1776 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + int nonPortableClusterSizeAllowed; + + + + + int reserved[16]; +}; + + + + +enum __attribute__((device_builtin)) cudaFuncAttribute +{ + cudaFuncAttributeMaxDynamicSharedMemorySize = 8, + cudaFuncAttributePreferredSharedMemoryCarveout = 9, + cudaFuncAttributeClusterDimMustBeSet = 10, + cudaFuncAttributeRequiredClusterWidth = 11, + cudaFuncAttributeRequiredClusterHeight = 12, + cudaFuncAttributeRequiredClusterDepth = 13, + cudaFuncAttributeNonPortableClusterSizeAllowed = 14, + cudaFuncAttributeClusterSchedulingPolicyPreference = 15, + cudaFuncAttributeMax +}; + + + + +enum __attribute__((device_builtin)) cudaFuncCache +{ + cudaFuncCachePreferNone = 0, + cudaFuncCachePreferShared = 1, + cudaFuncCachePreferL1 = 2, + cudaFuncCachePreferEqual = 3 +}; + + + + + +enum __attribute__((device_builtin)) cudaSharedMemConfig +{ + cudaSharedMemBankSizeDefault = 0, + cudaSharedMemBankSizeFourByte = 1, + cudaSharedMemBankSizeEightByte = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSharedCarveout { + cudaSharedmemCarveoutDefault = -1, + cudaSharedmemCarveoutMaxShared = 100, + cudaSharedmemCarveoutMaxL1 = 0 +}; + + + + +enum __attribute__((device_builtin)) cudaComputeMode +{ + cudaComputeModeDefault = 0, + cudaComputeModeExclusive = 1, + cudaComputeModeProhibited = 2, + cudaComputeModeExclusiveProcess = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaLimit +{ + cudaLimitStackSize = 0x00, + cudaLimitPrintfFifoSize = 0x01, + cudaLimitMallocHeapSize = 0x02, + cudaLimitDevRuntimeSyncDepth = 0x03, + cudaLimitDevRuntimePendingLaunchCount = 0x04, + cudaLimitMaxL2FetchGranularity = 0x05, + cudaLimitPersistingL2CacheSize = 0x06 +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryAdvise +{ + cudaMemAdviseSetReadMostly = 1, + cudaMemAdviseUnsetReadMostly = 2, + cudaMemAdviseSetPreferredLocation = 3, + cudaMemAdviseUnsetPreferredLocation = 4, + cudaMemAdviseSetAccessedBy = 5, + cudaMemAdviseUnsetAccessedBy = 6 +}; + + + + +enum __attribute__((device_builtin)) cudaMemRangeAttribute +{ + cudaMemRangeAttributeReadMostly = 1, + cudaMemRangeAttributePreferredLocation = 2, + cudaMemRangeAttributeAccessedBy = 3, + cudaMemRangeAttributeLastPrefetchLocation = 4 + , cudaMemRangeAttributePreferredLocationType = 5 + , cudaMemRangeAttributePreferredLocationId = 6 + , cudaMemRangeAttributeLastPrefetchLocationType = 7 + , cudaMemRangeAttributeLastPrefetchLocationId = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesOptions { + cudaFlushGPUDirectRDMAWritesOptionHost = 1<<0, + cudaFlushGPUDirectRDMAWritesOptionMemOps = 1<<1 +}; + + + + +enum __attribute__((device_builtin)) cudaGPUDirectRDMAWritesOrdering { + cudaGPUDirectRDMAWritesOrderingNone = 0, + cudaGPUDirectRDMAWritesOrderingOwner = 100, + cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesScope { + cudaFlushGPUDirectRDMAWritesToOwner = 100, + cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesTarget { + cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceAttr +{ + cudaDevAttrMaxThreadsPerBlock = 1, + cudaDevAttrMaxBlockDimX = 2, + cudaDevAttrMaxBlockDimY = 3, + cudaDevAttrMaxBlockDimZ = 4, + cudaDevAttrMaxGridDimX = 5, + cudaDevAttrMaxGridDimY = 6, + cudaDevAttrMaxGridDimZ = 7, + cudaDevAttrMaxSharedMemoryPerBlock = 8, + cudaDevAttrTotalConstantMemory = 9, + cudaDevAttrWarpSize = 10, + cudaDevAttrMaxPitch = 11, + cudaDevAttrMaxRegistersPerBlock = 12, + cudaDevAttrClockRate = 13, + cudaDevAttrTextureAlignment = 14, + cudaDevAttrGpuOverlap = 15, + cudaDevAttrMultiProcessorCount = 16, + cudaDevAttrKernelExecTimeout = 17, + cudaDevAttrIntegrated = 18, + cudaDevAttrCanMapHostMemory = 19, + cudaDevAttrComputeMode = 20, + cudaDevAttrMaxTexture1DWidth = 21, + cudaDevAttrMaxTexture2DWidth = 22, + cudaDevAttrMaxTexture2DHeight = 23, + cudaDevAttrMaxTexture3DWidth = 24, + cudaDevAttrMaxTexture3DHeight = 25, + cudaDevAttrMaxTexture3DDepth = 26, + cudaDevAttrMaxTexture2DLayeredWidth = 27, + cudaDevAttrMaxTexture2DLayeredHeight = 28, + cudaDevAttrMaxTexture2DLayeredLayers = 29, + cudaDevAttrSurfaceAlignment = 30, + cudaDevAttrConcurrentKernels = 31, + cudaDevAttrEccEnabled = 32, + cudaDevAttrPciBusId = 33, + cudaDevAttrPciDeviceId = 34, + cudaDevAttrTccDriver = 35, + cudaDevAttrMemoryClockRate = 36, + cudaDevAttrGlobalMemoryBusWidth = 37, + cudaDevAttrL2CacheSize = 38, + cudaDevAttrMaxThreadsPerMultiProcessor = 39, + cudaDevAttrAsyncEngineCount = 40, + cudaDevAttrUnifiedAddressing = 41, + cudaDevAttrMaxTexture1DLayeredWidth = 42, + cudaDevAttrMaxTexture1DLayeredLayers = 43, + cudaDevAttrMaxTexture2DGatherWidth = 45, + cudaDevAttrMaxTexture2DGatherHeight = 46, + cudaDevAttrMaxTexture3DWidthAlt = 47, + cudaDevAttrMaxTexture3DHeightAlt = 48, + cudaDevAttrMaxTexture3DDepthAlt = 49, + cudaDevAttrPciDomainId = 50, + cudaDevAttrTexturePitchAlignment = 51, + cudaDevAttrMaxTextureCubemapWidth = 52, + cudaDevAttrMaxTextureCubemapLayeredWidth = 53, + cudaDevAttrMaxTextureCubemapLayeredLayers = 54, + cudaDevAttrMaxSurface1DWidth = 55, + cudaDevAttrMaxSurface2DWidth = 56, + cudaDevAttrMaxSurface2DHeight = 57, + cudaDevAttrMaxSurface3DWidth = 58, + cudaDevAttrMaxSurface3DHeight = 59, + cudaDevAttrMaxSurface3DDepth = 60, + cudaDevAttrMaxSurface1DLayeredWidth = 61, + cudaDevAttrMaxSurface1DLayeredLayers = 62, + cudaDevAttrMaxSurface2DLayeredWidth = 63, + cudaDevAttrMaxSurface2DLayeredHeight = 64, + cudaDevAttrMaxSurface2DLayeredLayers = 65, + cudaDevAttrMaxSurfaceCubemapWidth = 66, + cudaDevAttrMaxSurfaceCubemapLayeredWidth = 67, + cudaDevAttrMaxSurfaceCubemapLayeredLayers = 68, + cudaDevAttrMaxTexture1DLinearWidth = 69, + cudaDevAttrMaxTexture2DLinearWidth = 70, + cudaDevAttrMaxTexture2DLinearHeight = 71, + cudaDevAttrMaxTexture2DLinearPitch = 72, + cudaDevAttrMaxTexture2DMipmappedWidth = 73, + cudaDevAttrMaxTexture2DMipmappedHeight = 74, + cudaDevAttrComputeCapabilityMajor = 75, + cudaDevAttrComputeCapabilityMinor = 76, + cudaDevAttrMaxTexture1DMipmappedWidth = 77, + cudaDevAttrStreamPrioritiesSupported = 78, + cudaDevAttrGlobalL1CacheSupported = 79, + cudaDevAttrLocalL1CacheSupported = 80, + cudaDevAttrMaxSharedMemoryPerMultiprocessor = 81, + cudaDevAttrMaxRegistersPerMultiprocessor = 82, + cudaDevAttrManagedMemory = 83, + cudaDevAttrIsMultiGpuBoard = 84, + cudaDevAttrMultiGpuBoardGroupID = 85, + cudaDevAttrHostNativeAtomicSupported = 86, + cudaDevAttrSingleToDoublePrecisionPerfRatio = 87, + cudaDevAttrPageableMemoryAccess = 88, + cudaDevAttrConcurrentManagedAccess = 89, + cudaDevAttrComputePreemptionSupported = 90, + cudaDevAttrCanUseHostPointerForRegisteredMem = 91, + cudaDevAttrReserved92 = 92, + cudaDevAttrReserved93 = 93, + cudaDevAttrReserved94 = 94, + cudaDevAttrCooperativeLaunch = 95, + cudaDevAttrCooperativeMultiDeviceLaunch = 96, + cudaDevAttrMaxSharedMemoryPerBlockOptin = 97, + cudaDevAttrCanFlushRemoteWrites = 98, + cudaDevAttrHostRegisterSupported = 99, + cudaDevAttrPageableMemoryAccessUsesHostPageTables = 100, + cudaDevAttrDirectManagedMemAccessFromHost = 101, + cudaDevAttrMaxBlocksPerMultiprocessor = 106, + cudaDevAttrMaxPersistingL2CacheSize = 108, + cudaDevAttrMaxAccessPolicyWindowSize = 109, + cudaDevAttrReservedSharedMemoryPerBlock = 111, + cudaDevAttrSparseCudaArraySupported = 112, + cudaDevAttrHostRegisterReadOnlySupported = 113, + cudaDevAttrTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMemoryPoolsSupported = 115, + cudaDevAttrGPUDirectRDMASupported = 116, + cudaDevAttrGPUDirectRDMAFlushWritesOptions = 117, + cudaDevAttrGPUDirectRDMAWritesOrdering = 118, + cudaDevAttrMemoryPoolSupportedHandleTypes = 119, + cudaDevAttrClusterLaunch = 120, + cudaDevAttrDeferredMappingCudaArraySupported = 121, + cudaDevAttrReserved122 = 122, + cudaDevAttrReserved123 = 123, + cudaDevAttrReserved124 = 124, + cudaDevAttrIpcEventSupport = 125, + cudaDevAttrMemSyncDomainCount = 126, + cudaDevAttrReserved127 = 127, + cudaDevAttrReserved128 = 128, + cudaDevAttrReserved129 = 129, + cudaDevAttrNumaConfig = 130, + cudaDevAttrNumaId = 131, + cudaDevAttrReserved132 = 132, + cudaDevAttrMpsEnabled = 133, + cudaDevAttrHostNumaId = 134, + cudaDevAttrD3D12CigSupported = 135, + cudaDevAttrGpuPciDeviceId = 139, + cudaDevAttrGpuPciSubsystemId = 140, + cudaDevAttrHostNumaMultinodeIpcSupported = 143, + cudaDevAttrMax +}; + + + + +enum __attribute__((device_builtin)) cudaMemPoolAttr +{ +# 2070 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemPoolReuseFollowEventDependencies = 0x1, + + + + + + + cudaMemPoolReuseAllowOpportunistic = 0x2, + + + + + + + + cudaMemPoolReuseAllowInternalDependencies = 0x3, +# 2096 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemPoolAttrReleaseThreshold = 0x4, + + + + + + cudaMemPoolAttrReservedMemCurrent = 0x5, + + + + + + + cudaMemPoolAttrReservedMemHigh = 0x6, + + + + + + cudaMemPoolAttrUsedMemCurrent = 0x7, + + + + + + + cudaMemPoolAttrUsedMemHigh = 0x8 +}; + + + + +enum __attribute__((device_builtin)) cudaMemLocationType { + cudaMemLocationTypeInvalid = 0, + cudaMemLocationTypeDevice = 1 + , cudaMemLocationTypeHost = 2 + , cudaMemLocationTypeHostNuma = 3 + , cudaMemLocationTypeHostNumaCurrent = 4 +}; + + + + + + + +struct __attribute__((device_builtin)) cudaMemLocation { + enum cudaMemLocationType type; + int id; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAccessFlags { + cudaMemAccessFlagsProtNone = 0, + cudaMemAccessFlagsProtRead = 1, + cudaMemAccessFlagsProtReadWrite = 3 +}; + + + + +struct __attribute__((device_builtin)) cudaMemAccessDesc { + struct cudaMemLocation location; + enum cudaMemAccessFlags flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationType { + cudaMemAllocationTypeInvalid = 0x0, + + + + cudaMemAllocationTypePinned = 0x1, + cudaMemAllocationTypeMax = 0x7FFFFFFF +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationHandleType { + cudaMemHandleTypeNone = 0x0, + cudaMemHandleTypePosixFileDescriptor = 0x1, + cudaMemHandleTypeWin32 = 0x2, + cudaMemHandleTypeWin32Kmt = 0x4, + cudaMemHandleTypeFabric = 0x8 +}; +# 2196 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaMemPoolProps { + enum cudaMemAllocationType allocType; + enum cudaMemAllocationHandleType handleTypes; + struct cudaMemLocation location; + + + + + + + void *win32SecurityAttributes; + size_t maxSize; + unsigned short usage; + unsigned char reserved[54]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolPtrExportData { + unsigned char reserved[64]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParams { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParamsV2 { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +struct __attribute__((device_builtin)) cudaMemFreeNodeParams { + void *dptr; +}; + + + + +enum __attribute__((device_builtin)) cudaGraphMemAttributeType { + + + + + cudaGraphMemAttrUsedMemCurrent = 0x0, + + + + + + + cudaGraphMemAttrUsedMemHigh = 0x1, + + + + + + + cudaGraphMemAttrReservedMemCurrent = 0x2, + + + + + + + cudaGraphMemAttrReservedMemHigh = 0x3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyFlags { + cudaMemcpyFlagDefault = 0x0, + + + + + cudaMemcpyFlagPreferOverlapWithCompute = 0x1 +}; + +enum __attribute__((device_builtin)) cudaMemcpySrcAccessOrder { + + + + cudaMemcpySrcAccessOrderInvalid = 0x0, + + + + + cudaMemcpySrcAccessOrderStream = 0x1, +# 2320 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemcpySrcAccessOrderDuringApiCall = 0x2, +# 2329 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaMemcpySrcAccessOrderAny = 0x3, + + cudaMemcpySrcAccessOrderMax = 0x7FFFFFFF +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpyAttributes { + enum cudaMemcpySrcAccessOrder srcAccessOrder; + struct cudaMemLocation srcLocHint; + struct cudaMemLocation dstLocHint; + unsigned int flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpy3DOperandType { + cudaMemcpyOperandTypePointer = 0x1, + cudaMemcpyOperandTypeArray = 0x2, + cudaMemcpyOperandTypeMax = 0x7FFFFFFF +}; + + + + +struct __attribute__((device_builtin)) cudaOffset3D { + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DOperand { + enum cudaMemcpy3DOperandType type; + union { + + + + struct { + void *ptr; + size_t rowLength; + size_t layerHeight; + struct cudaMemLocation locHint; + } ptr; + + + + + struct { + cudaArray_t array; + struct cudaOffset3D offset; + } array; + } op; +}; + +struct __attribute__((device_builtin)) cudaMemcpy3DBatchOp { + struct cudaMemcpy3DOperand src; + struct cudaMemcpy3DOperand dst; + struct cudaExtent extent; + enum cudaMemcpySrcAccessOrder srcAccessOrder; + unsigned int flags; +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceP2PAttr { + cudaDevP2PAttrPerformanceRank = 1, + cudaDevP2PAttrAccessSupported = 2, + cudaDevP2PAttrNativeAtomicSupported = 3, + cudaDevP2PAttrCudaArrayAccessSupported = 4 +}; + + + + + + +struct __attribute__((device_builtin)) CUuuid_st { + char bytes[16]; +}; +typedef __attribute__((device_builtin)) struct CUuuid_st CUuuid; + +typedef __attribute__((device_builtin)) struct CUuuid_st cudaUUID_t; + + + + +struct __attribute__((device_builtin)) cudaDeviceProp +{ + char name[256]; + cudaUUID_t uuid; + char luid[8]; + unsigned int luidDeviceNodeMask; + size_t totalGlobalMem; + size_t sharedMemPerBlock; + int regsPerBlock; + int warpSize; + size_t memPitch; + int maxThreadsPerBlock; + int maxThreadsDim[3]; + int maxGridSize[3]; + int clockRate; + size_t totalConstMem; + int major; + int minor; + size_t textureAlignment; + size_t texturePitchAlignment; + int deviceOverlap; + int multiProcessorCount; + int kernelExecTimeoutEnabled; + int integrated; + int canMapHostMemory; + int computeMode; + int maxTexture1D; + int maxTexture1DMipmap; + int maxTexture1DLinear; + int maxTexture2D[2]; + int maxTexture2DMipmap[2]; + int maxTexture2DLinear[3]; + int maxTexture2DGather[2]; + int maxTexture3D[3]; + int maxTexture3DAlt[3]; + int maxTextureCubemap; + int maxTexture1DLayered[2]; + int maxTexture2DLayered[3]; + int maxTextureCubemapLayered[2]; + int maxSurface1D; + int maxSurface2D[2]; + int maxSurface3D[3]; + int maxSurface1DLayered[2]; + int maxSurface2DLayered[3]; + int maxSurfaceCubemap; + int maxSurfaceCubemapLayered[2]; + size_t surfaceAlignment; + int concurrentKernels; + int ECCEnabled; + int pciBusID; + int pciDeviceID; + int pciDomainID; + int tccDriver; + int asyncEngineCount; + int unifiedAddressing; + int memoryClockRate; + int memoryBusWidth; + int l2CacheSize; + int persistingL2CacheMaxSize; + int maxThreadsPerMultiProcessor; + int streamPrioritiesSupported; + int globalL1CacheSupported; + int localL1CacheSupported; + size_t sharedMemPerMultiprocessor; + int regsPerMultiprocessor; + int managedMemory; + int isMultiGpuBoard; + int multiGpuBoardGroupID; + int hostNativeAtomicSupported; + int singleToDoublePrecisionPerfRatio; + int pageableMemoryAccess; + int concurrentManagedAccess; + int computePreemptionSupported; + int canUseHostPointerForRegisteredMem; + int cooperativeLaunch; + int cooperativeMultiDeviceLaunch; + size_t sharedMemPerBlockOptin; + int pageableMemoryAccessUsesHostPageTables; + int directManagedMemAccessFromHost; + int maxBlocksPerMultiProcessor; + int accessPolicyMaxWindowSize; + size_t reservedSharedMemPerBlock; + int hostRegisterSupported; + int sparseCudaArraySupported; + int hostRegisterReadOnlySupported; + int timelineSemaphoreInteropSupported; + int memoryPoolsSupported; + int gpuDirectRDMASupported; + unsigned int gpuDirectRDMAFlushWritesOptions; + int gpuDirectRDMAWritesOrdering; + unsigned int memoryPoolSupportedHandleTypes; + int deferredMappingCudaArraySupported; + int ipcEventSupported; + int clusterLaunch; + int unifiedFunctionPointers; + int reserved[63]; +}; +# 2528 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcEventHandle_st +{ + char reserved[64]; +}cudaIpcEventHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcMemHandle_st +{ + char reserved[64]; +}cudaIpcMemHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaMemFabricHandle_st +{ + char reserved[64]; +}cudaMemFabricHandle_t; + + + + +enum __attribute__((device_builtin)) cudaExternalMemoryHandleType { + + + + cudaExternalMemoryHandleTypeOpaqueFd = 1, + + + + cudaExternalMemoryHandleTypeOpaqueWin32 = 2, + + + + cudaExternalMemoryHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalMemoryHandleTypeD3D12Heap = 4, + + + + cudaExternalMemoryHandleTypeD3D12Resource = 5, + + + + cudaExternalMemoryHandleTypeD3D11Resource = 6, + + + + cudaExternalMemoryHandleTypeD3D11ResourceKmt = 7, + + + + cudaExternalMemoryHandleTypeNvSciBuf = 8 +}; +# 2627 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct __attribute__((device_builtin)) cudaExternalMemoryHandleDesc { + + + + enum cudaExternalMemoryHandleType type; + union { + + + + + + int fd; +# 2654 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + + const void *nvSciBufObject; + } handle; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryBufferDesc { + + + + unsigned long long offset; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryMipmappedArrayDesc { + + + + + unsigned long long offset; + + + + struct cudaChannelFormatDesc formatDesc; + + + + struct cudaExtent extent; + + + + + unsigned int flags; + + + + unsigned int numLevels; +}; + + + + +enum __attribute__((device_builtin)) cudaExternalSemaphoreHandleType { + + + + cudaExternalSemaphoreHandleTypeOpaqueFd = 1, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32 = 2, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalSemaphoreHandleTypeD3D12Fence = 4, + + + + cudaExternalSemaphoreHandleTypeD3D11Fence = 5, + + + + cudaExternalSemaphoreHandleTypeNvSciSync = 6, + + + + cudaExternalSemaphoreHandleTypeKeyedMutex = 7, + + + + cudaExternalSemaphoreHandleTypeKeyedMutexKmt = 8, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd = 9, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 = 10 +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreHandleDesc { + + + + enum cudaExternalSemaphoreHandleType type; + union { + + + + + + + int fd; +# 2804 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + const void* nvSciSyncObj; + } handle; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + } params; +# 2868 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + } params; +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams{ + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + unsigned int reserved[12]; + } params; +# 2963 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + unsigned int reserved[10]; + } params; +# 3014 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; +# 3027 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaError cudaError_t; + + + + +typedef __attribute__((device_builtin)) struct CUstream_st *cudaStream_t; + + + + +typedef __attribute__((device_builtin)) struct CUevent_st *cudaEvent_t; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphicsResource *cudaGraphicsResource_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalMemory_st *cudaExternalMemory_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalSemaphore_st *cudaExternalSemaphore_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraph_st *cudaGraph_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraphNode_st *cudaGraphNode_t; + + + + +typedef __attribute__((device_builtin)) struct CUuserObject_st *cudaUserObject_t; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaGraphConditionalHandle; + + + + +typedef __attribute__((device_builtin)) struct CUfunc_st *cudaFunction_t; + + + + +typedef __attribute__((device_builtin)) struct CUkern_st *cudaKernel_t; + + + + +enum __attribute__((device_builtin)) cudaJitOption +{ + + + + + + cudaJitMaxRegisters = 0, +# 3108 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitThreadsPerBlock = 1, + + + + + + + + cudaJitWallTime = 2, +# 3125 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitInfoLogBuffer = 3, +# 3134 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitInfoLogBufferSizeBytes = 4, +# 3143 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitErrorLogBuffer = 5, +# 3152 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitErrorLogBufferSizeBytes = 6, + + + + + + + + cudaJitOptimizationLevel = 7, + + + + + + + + cudaJitFallbackStrategy = 10, + + + + + + + + cudaJitGenerateDebugInfo = 11, + + + + + + + cudaJitLogVerbose = 12, + + + + + + + cudaJitGenerateLineInfo = 13, + + + + + + + + cudaJitCacheMode = 14, + + + + + + + cudaJitPositionIndependentCode = 30, +# 3218 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitMinCtaPerSm = 31, +# 3231 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitMaxThreadsPerBlock = 32, +# 3241 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaJitOverrideDirectiveValues = 33, +}; + + + + + +enum __attribute__((device_builtin)) cudaLibraryOption +{ + cudaLibraryHostUniversalFunctionAndDataTable = 0, +# 3261 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaLibraryBinaryIsPreserved = 1, +}; + +struct __attribute__((device_builtin)) cudalibraryHostUniversalFunctionAndDataTable +{ + void *functionTable; + size_t functionWindowSize; + void *dataTable; + size_t dataWindowSize; +}; + + + + +enum __attribute__((device_builtin)) cudaJit_CacheMode +{ + cudaJitCacheOptionNone = 0, + cudaJitCacheOptionCG, + cudaJitCacheOptionCA +}; + + + + +enum __attribute__((device_builtin)) cudaJit_Fallback +{ + cudaPreferPtx = 0, + + cudaPreferBinary +}; + + + + +typedef __attribute__((device_builtin)) struct CUlib_st *cudaLibrary_t; + + + + +typedef __attribute__((device_builtin)) struct CUmemPoolHandle_st *cudaMemPool_t; + + + + +enum __attribute__((device_builtin)) cudaCGScope { + cudaCGScopeInvalid = 0, + cudaCGScopeGrid = 1, + cudaCGScopeMultiGrid = 2 +}; + + + + +struct __attribute__((device_builtin)) cudaLaunchParams +{ + void *func; + dim3 gridDim; + dim3 blockDim; + void **args; + size_t sharedMem; + cudaStream_t stream; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParams { + void* func; + dim3 gridDim; + dim3 blockDim; + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParamsV2 { + void* func; + + dim3 gridDim; + dim3 blockDim; + + + + + + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParamsV2 { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParamsV2 { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + +enum __attribute__((device_builtin)) cudaGraphConditionalHandleFlags { + cudaGraphCondAssignDefault = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphConditionalNodeType { + cudaGraphCondTypeIf = 0, + cudaGraphCondTypeWhile = 1, + cudaGraphCondTypeSwitch = 2, +}; + + + + +struct __attribute__((device_builtin)) cudaConditionalNodeParams { + cudaGraphConditionalHandle handle; + + + enum cudaGraphConditionalNodeType type; + unsigned int size; + + cudaGraph_t *phGraph_out; +# 3432 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +}; + + + + +enum __attribute__((device_builtin)) cudaGraphNodeType { + cudaGraphNodeTypeKernel = 0x00, + cudaGraphNodeTypeMemcpy = 0x01, + cudaGraphNodeTypeMemset = 0x02, + cudaGraphNodeTypeHost = 0x03, + cudaGraphNodeTypeGraph = 0x04, + cudaGraphNodeTypeEmpty = 0x05, + cudaGraphNodeTypeWaitEvent = 0x06, + cudaGraphNodeTypeEventRecord = 0x07, + cudaGraphNodeTypeExtSemaphoreSignal = 0x08, + cudaGraphNodeTypeExtSemaphoreWait = 0x09, + cudaGraphNodeTypeMemAlloc = 0x0a, + cudaGraphNodeTypeMemFree = 0x0b, + cudaGraphNodeTypeConditional = 0x0d, +# 3467 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + cudaGraphNodeTypeCount +}; + + + + +struct __attribute__((device_builtin)) cudaChildGraphNodeParams { + cudaGraph_t graph; + +}; + + + + +struct __attribute__((device_builtin)) cudaEventRecordNodeParams { + cudaEvent_t event; +}; + + + + +struct __attribute__((device_builtin)) cudaEventWaitNodeParams { + cudaEvent_t event; +}; + + + + +struct __attribute__((device_builtin)) cudaGraphNodeParams { + enum cudaGraphNodeType type; + int reserved0[3]; + + union { + long long reserved1[29]; + struct cudaKernelNodeParamsV2 kernel; + struct cudaMemcpyNodeParams memcpy; + struct cudaMemsetParamsV2 memset; + struct cudaHostNodeParamsV2 host; + struct cudaChildGraphNodeParams graph; + struct cudaEventWaitNodeParams eventWait; + struct cudaEventRecordNodeParams eventRecord; + struct cudaExternalSemaphoreSignalNodeParamsV2 extSemSignal; + struct cudaExternalSemaphoreWaitNodeParamsV2 extSemWait; + struct cudaMemAllocNodeParamsV2 alloc; + struct cudaMemFreeNodeParams free; + struct cudaConditionalNodeParams conditional; + }; + + long long reserved2; +}; + + + + +typedef __attribute__((device_builtin)) enum cudaGraphDependencyType_enum { + cudaGraphDependencyTypeDefault = 0, + cudaGraphDependencyTypeProgrammatic = 1 + + + + +} cudaGraphDependencyType; + + + + + + +typedef __attribute__((device_builtin)) struct cudaGraphEdgeData_st { + unsigned char from_port; +# 3546 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + unsigned char to_port; + + + + + + + unsigned char type; + + + unsigned char reserved[5]; + +} cudaGraphEdgeData; +# 3579 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct CUgraphExec_st* cudaGraphExec_t; + + + + +enum __attribute__((device_builtin)) cudaGraphExecUpdateResult { + cudaGraphExecUpdateSuccess = 0x0, + cudaGraphExecUpdateError = 0x1, + cudaGraphExecUpdateErrorTopologyChanged = 0x2, + cudaGraphExecUpdateErrorNodeTypeChanged = 0x3, + cudaGraphExecUpdateErrorFunctionChanged = 0x4, + cudaGraphExecUpdateErrorParametersChanged = 0x5, + cudaGraphExecUpdateErrorNotSupported = 0x6, + cudaGraphExecUpdateErrorUnsupportedFunctionChange = 0x7, + cudaGraphExecUpdateErrorAttributesChanged = 0x8 +}; + + + + +typedef __attribute__((device_builtin)) enum cudaGraphInstantiateResult { + cudaGraphInstantiateSuccess = 0, + cudaGraphInstantiateError = 1, + cudaGraphInstantiateInvalidStructure = 2, + cudaGraphInstantiateNodeOperationNotSupported = 3, + cudaGraphInstantiateMultipleDevicesNotSupported = 4, + cudaGraphInstantiateConditionalHandleUnused = 5 +} cudaGraphInstantiateResult; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphInstantiateParams_st +{ + unsigned long long flags; + cudaStream_t uploadStream; + cudaGraphNode_t errNode_out; + cudaGraphInstantiateResult result_out; +} cudaGraphInstantiateParams; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphExecUpdateResultInfo_st { + + + + enum cudaGraphExecUpdateResult result; + + + + + + + cudaGraphNode_t errorNode; + + + + + cudaGraphNode_t errorFromNode; +} cudaGraphExecUpdateResultInfo; + + + + +typedef struct CUgraphDeviceUpdatableNode_st* cudaGraphDeviceNode_t; + + + + +enum __attribute__((device_builtin)) cudaGraphKernelNodeField +{ + cudaGraphKernelNodeFieldInvalid = 0, + cudaGraphKernelNodeFieldGridDim, + cudaGraphKernelNodeFieldParam, + cudaGraphKernelNodeFieldEnabled +}; + + + + +struct __attribute__((device_builtin)) cudaGraphKernelNodeUpdate { + cudaGraphDeviceNode_t node; + enum cudaGraphKernelNodeField field; + union { + + dim3 gridDim; + + + + + struct { + const void *pValue; + size_t offset; + size_t size; + } param; + unsigned int isEnabled; + } updateData; +}; + + + + + +enum __attribute__((device_builtin)) cudaGetDriverEntryPointFlags { + cudaEnableDefault = 0x0, + cudaEnableLegacyStream = 0x1, + cudaEnablePerThreadDefaultStream = 0x2 +}; + + + + +enum __attribute__((device_builtin)) cudaDriverEntryPointQueryResult { + cudaDriverEntryPointSuccess = 0, + cudaDriverEntryPointSymbolNotFound = 1, + cudaDriverEntryPointVersionNotSufficent = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphDebugDotFlags { + cudaGraphDebugDotFlagsVerbose = 1<<0, + cudaGraphDebugDotFlagsKernelNodeParams = 1<<2, + cudaGraphDebugDotFlagsMemcpyNodeParams = 1<<3, + cudaGraphDebugDotFlagsMemsetNodeParams = 1<<4, + cudaGraphDebugDotFlagsHostNodeParams = 1<<5, + cudaGraphDebugDotFlagsEventNodeParams = 1<<6, + cudaGraphDebugDotFlagsExtSemasSignalNodeParams = 1<<7, + cudaGraphDebugDotFlagsExtSemasWaitNodeParams = 1<<8, + cudaGraphDebugDotFlagsKernelNodeAttributes = 1<<9, + cudaGraphDebugDotFlagsHandles = 1<<10, + cudaGraphDebugDotFlagsConditionalNodeParams = 1<<15, +}; + + + + +enum __attribute__((device_builtin)) cudaGraphInstantiateFlags { + cudaGraphInstantiateFlagAutoFreeOnLaunch = 1 + , cudaGraphInstantiateFlagUpload = 2 + + + , cudaGraphInstantiateFlagDeviceLaunch = 4 + + + , cudaGraphInstantiateFlagUseNodePriority = 8 + +}; +# 3746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaLaunchMemSyncDomain { + cudaLaunchMemSyncDomainDefault = 0, + cudaLaunchMemSyncDomainRemote = 1 +} cudaLaunchMemSyncDomain; +# 3762 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef __attribute__((device_builtin)) struct cudaLaunchMemSyncDomainMap_st { + unsigned char default_; + unsigned char remote; +} cudaLaunchMemSyncDomainMap; + + + + +typedef __attribute__((device_builtin)) enum cudaLaunchAttributeID { + cudaLaunchAttributeIgnore = 0 + , cudaLaunchAttributeAccessPolicyWindow = 1 + + , cudaLaunchAttributeCooperative = 2 + + , cudaLaunchAttributeSynchronizationPolicy = 3 + , cudaLaunchAttributeClusterDimension = 4 + + , cudaLaunchAttributeClusterSchedulingPolicyPreference = 5 + + , cudaLaunchAttributeProgrammaticStreamSerialization = 6 +# 3792 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeProgrammaticEvent = 7 +# 3818 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributePriority = 8 + + , cudaLaunchAttributeMemSyncDomainMap = 9 + + , cudaLaunchAttributeMemSyncDomain = 10 + + , cudaLaunchAttributePreferredClusterDimension = 11 +# 3860 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeLaunchCompletionEvent = 12 +# 3882 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributeDeviceUpdatableKernelNode = 13 +# 3910 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + , cudaLaunchAttributePreferredSharedMemoryCarveout = 14 + + + + + + +} cudaLaunchAttributeID; + + + + +typedef __attribute__((device_builtin)) union cudaLaunchAttributeValue { + char pad[64]; + struct cudaAccessPolicyWindow accessPolicyWindow; + int cooperative; + + enum cudaSynchronizationPolicy syncPolicy; +# 3941 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } clusterDim; + enum cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; + + + int programmaticStreamSerializationAllowed; +# 3960 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + cudaEvent_t event; + int flags; + int triggerAtBlockStart; + } programmaticEvent; + int priority; + cudaLaunchMemSyncDomainMap memSyncDomainMap; + + + cudaLaunchMemSyncDomain memSyncDomain; +# 3984 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } preferredClusterDim; +# 3997 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" + struct { + cudaEvent_t event; + int flags; + } launchCompletionEvent; + + + + + + + + struct { + int deviceUpdatable; + cudaGraphDeviceNode_t devNode; + } deviceUpdatableKernelNode; + unsigned int sharedMemCarveout; +} cudaLaunchAttributeValue; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchAttribute_st { + cudaLaunchAttributeID id; + char pad[8 - sizeof(cudaLaunchAttributeID)]; + cudaLaunchAttributeValue val; +} cudaLaunchAttribute; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchConfig_st { + dim3 gridDim; + dim3 blockDim; + size_t dynamicSmemBytes; + cudaStream_t stream; + cudaLaunchAttribute *attrs; + unsigned int numAttrs; +} cudaLaunchConfig_t; +# 4061 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum __attribute__((device_builtin)) cudaDeviceNumaConfig { + cudaDeviceNumaConfigNone = 0, + cudaDeviceNumaConfigNumaNode, +}; + + + + +typedef struct cudaAsyncCallbackEntry* cudaAsyncCallbackHandle_t; + +struct cudaAsyncCallbackEntry; + + + + +typedef __attribute__((device_builtin)) enum cudaAsyncNotificationType_enum { + cudaAsyncNotificationTypeOverBudget = 0x1 +} cudaAsyncNotificationType; + + + + +typedef __attribute__((device_builtin)) struct cudaAsyncNotificationInfo +{ + cudaAsyncNotificationType type; + union { + struct { + unsigned long long bytesOverBudget; + } overBudget; + } info; +} cudaAsyncNotificationInfo_t; + +typedef void (*cudaAsyncCallback)(cudaAsyncNotificationInfo_t*, void*, cudaAsyncCallbackHandle_t); +# 60 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +enum __attribute__((device_builtin)) cudaSurfaceBoundaryMode +{ + cudaBoundaryModeZero = 0, + cudaBoundaryModeClamp = 1, + cudaBoundaryModeTrap = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSurfaceFormatMode +{ + cudaFormatModeForced = 0, + cudaFormatModeAuto = 1 +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaSurfaceObject_t; +# 63 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +enum __attribute__((device_builtin)) cudaTextureAddressMode +{ + cudaAddressModeWrap = 0, + cudaAddressModeClamp = 1, + cudaAddressModeMirror = 2, + cudaAddressModeBorder = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureFilterMode +{ + cudaFilterModePoint = 0, + cudaFilterModeLinear = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureReadMode +{ + cudaReadModeElementType = 0, + cudaReadModeNormalizedFloat = 1 +}; + + + + +struct __attribute__((device_builtin)) cudaTextureDesc +{ + + + + enum cudaTextureAddressMode addressMode[3]; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureReadMode readMode; + + + + int sRGB; + + + + float borderColor[4]; + + + + int normalizedCoords; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; + + + + int seamlessCubemap; +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaTextureObject_t; +# 64 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 2 +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" 1 +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" +typedef enum cudaDataType_t +{ + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, + CUDA_R_8F_E4M3 = 28, + CUDA_R_8F_UE4M3 = CUDA_R_8F_E4M3, + CUDA_R_8F_E5M2 = 29, + CUDA_R_8F_UE8M0 = 30, + CUDA_R_6F_E2M3 = 31, + CUDA_R_6F_E3M2 = 32, + CUDA_R_4F_E2M1 = 33, +} cudaDataType; + + +typedef enum libraryPropertyType_t +{ + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 1 +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 151 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 + +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + + +#pragma GCC visibility push(default) + + + extern "C++" __attribute__ ((__noreturn__, __always_inline__)) + inline void __terminate() noexcept + { + void terminate() noexcept __attribute__ ((__noreturn__,__cold__)); + terminate(); + } +#pragma GCC visibility pop +} +# 341 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 534 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ +#pragma GCC visibility push(default) + + + + + __attribute__((__always_inline__)) + constexpr inline bool + __is_constant_evaluated() noexcept + { + + + + + + return __builtin_is_constant_evaluated(); + + + + } +#pragma GCC visibility pop +} +# 573 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ +#pragma GCC visibility push(default) + + extern "C++" __attribute__ ((__noreturn__)) + void + __glibcxx_assert_fail + (const char* __file, int __line, const char* __function, + const char* __condition) + noexcept; +#pragma GCC visibility pop +} +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std +{ + __attribute__((__always_inline__,__visibility__("default"))) + inline void + __glibcxx_assert_fail() + { } +} +# 683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/os_defines.h" 1 3 +# 684 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/cpu_defines.h" 1 3 +# 687 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 +# 828 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace __gnu_cxx +{ + typedef __decltype(0.0bf16) __bfloat16_t; +} +# 890 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/pstl/pstl_config.h" 1 3 +# 891 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 2 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +# 1 "/usr/include/stdlib.h" 1 3 4 +# 26 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/stdlib.h" 2 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 33 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + +# 1 "/usr/include/bits/waitflags.h" 1 3 4 +# 41 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/bits/waitstatus.h" 1 3 4 +# 42 "/usr/include/stdlib.h" 2 3 4 +# 56 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/floatn.h" 1 3 4 +# 131 "/usr/include/bits/floatn.h" 3 4 +# 1 "/usr/include/bits/floatn-common.h" 1 3 4 +# 24 "/usr/include/bits/floatn-common.h" 3 4 +# 1 "/usr/include/bits/long-double.h" 1 3 4 +# 25 "/usr/include/bits/floatn-common.h" 2 3 4 +# 132 "/usr/include/bits/floatn.h" 2 3 4 +# 57 "/usr/include/stdlib.h" 2 3 4 + + +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; +# 98 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) noexcept (true) ; + + + +extern double atof (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern int atoi (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern long int atol (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +__extension__ extern long long int atoll (const char *__nptr) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern double strtod (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern float strtof (const char *__restrict __nptr, + char **__restrict __endptr) noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern long double strtold (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 141 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float64 strtof64 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float128 strtof128 (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float32x strtof32x (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern _Float64x strtof64x (const char *__restrict __nptr, + char **__restrict __endptr) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 177 "/usr/include/stdlib.h" 3 4 +extern long int strtol (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +extern unsigned long int strtoul (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + +extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtol") + + + __attribute__ ((__nonnull__ (1))); +extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoul") + + + + __attribute__ ((__nonnull__ (1))); + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") + + + __attribute__ ((__nonnull__ (1))); +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") + + + + __attribute__ ((__nonnull__ (1))); + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoll") + + + __attribute__ ((__nonnull__ (1))); +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) noexcept (true) __asm__ ("" "__isoc23_strtoull") + + + + __attribute__ ((__nonnull__ (1))); +# 278 "/usr/include/stdlib.h" 3 4 +extern int strfromd (char *__dest, size_t __size, const char *__format, + double __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + +extern int strfromf (char *__dest, size_t __size, const char *__format, + float __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + +extern int strfroml (char *__dest, size_t __size, const char *__format, + long double __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); +# 298 "/usr/include/stdlib.h" 3 4 +extern int strfromf32 (char *__dest, size_t __size, const char * __format, + _Float32 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64 (char *__dest, size_t __size, const char * __format, + _Float64 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf128 (char *__dest, size_t __size, const char * __format, + _Float128 __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf32x (char *__dest, size_t __size, const char * __format, + _Float32x __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64x (char *__dest, size_t __size, const char * __format, + _Float64x __f) + noexcept (true) __attribute__ ((__nonnull__ (3))); +# 340 "/usr/include/stdlib.h" 3 4 +extern long int strtol_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +extern unsigned long int strtoul_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 4))); + + + + + +extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtol_l") + + + + __attribute__ ((__nonnull__ (1, 4))); +extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoul_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoll_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) noexcept (true) __asm__ ("" "__isoc23_strtoull_l") + + + + + __attribute__ ((__nonnull__ (1, 4))); +# 415 "/usr/include/stdlib.h" 3 4 +extern double strtod_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + +extern float strtof_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + +extern long double strtold_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); +# 436 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64 strtof64_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float128 strtof128_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float32x strtof32x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64x strtof64x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + noexcept (true) __attribute__ ((__nonnull__ (1, 3))); +# 505 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) noexcept (true) ; + + +extern long int a64l (const char *__s) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + +# 1 "/usr/include/sys/types.h" 1 3 4 +# 27 "/usr/include/sys/types.h" 3 4 +extern "C" { + + + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + +typedef __loff_t loff_t; + + + + +typedef __ino_t ino_t; + + + + + + +typedef __ino64_t ino64_t; + + + + +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; + + + + + +typedef __off_t off_t; + + + + + + +typedef __off64_t off64_t; + + + + +typedef __pid_t pid_t; + + + + + +typedef __id_t id_t; + + + + +typedef __ssize_t ssize_t; + + + + + +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; + + + + +# 1 "/usr/include/bits/types/clock_t.h" 1 3 4 + + + + + + +typedef __clock_t clock_t; +# 127 "/usr/include/sys/types.h" 2 3 4 + +# 1 "/usr/include/bits/types/clockid_t.h" 1 3 4 + + + + + + +typedef __clockid_t clockid_t; +# 129 "/usr/include/sys/types.h" 2 3 4 +# 1 "/usr/include/bits/types/time_t.h" 1 3 4 +# 10 "/usr/include/bits/types/time_t.h" 3 4 +typedef __time_t time_t; +# 130 "/usr/include/sys/types.h" 2 3 4 +# 1 "/usr/include/bits/types/timer_t.h" 1 3 4 + + + + + + +typedef __timer_t timer_t; +# 131 "/usr/include/sys/types.h" 2 3 4 + + + +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 145 "/usr/include/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; + + + + +# 1 "/usr/include/bits/stdint-intn.h" 1 3 4 +# 24 "/usr/include/bits/stdint-intn.h" 3 4 +typedef __int8_t int8_t; +typedef __int16_t int16_t; +typedef __int32_t int32_t; +typedef __int64_t int64_t; +# 156 "/usr/include/sys/types.h" 2 3 4 + + +typedef __uint8_t u_int8_t; +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; + + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 176 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 35 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/bits/byteswap.h" 1 3 4 +# 33 "/usr/include/bits/byteswap.h" 3 4 +static __inline __uint16_t +__bswap_16 (__uint16_t __bsx) +{ + + return __builtin_bswap16 (__bsx); + + + +} + + + + + + +static __inline __uint32_t +__bswap_32 (__uint32_t __bsx) +{ + + return __builtin_bswap32 (__bsx); + + + +} +# 69 "/usr/include/bits/byteswap.h" 3 4 +__extension__ static __inline __uint64_t +__bswap_64 (__uint64_t __bsx) +{ + + return __builtin_bswap64 (__bsx); + + + +} +# 36 "/usr/include/endian.h" 2 3 4 +# 1 "/usr/include/bits/uintn-identity.h" 1 3 4 +# 32 "/usr/include/bits/uintn-identity.h" 3 4 +static __inline __uint16_t +__uint16_identity (__uint16_t __x) +{ + return __x; +} + +static __inline __uint32_t +__uint32_identity (__uint32_t __x) +{ + return __x; +} + +static __inline __uint64_t +__uint64_identity (__uint64_t __x) +{ + return __x; +} +# 37 "/usr/include/endian.h" 2 3 4 +# 177 "/usr/include/sys/types.h" 2 3 4 + + +# 1 "/usr/include/sys/select.h" 1 3 4 +# 30 "/usr/include/sys/select.h" 3 4 +# 1 "/usr/include/bits/select.h" 1 3 4 +# 31 "/usr/include/sys/select.h" 2 3 4 + + +# 1 "/usr/include/bits/types/sigset_t.h" 1 3 4 + + + +# 1 "/usr/include/bits/types/__sigset_t.h" 1 3 4 + + + + +typedef struct +{ + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; +} __sigset_t; +# 5 "/usr/include/bits/types/sigset_t.h" 2 3 4 + + +typedef __sigset_t sigset_t; +# 34 "/usr/include/sys/select.h" 2 3 4 + + + +# 1 "/usr/include/bits/types/struct_timeval.h" 1 3 4 + + + + + + + +struct timeval +{ + + + + + __time_t tv_sec; + __suseconds_t tv_usec; + +}; +# 38 "/usr/include/sys/select.h" 2 3 4 + +# 1 "/usr/include/bits/types/struct_timespec.h" 1 3 4 +# 11 "/usr/include/bits/types/struct_timespec.h" 3 4 +struct timespec +{ + + + + __time_t tv_sec; + + + + + __syscall_slong_t tv_nsec; +# 31 "/usr/include/bits/types/struct_timespec.h" 3 4 +}; +# 40 "/usr/include/sys/select.h" 2 3 4 +# 49 "/usr/include/sys/select.h" 3 4 +typedef long int __fd_mask; +# 59 "/usr/include/sys/select.h" 3 4 +typedef struct + { + + + + __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 91 "/usr/include/sys/select.h" 3 4 +extern "C" { +# 102 "/usr/include/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 127 "/usr/include/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); +# 153 "/usr/include/sys/select.h" 3 4 +} +# 180 "/usr/include/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; + + + + + + +typedef __blkcnt_t blkcnt_t; + + + +typedef __fsblkcnt_t fsblkcnt_t; + + + +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/bits/thread-shared-types.h" 1 3 4 +# 44 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/pthreadtypes-arch.h" 1 3 4 +# 21 "/usr/include/bits/pthreadtypes-arch.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/bits/pthreadtypes-arch.h" 2 3 4 +# 45 "/usr/include/bits/thread-shared-types.h" 2 3 4 + +# 1 "/usr/include/bits/atomic_wide_counter.h" 1 3 4 +# 25 "/usr/include/bits/atomic_wide_counter.h" 3 4 +typedef union +{ + __extension__ unsigned long long int __value64; + struct + { + unsigned int __low; + unsigned int __high; + } __value32; +} __atomic_wide_counter; +# 47 "/usr/include/bits/thread-shared-types.h" 2 3 4 + + + + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; + +typedef struct __pthread_internal_slist +{ + struct __pthread_internal_slist *__next; +} __pthread_slist_t; +# 76 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/struct_mutex.h" 1 3 4 +# 22 "/usr/include/bits/struct_mutex.h" 3 4 +struct __pthread_mutex_s +{ + int __lock; + unsigned int __count; + int __owner; + + unsigned int __nusers; + + + + int __kind; + + short __spins; + short __elision; + __pthread_list_t __list; +# 53 "/usr/include/bits/struct_mutex.h" 3 4 +}; +# 77 "/usr/include/bits/thread-shared-types.h" 2 3 4 +# 89 "/usr/include/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/bits/struct_rwlock.h" 1 3 4 +# 23 "/usr/include/bits/struct_rwlock.h" 3 4 +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + + int __cur_writer; + int __shared; + signed char __rwelision; + + + + + unsigned char __pad1[7]; + + + unsigned long int __pad2; + + + unsigned int __flags; +# 55 "/usr/include/bits/struct_rwlock.h" 3 4 +}; +# 90 "/usr/include/bits/thread-shared-types.h" 2 3 4 + + + + +struct __pthread_cond_s +{ + __atomic_wide_counter __wseq; + __atomic_wide_counter __g1_start; + unsigned int __g_size[2] ; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; + unsigned int __unused_initialized_1; + unsigned int __unused_initialized_2; +}; + +typedef unsigned int __tss_t; +typedef unsigned long int __thrd_t; + +typedef struct +{ + int __data ; +} __once_flag; +# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 + + + +typedef unsigned long int pthread_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + +union pthread_attr_t +{ + char __size[56]; + long int __align; +}; + +typedef union pthread_attr_t pthread_attr_t; + + + + +typedef union +{ + struct __pthread_mutex_s __data; + char __size[40]; + long int __align; +} pthread_mutex_t; + + +typedef union +{ + struct __pthread_cond_s __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + + + + + +typedef union +{ + struct __pthread_rwlock_arch_t __data; + char __size[56]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[32]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 228 "/usr/include/sys/types.h" 2 3 4 + + +} +# 515 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) noexcept (true); + + +extern void srandom (unsigned int __seed) noexcept (true); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + noexcept (true) __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + noexcept (true) __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int rand (void) noexcept (true); + +extern void srand (unsigned int __seed) noexcept (true); + + + +extern int rand_r (unsigned int *__seed) noexcept (true); + + + + + + + +extern double drand48 (void) noexcept (true); +extern double erand48 (unsigned short int __xsubi[3]) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) noexcept (true); +extern long int nrand48 (unsigned short int __xsubi[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) noexcept (true); +extern long int jrand48 (unsigned short int __xsubi[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) noexcept (true); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + noexcept (true) __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + __extension__ unsigned long long int __a; + + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + noexcept (true) __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern __uint32_t arc4random (void) + noexcept (true) ; + + +extern void arc4random_buf (void *__buf, size_t __size) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) + noexcept (true) ; + + + + +extern void *malloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + +extern void *calloc (size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ; + + + + + + +extern void *realloc (void *__ptr, size_t __size) + noexcept (true) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); + + +extern void free (void *__ptr) noexcept (true); + + + + + + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__warn_unused_result__)) + __attribute__ ((__alloc_size__ (2, 3))) + __attribute__ ((__malloc__ (__builtin_free, 1))); + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + noexcept (true) __attribute__ ((__malloc__ (reallocarray, 1))); + + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 24 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) noexcept (true); + + + + + +} +# 707 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) noexcept (true) __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + +extern void *aligned_alloc (size_t __alignment, size_t __size) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1))) + __attribute__ ((__alloc_size__ (2))) ; + + + +extern void abort (void) noexcept (true) __attribute__ ((__noreturn__)) __attribute__ ((__cold__)); + + + +extern int atexit (void (*__func) (void)) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + +extern "C++" int at_quick_exit (void (*__func) (void)) + noexcept (true) __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); +# 749 "/usr/include/stdlib.h" 3 4 +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +extern void exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + + +extern void quick_exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + + +extern void _Exit (int __status) noexcept (true) __attribute__ ((__noreturn__)); + + + + +extern char *getenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + +extern char *secure_getenv (const char *__name) + noexcept (true) __attribute__ ((__nonnull__ (1))) ; + + + + + + +extern int putenv (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (const char *__name, const char *__value, int __replace) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) noexcept (true); +# 814 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 827 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 837 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 849 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 859 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 870 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 881 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 891 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 901 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 913 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 923 "/usr/include/stdlib.h" 3 4 +extern int system (const char *__command) ; + + + + + +extern char *canonicalize_file_name (const char *__name) + noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__malloc__)) + __attribute__ ((__malloc__ (__builtin_free, 1))) ; +# 940 "/usr/include/stdlib.h" 3 4 +extern char *realpath (const char *__restrict __name, + char *__restrict __resolved) noexcept (true) ; + + + + + + +typedef int (*__compar_fn_t) (const void *, const void *); + + +typedef __compar_fn_t comparison_fn_t; + + + +typedef int (*__compar_d_fn_t) (const void *, const void *, void *); + + + + +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; + + + + + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); + +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __attribute__ ((__nonnull__ (1, 4))); + + + + +extern int abs (int __x) noexcept (true) __attribute__ ((__const__)) ; +extern long int labs (long int __x) noexcept (true) __attribute__ ((__const__)) ; + + +__extension__ extern long long int llabs (long long int __x) + noexcept (true) __attribute__ ((__const__)) ; + + + + + + +extern div_t div (int __numer, int __denom) + noexcept (true) __attribute__ ((__const__)) ; +extern ldiv_t ldiv (long int __numer, long int __denom) + noexcept (true) __attribute__ ((__const__)) ; + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + noexcept (true) __attribute__ ((__const__)) ; +# 1012 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + noexcept (true) __attribute__ ((__nonnull__ (3))) ; + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + noexcept (true) __attribute__ ((__nonnull__ (3))) ; + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + +extern int mblen (const char *__s, size_t __n) noexcept (true); + + +extern int mbtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n) noexcept (true); + + +extern int wctomb (char *__s, wchar_t __wchar) noexcept (true); + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + const char *__restrict __s, size_t __n) noexcept (true) + __attribute__ ((__access__ (__read_only__, 2))); + +extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + noexcept (true) + __attribute__ ((__access__ (__write_only__, 1, 3))) + __attribute__ ((__access__ (__read_only__, 2))); + + + + + + +extern int rpmatch (const char *__response) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 1099 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *const *__restrict __tokens, + char **__restrict __valuep) + noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))) ; + + + + + + + +extern int posix_openpt (int __oflag) ; + + + + + + + +extern int grantpt (int __fd) noexcept (true); + + + +extern int unlockpt (int __fd) noexcept (true); + + + + +extern char *ptsname (int __fd) noexcept (true) ; + + + + + + +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); + + +extern int getpt (void); + + + + + + +extern int getloadavg (double __loadavg[], int __nelem) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 1155 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/bits/stdlib-float.h" 1 3 4 +# 1156 "/usr/include/stdlib.h" 2 3 4 +# 1167 "/usr/include/stdlib.h" 3 4 +} +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::abs; + + + inline long + abs(long __i) { return __builtin_labs(__i); } + + + + inline long long + abs(long long __x) { return __builtin_llabs (__x); } +# 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + inline constexpr double + abs(double __x) + { return __builtin_fabs(__x); } + + inline constexpr float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + + + __extension__ inline constexpr __int128 + abs(__int128 __x) { return __x >= 0 ? __x : -__x; } +# 135 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 + __extension__ inline constexpr + __float128 + abs(__float128 __x) + { + + + + return __builtin_fabsf128(__x); + + + + + } + + + +} +} +# 82 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 2 3 +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::div_t; + using ::ldiv_t; + + using ::abort; + + using ::aligned_alloc; + + using ::atexit; + + + using ::at_quick_exit; + + + using ::atof; + using ::atoi; + using ::atol; + using ::bsearch; + using ::calloc; + using ::div; + using ::exit; + using ::free; + using ::getenv; + using ::labs; + using ::ldiv; + using ::malloc; + + using ::mblen; + using ::mbstowcs; + using ::mbtowc; + + using ::qsort; + + + using ::quick_exit; + + + using ::rand; + using ::realloc; + using ::srand; + using ::strtod; + using ::strtol; + using ::strtoul; + using ::system; + + using ::wcstombs; + using ::wctomb; + + + + inline ldiv_t + div(long __i, long __j) noexcept { return ldiv(__i, __j); } + + + + +} +# 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" + using ::llabs; + + inline lldiv_t + div(long long __n, long long __d) + { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } + + using ::lldiv; +#pragma GCC diagnostic pop +# 234 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + using ::atoll; + using ::strtoll; + using ::strtoull; + + using ::strtof; + using ::strtold; + + +} + +namespace std +{ + + using ::__gnu_cxx::lldiv_t; + + using ::__gnu_cxx::_Exit; + + using ::__gnu_cxx::llabs; + using ::__gnu_cxx::div; + using ::__gnu_cxx::lldiv; + + using ::__gnu_cxx::atoll; + using ::__gnu_cxx::strtof; + using ::__gnu_cxx::strtoll; + using ::__gnu_cxx::strtoull; + using ::__gnu_cxx::strtold; +} +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 2 3 + +using std::abort; +using std::atexit; +using std::exit; + + + using std::at_quick_exit; + + + using std::quick_exit; + + + using std::_Exit; + + + + +using std::div_t; +using std::ldiv_t; + +using std::abs; +using std::atof; +using std::atoi; +using std::atol; +using std::bsearch; +using std::calloc; +using std::div; +using std::free; +using std::getenv; +using std::labs; +using std::ldiv; +using std::malloc; + +using std::mblen; +using std::mbstowcs; +using std::mbtowc; + +using std::qsort; +using std::rand; +using std::realloc; +using std::srand; +using std::strtod; +using std::strtol; +using std::strtoul; +using std::system; + +using std::wcstombs; +using std::wctomb; +# 55 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 2 +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" 2 +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" + +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern "C" +{ + + + + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(void); +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetLimit(size_t *pValue, enum cudaLimit limit); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2DeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2PeekAtLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* __cudaCDP2GetErrorString(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* __cudaCDP2GetErrorName(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetDeviceCount(int *count); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2GetDevice(int *device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamDestroy(cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2StreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecord(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2EventDestroy(cudaEvent_t event); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2FuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Free(void *devPtr); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Malloc(void **devPtr, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemcpyAsync_ptsz(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy2DAsync_ptsz(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memcpy3DAsync_ptsz(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2MemsetAsync_ptsz(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset2DAsync_ptsz(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2Memset3DAsync_ptsz(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2RuntimeGetVersion(int *runtimeVersion); +extern __attribute__((device)) __attribute__((cudart_builtin)) void * __cudaCDP2GetParameterBuffer(size_t alignment, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) void * __cudaCDP2GetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2LaunchDeviceV2(void *parameterBuffer, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 311 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) cudaGraphExec_t cudaGetCurrentGraphExec(void) +{ + unsigned long long current_graph_exec; + asm ("mov.u64 %0, %%current_graph_exec;" : "=l"(current_graph_exec)); + return (cudaGraphExec_t)current_graph_exec; +} +# 346 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const void *value , size_t size); +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 430 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate *updates, size_t updateCount); +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaTriggerProgrammaticLaunchCompletion(void) +{ + asm volatile("griddepcontrol.launch_dependents;":::); +} +# 464 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaGridDependencySynchronize(void) +{ + asm volatile("griddepcontrol.wait;":::"memory"); +} +# 479 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) void cudaGraphSetConditional(cudaGraphConditionalHandle handle, unsigned int value); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long cudaCGGetIntrinsicHandle(enum cudaCGScope scope); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetSize(unsigned int *numThreads, unsigned int *numGrids, unsigned long long handle); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetRank(unsigned int *threadRank, unsigned int *gridRank, unsigned long long handle); +# 714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBuffer(size_t alignment, size_t size) +{ + return __cudaCDP2GetParameterBuffer(alignment, size); +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize) +{ + return __cudaCDP2GetParameterBufferV2(func, gridDimension, blockDimension, sharedMemSize); +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream) +{ + return __cudaCDP2LaunchDevice_ptsz(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +} + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream) +{ + return __cudaCDP2LaunchDeviceV2_ptsz(parameterBuffer, stream); +} +# 800 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" + static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream) + { + return __cudaCDP2LaunchDevice(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); + } + + static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream) + { + return __cudaCDP2LaunchDeviceV2(parameterBuffer, stream); + } +# 862 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +} + + + + + +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(T **devPtr, size_t size); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, T *entry); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned int flags); +# 901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +template +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const T &value) +{ + return cudaGraphKernelNodeSetParam(node, offset, &value, sizeof(T)); +} +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 2 +# 287 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern "C" { +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceReset(void); +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetLimit(enum cudaLimit limit, size_t value); +# 478 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +# 501 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t *maxWidthInElements, const struct cudaChannelFormatDesc *fmtDesc, int device); +# 535 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 572 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority); +# 616 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetCacheConfig(enum cudaFuncCache cacheConfig); +# 643 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetByPCIBusId(int *device, const char *pciBusId); +# 673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetPCIBusId(char *pciBusId, int len, int device); +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t *handle, cudaEvent_t event); +# 768 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenEventHandle(cudaEvent_t *event, cudaIpcEventHandle_t handle); +# 813 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t *handle, void *devPtr); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenMemHandle(void **devPtr, cudaIpcMemHandle_t handle, unsigned int flags); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcCloseMemHandle(void *devPtr); +# 951 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(enum cudaFlushGPUDirectRDMAWritesTarget target, enum cudaFlushGPUDirectRDMAWritesScope scope); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void* userData, cudaAsyncCallbackHandle_t* callback); +# 1012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +# 1105 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaDeviceSetSharedMemConfig(enum cudaSharedMemConfig config); +# 1146 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadExit(void); +# 1172 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSynchronize(void); +# 1221 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetLimit(enum cudaLimit limit, size_t value); +# 1254 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetLimit(size_t *pValue, enum cudaLimit limit); +# 1290 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 1337 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetCacheConfig(enum cudaFuncCache cacheConfig); +# 1402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +# 1453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +# 1469 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +# 1485 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +# 1514 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +# 1818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceProperties_v2(struct cudaDeviceProp *prop, int device); +# 2024 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +# 2042 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t *memPool, int device); +# 2066 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetMemPool(cudaMemPool_t *memPool, int device); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetNvSciSyncAttributes(void *nvSciSyncAttrList, int device, int flags); +# 2188 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetP2PAttribute(int *value, enum cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2210 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaChooseDevice(int *device, const struct cudaDeviceProp *prop); +# 2239 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaInitDevice(int device, unsigned int deviceFlags, unsigned int flags); +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDevice(int device); +# 2307 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +# 2338 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetValidDevices(int *device_arr, int len); +# 2408 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDeviceFlags( unsigned int flags ); +# 2453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDeviceFlags( unsigned int *flags ); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamCreate(cudaStream_t *pStream); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +# 2585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithPriority(cudaStream_t *pStream, unsigned int flags, int priority); +# 2613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int *priority); +# 2639 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned int *flags); +# 2676 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long *streamId); +# 2702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetDevice(cudaStream_t hStream, int *device); +# 2717 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCtxResetPersistingL2Cache(void); +# 2737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2758 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 2782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamSetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2847 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags = 0); + + + + + + + +typedef void ( *cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void *userData); +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamAddCallback(cudaStream_t stream, + cudaStreamCallback_t callback, void *userData, unsigned int flags); +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamQuery(cudaStream_t stream); +# 3055 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void *devPtr, size_t length = 0, unsigned int flags = 0x04); +# 3094 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode); +# 3135 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCaptureToGraph(cudaStream_t stream, cudaGraph_t graph, const cudaGraphNode_t *dependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, enum cudaStreamCaptureMode mode); +# 3186 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode); +# 3215 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph); +# 3253 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus); +# 3303 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, size_t *numDependencies_out = 0); +# 3362 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v3(cudaStream_t stream, + enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, + cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, + const cudaGraphEdgeData **edgeData_out = 0, size_t *numDependencies_out = 0); +# 3402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t *dependencies, size_t numDependencies, unsigned int flags = 0); +# 3437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies_v2(cudaStream_t stream, cudaGraphNode_t *dependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, unsigned int flags = 0); +# 3474 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventCreate(cudaEvent_t *event); +# 3511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +# 3552 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3600 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned int flags = 0); +# 3633 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventQuery(cudaEvent_t event); +# 3664 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3694 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3787 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime_v2(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc); +# 4023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedBuffer(void **devPtr, cudaExternalMemory_t extMem, const struct cudaExternalMemoryBufferDesc *bufferDesc); +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t *mipmap, cudaExternalMemory_t extMem, const struct cudaExternalMemoryMipmappedArrayDesc *mipmapDesc); +# 4107 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t *extSem_out, const struct cudaExternalSemaphoreHandleDesc *semHandleDesc); +# 4344 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreSignalParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 4420 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreWaitParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 4443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t *config, const void *func, void **args); +# 4632 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4733 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaLaunchCooperativeKernelMultiDevice(struct cudaLaunchParams *launchParamsList, unsigned int numDevices, unsigned int flags = 0); +# 4783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFuncSetCacheConfig(const void *func, enum cudaFuncCache cacheConfig); +# 4818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +# 4877 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncSetAttribute(const void *func, enum cudaFuncAttribute attr, int value); +# 4903 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetName(const char **name, const void *func); +# 4926 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetParamInfo(const void *func, size_t paramIndex, size_t *paramOffset, size_t *paramSize); +# 4950 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForDevice(double *d); +# 4974 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForHost(double *d); +# 5040 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void *userData); +# 5114 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig(const void *func, enum cudaSharedMemConfig config); +# 5171 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize); +# 5201 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t *dynamicSmemSize, const void *func, int numBlocks, int blockSize); +# 5247 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize, unsigned int flags); +# 5283 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxPotentialClusterSize(int *clusterSize, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5323 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveClusters(int *numClusters, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags = 0x01); +# 5476 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +# 5513 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocHost(void **ptr, size_t size); +# 5556 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height); +# 5608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocArray(cudaArray_t *array, const struct cudaChannelFormatDesc *desc, size_t width, size_t height = 0, unsigned int flags = 0); +# 5647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +# 5670 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeHost(void *ptr); +# 5693 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeArray(cudaArray_t array); +# 5716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostAlloc(void **pHost, size_t size, unsigned int flags); +# 5879 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostRegister(void *ptr, size_t size, unsigned int flags); +# 5902 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostUnregister(void *ptr); +# 5947 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags); +# 5969 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetFlags(unsigned int *pFlags, void *pHost); +# 6008 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3D(struct cudaPitchedPtr* pitchedDevPtr, struct cudaExtent extent); +# 6153 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3DArray(cudaArray_t *array, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int flags = 0); +# 6298 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t *mipmappedArray, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int numLevels, unsigned int flags = 0); +# 6331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t *levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned int level); +# 6436 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3D(const struct cudaMemcpy3DParms *p); +# 6468 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p); +# 6586 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream = 0); +# 6613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeerAsync(const struct cudaMemcpy3DPeerParms *p, cudaStream_t stream = 0); +# 6647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemGetInfo(size_t *free, size_t *total); +# 6673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetInfo(struct cudaChannelFormatDesc *desc, struct cudaExtent *extent, unsigned int *flags, cudaArray_t array); +# 6702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetPlane(cudaArray_t *pPlaneArray, cudaArray_t hArray, unsigned int planeIdx); +# 6725 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaArray_t array, int device); +# 6749 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6777 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaArray_t array); +# 6807 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaMipmappedArray_t mipmap); +# 6852 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind); +# 6887 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count); +# 6936 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6986 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 7036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArray(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind); +# 7083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbol(const void *symbol, const void *src, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 7170 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbol(void *dst, const void *symbol, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 7227 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7262 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeerAsync(void *dst, int dstDevice, const void *src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 7334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyBatchAsync(void **dsts, void **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes *attrs, size_t *attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t stream); +# 7402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DBatchAsync(size_t numOps, struct cudaMemcpy3DBatchOp *opList, size_t *failIdx, unsigned long long flags, cudaStream_t stream); +# 7465 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7523 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7580 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArrayAsync(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync(const void *symbol, const void *src, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7682 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync(void *dst, const void *symbol, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7711 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset(void *devPtr, int value, size_t count); +# 7745 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height); +# 7791 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent); +# 7827 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7868 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7921 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream = 0); +# 7949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolAddress(void **devPtr, const void *symbol); +# 7976 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolSize(size_t *size, const void *symbol); +# 8048 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync(const void *devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 8129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync_v2(const void *devPtr, size_t count, struct cudaMemLocation location, unsigned int flags, cudaStream_t stream = 0); +# 8243 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, int device); +# 8366 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise_v2(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, struct cudaMemLocation location); +# 8448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttribute(void *data, size_t dataSize, enum cudaMemRangeAttribute attribute, const void *devPtr, size_t count); +# 8491 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttributes(void **data, size_t *dataSizes, enum cudaMemRangeAttribute *attributes, size_t numAttributes, const void *devPtr, size_t count); +# 8551 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind); +# 8593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArray(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind); +# 8636 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 8687 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArrayAsync(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8806 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocAsync(void **devPtr, size_t size, cudaStream_t hStream); +# 8832 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeAsync(void *devPtr, cudaStream_t hStream); +# 8857 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8964 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const struct cudaMemAccessDesc *descList, size_t count); +# 8977 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAccess(enum cudaMemAccessFlags *flags, cudaMemPool_t memPool, struct cudaMemLocation *location); +# 9021 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolCreate(cudaMemPool_t *memPool, const struct cudaMemPoolProps *poolProps); +# 9043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 9079 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocFromPoolAsync(void **ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 9104 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportToShareableHandle( + void *shareableHandle, + cudaMemPool_t memPool, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 9131 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportFromShareableHandle( + cudaMemPool_t *memPool, + void *shareableHandle, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 9154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportPointer(struct cudaMemPoolPtrExportData *exportData, void *ptr); +# 9183 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportPointer(void **ptr, cudaMemPool_t memPool, struct cudaMemPoolPtrExportData *exportData); +# 9336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr); +# 9377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice); +# 9419 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags); +# 9441 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9505 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9540 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned int flags); +# 9579 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9646 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, cudaGraphicsResource_t resource); +# 9684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t *array, cudaGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel); +# 9713 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t *mipmappedArray, cudaGraphicsResource_t resource); +# 9748 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetChannelDesc(struct cudaChannelFormatDesc *desc, cudaArray_const_t array); +# 9778 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) struct cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, enum cudaChannelFormatKind f); +# 10003 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateTextureObject(cudaTextureObject_t *pTexObject, const struct cudaResourceDesc *pResDesc, const struct cudaTextureDesc *pTexDesc, const struct cudaResourceViewDesc *pResViewDesc); +# 10023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 10043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaTextureObject_t texObject); +# 10063 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc(struct cudaTextureDesc *pTexDesc, cudaTextureObject_t texObject); +# 10084 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceViewDesc(struct cudaResourceViewDesc *pResViewDesc, cudaTextureObject_t texObject); +# 10129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t *pSurfObject, const struct cudaResourceDesc *pResDesc); +# 10149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 10168 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSurfaceObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaSurfaceObject_t surfObject); +# 10202 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDriverGetVersion(int *driverVersion); +# 10231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 10278 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphCreate(cudaGraph_t *pGraph, unsigned int flags); +# 10377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaKernelNodeParams *pNodeParams); +# 10410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, struct cudaKernelNodeParams *pNodeParams); +# 10437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 10457 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeCopyAttributes( + cudaGraphNode_t hSrc, + cudaGraphNode_t hDst); +# 10480 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 10504 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 10555 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemcpy3DParms *pCopyParams); +# 10614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10751 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode1D( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, struct cudaMemcpy3DParms *pNodeParams); +# 10810 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 10849 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10895 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10941 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams1D( + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemsetParams *pMemsetParams); +# 11012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, struct cudaMemsetParams *pNodeParams); +# 11036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 11078 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddHostNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaHostNodeParams *pNodeParams); +# 11101 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, struct cudaHostNodeParams *pNodeParams); +# 11125 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 11166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 11193 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t *pGraph); +# 11231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies); +# 11275 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11302 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11330 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11404 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11432 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11482 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11515 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreSignalNodeParams *params_out); +# 11543 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11626 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreWaitNodeParams *params_out); +# 11654 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11732 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaMemAllocNodeParams *nodeParams); +# 11759 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, struct cudaMemAllocNodeParams *params_out); +# 11820 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, void *dptr); +# 11844 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void *dptr_out); +# 11872 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGraphMemTrim(int device); +# 11909 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11943 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphClone(cudaGraph_t *pGraphClone, cudaGraph_t originalGraph); +# 11999 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t *pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 12030 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, enum cudaGraphNodeType *pType); +# 12061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t *nodes, size_t *numNodes); +# 12092 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t *pRootNodes, size_t *pNumRootNodes); +# 12126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, size_t *numEdges); +# 12166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges_v2(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, cudaGraphEdgeData *edgeData, size_t *numEdges); +# 12197 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, size_t *pNumDependencies); +# 12234 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, cudaGraphEdgeData *edgeData, size_t *pNumDependencies); +# 12266 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, size_t *pNumDependentNodes); +# 12304 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, cudaGraphEdgeData *edgeData, size_t *pNumDependentNodes); +# 12335 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 12367 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, const cudaGraphEdgeData *edgeData, size_t numDependencies); +# 12398 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 12433 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, const cudaGraphEdgeData *edgeData, size_t numDependencies); +# 12463 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12534 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiate(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12607 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams *instantiateParams); +# 12739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long *flags); +# 12799 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 12850 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 12905 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 12968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 13029 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams1D( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 13088 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 13128 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 13175 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 13220 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13265 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13313 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 13361 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 13401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int isEnabled); +# 13435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int *isEnabled); +# 13529 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo *resultInfo); +# 13554 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13629 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13648 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char *path, unsigned int flags); +# 13684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectCreate(cudaUserObject_t *object_out, void *ptr, cudaHostFn_t destroy, unsigned int initialRefcount, unsigned int flags); +# 13708 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned int count = 1); +# 13736 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned int count = 1); +# 13764 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1, unsigned int flags = 0); +# 13789 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1); +# 13831 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaGraphNodeParams *nodeParams); +# 13875 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddNode_v2(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, const cudaGraphEdgeData *dependencyData, size_t numDependencies, struct cudaGraphNodeParams *nodeParams); +# 13904 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13953 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13980 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphConditionalHandleCreate(cudaGraphConditionalHandle *pHandle_out, cudaGraph_t graph, unsigned int defaultLaunchValue = 0, unsigned int flags = 0); +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPoint(const char *symbol, void **funcPtr, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 3 4 + __null +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + ); +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPointByVersion(const char *symbol, void **funcPtr, unsigned int cudaVersion, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" 3 4 + __null +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" + ); +# 14212 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryLoadData(cudaLibrary_t *library, const void *code, + enum cudaJitOption *jitOptions, void **jitOptionsValues, unsigned int numJitOptions, + enum cudaLibraryOption *libraryOptions, void** libraryOptionValues, unsigned int numLibraryOptions); +# 14272 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryLoadFromFile(cudaLibrary_t *library, const char *fileName, + enum cudaJitOption *jitOptions, void **jitOptionsValues, unsigned int numJitOptions, + enum cudaLibraryOption *libraryOptions, void **libraryOptionValues, unsigned int numLibraryOptions); +# 14293 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryUnload(cudaLibrary_t library); +# 14318 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetKernel(cudaKernel_t *pKernel, cudaLibrary_t library, const char *name); +# 14352 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetGlobal(void **dptr, size_t *bytes, cudaLibrary_t library, const char *name); +# 14385 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetManaged(void **dptr, size_t *bytes, cudaLibrary_t library, const char *name); +# 14412 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetUnifiedFunction(void **fptr, cudaLibrary_t library, const char *symbol); +# 14434 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryGetKernelCount(unsigned int *count, cudaLibrary_t lib); +# 14456 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLibraryEnumerateKernels(cudaKernel_t *kernels, unsigned int numKernels, cudaLibrary_t lib); +# 14525 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaKernelSetAttributeForDevice(cudaKernel_t kernel, enum cudaFuncAttribute attr, int value, int device); + + + + +extern __attribute__((host)) cudaError_t cudaGetExportTable(const void **ppExportTable, const cudaUUID_t *pExportTableId); +# 14716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetFuncBySymbol(cudaFunction_t* functionPtr, const void* symbolPtr); +# 14740 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetKernel(cudaKernel_t *kernelPtr, const void *entryFuncAddr); +# 14918 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +} +# 62 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" 2 +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf1(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf2(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf4(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(char) * 8; + + + + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); + +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescNV12(void) +{ + int e = (int)sizeof(char) * 8; + + return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +} + +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(10, 10, 10, 2, cudaChannelFormatKindUnsignedNormalized1010102); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +} +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 1 +# 53 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 54 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 55 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" 2 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +{ + struct cudaPitchedPtr s; + + s.ptr = d; + s.pitch = p; + s.xsize = xsz; + s.ysize = ysz; + + return s; +} +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaPos make_cudaPos(size_t x, size_t y, size_t z) +{ + struct cudaPos p; + + p.x = x; + p.y = y; + p.z = z; + + return p; +} +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static __inline__ __attribute__((host)) struct cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +{ + struct cudaExtent e; + + e.width = w; + e.height = h; + e.depth = d; + + return e; +} +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x); + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y); + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x); + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y); + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x); + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x); + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y); + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y); + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z); + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z); + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w); + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w); + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x); + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y); + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z); + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x); + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y); + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z); + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w); + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x) +{ + char1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x) +{ + uchar1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y) +{ + char2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y) +{ + uchar2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z) +{ + char3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +{ + uchar3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w) +{ + char4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + uchar4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x) +{ + short1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x) +{ + ushort1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y) +{ + short2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y) +{ + ushort2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z) +{ + short3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +{ + ushort3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w) +{ + short4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +{ + ushort4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x) +{ + int1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x) +{ + uint1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y) +{ + int2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y) +{ + uint2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z) +{ + int3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z) +{ + uint3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w) +{ + int4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w) +{ + uint4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x) +{ + long1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x) +{ + ulong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y) +{ + long2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y) +{ + ulong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z) +{ + long3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z) +{ + ulong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w) +{ + long4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w) +{ + ulong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x) +{ + float1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y) +{ + float2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z) +{ + float3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w) +{ + float4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x) +{ + longlong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x) +{ + ulonglong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y) +{ + longlong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y) +{ + ulonglong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z) +{ + longlong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z) +{ + ulonglong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w) +{ + longlong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w) +{ + ulonglong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x) +{ + double1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y) +{ + double2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z) +{ + double3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w) +{ + double4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" 2 +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 1 +# 71 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 72 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/usr/include/string.h" 1 3 4 +# 26 "/usr/include/string.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/string.h" 2 3 4 + + +# 28 "/usr/include/string.h" 3 4 +extern "C" { + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 34 "/usr/include/string.h" 2 3 4 +# 43 "/usr/include/string.h" 3 4 +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, + size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, const void *__src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memccpy (void *__restrict __dest, const void *__restrict __src, + int __c, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4))); + + + + +extern void *memset (void *__s, int __c, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 80 "/usr/include/string.h" 3 4 +extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern "C++" +{ +extern void *memchr (void *__s, int __c, size_t __n) + noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const void *memchr (const void *__s, int __c, size_t __n) + noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 105 "/usr/include/string.h" 3 4 +} +# 115 "/usr/include/string.h" 3 4 +extern "C++" void *rawmemchr (void *__s, int __c) + noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *rawmemchr (const void *__s, int __c) + noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" void *memrchr (void *__s, int __c, size_t __n) + noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_only__, 1, 3))); +extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) + noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_only__, 1, 3))); +# 141 "/usr/include/string.h" 3 4 +extern char *strcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, const char *__restrict __src, + size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (const char *__s1, const char *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3))); + + + + + + +extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, + locale_t __l) noexcept (true) __attribute__ ((__nonnull__ (2, 4))) + __attribute__ ((__access__ (__write_only__, 1, 3))); + + + + + +extern char *strdup (const char *__s) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (const char *__string, size_t __n) + noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 224 "/usr/include/string.h" 3 4 +extern "C++" +{ +extern char *strchr (char *__s, int __c) + noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strchr (const char *__s, int __c) + noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 244 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strrchr (char *__s, int __c) + noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strrchr (const char *__s, int __c) + noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 271 "/usr/include/string.h" 3 4 +} +# 281 "/usr/include/string.h" 3 4 +extern "C++" char *strchrnul (char *__s, int __c) + noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const char *strchrnul (const char *__s, int __c) + noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 293 "/usr/include/string.h" 3 4 +extern size_t strcspn (const char *__s, const char *__reject) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (const char *__s, const char *__accept) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern "C++" +{ +extern char *strpbrk (char *__s, const char *__accept) + noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strpbrk (const char *__s, const char *__accept) + noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 321 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strstr (char *__haystack, const char *__needle) + noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strstr (const char *__haystack, const char *__needle) + noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 348 "/usr/include/string.h" 3 4 +} + + + + + + + +extern char *strtok (char *__restrict __s, const char *__restrict __delim) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + + +extern char *__strtok_r (char *__restrict __s, + const char *__restrict __delim, + char **__restrict __save_ptr) + noexcept (true) __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, + char **__restrict __save_ptr) + noexcept (true) __attribute__ ((__nonnull__ (2, 3))); + + + + + +extern "C++" char *strcasestr (char *__haystack, const char *__needle) + noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern "C++" const char *strcasestr (const char *__haystack, + const char *__needle) + noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 389 "/usr/include/string.h" 3 4 +extern void *memmem (const void *__haystack, size_t __haystacklen, + const void *__needle, size_t __needlelen) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))) + __attribute__ ((__access__ (__read_only__, 1, 2))) + __attribute__ ((__access__ (__read_only__, 3, 4))); + + + +extern void *__mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern void *mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlen (const char *__s) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern size_t strnlen (const char *__string, size_t __maxlen) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern char *strerror (int __errnum) noexcept (true); +# 444 "/usr/include/string.h" 3 4 +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + noexcept (true) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 2, 3))); + + + + +extern const char *strerrordesc_np (int __err) noexcept (true); + +extern const char *strerrorname_np (int __err) noexcept (true); + + + + + +extern char *strerror_l (int __errnum, locale_t __l) noexcept (true); + + + +# 1 "/usr/include/strings.h" 1 3 4 +# 23 "/usr/include/strings.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 24 "/usr/include/strings.h" 2 3 4 + + + + + + +extern "C" { + + + +extern int bcmp (const void *__s1, const void *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bcopy (const void *__src, void *__dest, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))); + + + +extern "C++" +{ +extern char *index (char *__s, int __c) + noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *index (const char *__s, int __c) + noexcept (true) __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 66 "/usr/include/strings.h" 3 4 +} + + + + + + + +extern "C++" +{ +extern char *rindex (char *__s, int __c) + noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *rindex (const char *__s, int __c) + noexcept (true) __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 94 "/usr/include/strings.h" 3 4 +} +# 104 "/usr/include/strings.h" 3 4 +extern int ffs (int __i) noexcept (true) __attribute__ ((__const__)); + + + + + +extern int ffsl (long int __l) noexcept (true) __attribute__ ((__const__)); +__extension__ extern int ffsll (long long int __ll) + noexcept (true) __attribute__ ((__const__)); + + + +extern int strcasecmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + + +extern int strncasecmp_l (const char *__s1, const char *__s2, + size_t __n, locale_t __loc) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); + + +} +# 463 "/usr/include/string.h" 2 3 4 + + + +extern void explicit_bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__write_only__, 1, 2))); + + + +extern char *strsep (char **__restrict __stringp, + const char *__restrict __delim) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) noexcept (true); + + + +extern const char *sigabbrev_np (int __sig) noexcept (true); + + +extern const char *sigdescr_np (int __sig) noexcept (true); + + + +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlcpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); + + + +extern size_t strlcat (char *__restrict __dest, + const char *__restrict __src, size_t __n) + noexcept (true) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); + + + + +extern int strverscmp (const char *__s1, const char *__s2) + noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strfry (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1))); + + +extern void *memfrob (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1))) + __attribute__ ((__access__ (__read_write__, 1, 2))); + + + + + + + +extern "C++" char *basename (char *__filename) + noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); +extern "C++" const char *basename (const char *__filename) + noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1))); +# 552 "/usr/include/string.h" 3 4 +} +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 1 "/usr/include/time.h" 1 3 4 +# 29 "/usr/include/time.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 1 3 4 +# 30 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 73 "/usr/include/bits/time.h" 3 4 +# 1 "/usr/include/bits/timex.h" 1 3 4 +# 26 "/usr/include/bits/timex.h" 3 4 +struct timex +{ +# 58 "/usr/include/bits/timex.h" 3 4 + unsigned int modes; + __syscall_slong_t offset; + __syscall_slong_t freq; + __syscall_slong_t maxerror; + __syscall_slong_t esterror; + int status; + __syscall_slong_t constant; + __syscall_slong_t precision; + __syscall_slong_t tolerance; + struct timeval time; + __syscall_slong_t tick; + __syscall_slong_t ppsfreq; + __syscall_slong_t jitter; + int shift; + __syscall_slong_t stabil; + __syscall_slong_t jitcnt; + __syscall_slong_t calcnt; + __syscall_slong_t errcnt; + __syscall_slong_t stbcnt; + + int tai; + + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; + +}; +# 74 "/usr/include/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true) __attribute__ ((__nonnull__ (2))); +# 90 "/usr/include/bits/time.h" 3 4 +} +# 34 "/usr/include/time.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/types/struct_tm.h" 1 3 4 + + + + + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + const char *tm_zone; + + + + +}; +# 40 "/usr/include/time.h" 2 3 4 +# 48 "/usr/include/time.h" 3 4 +# 1 "/usr/include/bits/types/struct_itimerspec.h" 1 3 4 + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; +# 49 "/usr/include/time.h" 2 3 4 +struct sigevent; +# 68 "/usr/include/time.h" 3 4 +extern "C" { + + + +extern clock_t clock (void) noexcept (true); + + + +extern time_t time (time_t *__timer) noexcept (true); + + +extern double difftime (time_t __time1, time_t __time0); + + +extern time_t mktime (struct tm *__tp) noexcept (true); +# 99 "/usr/include/time.h" 3 4 +extern size_t strftime (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp) + noexcept (true) __attribute__ ((__nonnull__ (1, 3, 4))); + + + + +extern char *strptime (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp) + noexcept (true); + + + + + + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp, + locale_t __loc) noexcept (true); + + + +extern char *strptime_l (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp, + locale_t __loc) noexcept (true); + + + + + + +extern struct tm *gmtime (const time_t *__timer) noexcept (true); + + + +extern struct tm *localtime (const time_t *__timer) noexcept (true); +# 154 "/usr/include/time.h" 3 4 +extern struct tm *gmtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) noexcept (true); + + + +extern struct tm *localtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) noexcept (true); +# 179 "/usr/include/time.h" 3 4 +extern char *asctime (const struct tm *__tp) noexcept (true); + + + +extern char *ctime (const time_t *__timer) noexcept (true); +# 197 "/usr/include/time.h" 3 4 +extern char *asctime_r (const struct tm *__restrict __tp, + char *__restrict __buf) noexcept (true); + + + +extern char *ctime_r (const time_t *__restrict __timer, + char *__restrict __buf) noexcept (true); +# 217 "/usr/include/time.h" 3 4 +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) noexcept (true); + + + +extern int daylight; +extern long int timezone; +# 246 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) noexcept (true); +# 263 "/usr/include/time.h" 3 4 +extern time_t timelocal (struct tm *__tp) noexcept (true); + + + + + + + +extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); +# 281 "/usr/include/time.h" 3 4 +extern int nanosleep (const struct timespec *__requested_time, + struct timespec *__remaining); + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) noexcept (true); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) + noexcept (true) __attribute__ ((__nonnull__ (2))); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + noexcept (true) __attribute__ ((__nonnull__ (2))); +# 323 "/usr/include/time.h" 3 4 +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); +# 338 "/usr/include/time.h" 3 4 +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) noexcept (true); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) noexcept (true); + + +extern int timer_delete (timer_t __timerid) noexcept (true); + + + +extern int timer_settime (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) noexcept (true); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + noexcept (true); +# 376 "/usr/include/time.h" 3 4 +extern int timer_getoverrun (timer_t __timerid) noexcept (true); + + + + + + +extern int timespec_get (struct timespec *__ts, int __base) + noexcept (true) __attribute__ ((__nonnull__ (1))); +# 399 "/usr/include/time.h" 3 4 +extern int timespec_getres (struct timespec *__ts, int __base) + noexcept (true); +# 425 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 434 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 448 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 87 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 + + +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" +{ + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) clock_t clock(void) + + + + +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 +noexcept (true) +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memset(void*, int, size_t) +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memcpy(void*, const void*, size_t) +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 3 4 + noexcept (true) +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" + ; + +} +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 1 +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C" +{ +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int abs(int a) +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long int labs(long int a) +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long long int llabs(long long int a) +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fabs(double x) +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fabsf(float x) +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int min(const int a, const int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umin(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmin(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmin(const unsigned long long int a, const unsigned long long int b); +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fminf(float x, float y) +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmin(double x, double y) +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int max(const int a, const int b); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umax(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmax(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmax(const unsigned long long int a, const unsigned long long int b); +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaxf(float x, float y) +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmax(double, double) +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sin(double x) +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cos(double x) +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincos(double x, double *sptr, double *cptr) +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincosf(float x, float *sptr, float *cptr) +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tan(double x) +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sqrt(double x) +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rsqrt(double x); +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rsqrtf(float x); +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log2(double x) +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp2(double x) +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp2f(float x) +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp10(double x) +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp10f(float x) +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double expm1(double x) +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expm1f(float x) +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log2f(float x) +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log10(double x) +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log(double x) +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log1p(double x) +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log1pf(float x) +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double floor(double x) +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp(double x) +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cosh(double x) +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinh(double x) +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tanh(double x) +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acosh(double x) +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acoshf(float x) +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asinh(double x) +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinhf(float x) +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atanh(double x) +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanhf(float x) +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ldexp(double x, int exp) +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ldexpf(float x, int exp) +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double logb(double x) +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logbf(float x) +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogb(double x) +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogbf(float x) +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbn(double x, int n) +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalbnf(float x, int n) +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbln(double x, long int n) +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalblnf(float x, long int n) +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double frexp(double x, int *nptr) +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float frexpf(float x, int *nptr) +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double round(double x) +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float roundf(float x) +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lround(double x) +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lroundf(float x) +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llround(double x) +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llroundf(float x) +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rintf(float x) +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrint(double x) +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrintf(float x) +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrint(double x) +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrintf(float x) +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nearbyint(double x) +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nearbyintf(float x) +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ceil(double x) +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double trunc(double x) +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float truncf(float x) +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fdim(double x, double y) +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fdimf(float x, float y) +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan2(double y, double x) +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan(double x) +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acos(double x) +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asin(double x) +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double hypot(double x, double y) +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rhypot(double x, double y) +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2156 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float hypotf(float x, float y) +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rhypotf(float x, float y) +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2213 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm3d(double a, double b, double c) +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2231 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm3d(double a, double b, double c) +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm4d(double a, double b, double c, double d) +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm4d(double a, double b, double c, double d) +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +__attribute__((device)) __attribute__((device_builtin)) double norm(int dim, double const * p) +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm(int dim, double const * p) +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2321 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnormf(int dim, float const * p) +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +__attribute__((device)) __attribute__((device_builtin)) float normf(int dim, float const * p) +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2358 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm3df(float a, float b, float c) +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2377 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm3df(float a, float b, float c) +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2395 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm4df(float a, float b, float c, float d) +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2413 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm4df(float a, float b, float c, float d) +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2431 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cbrt(double x) +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cbrtf(float x) +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2512 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rcbrt(double x); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rcbrtf(float x); +# 2556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinpi(double x) noexcept (true); +# 2579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinpif(float x) noexcept (true); +# 2601 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cospi(double x) noexcept (true); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cospif(float x) noexcept (true); +# 2636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospi(double x, double *sptr, double *cptr); +# 2649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospif(float x, float *sptr, float *cptr); +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double pow(double x, double y) +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double modf(double x, double *iptr) +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmod(double x, double y) +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remainder(double x, double y) +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remainderf(float x, float y) +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remquo(double x, double y, int *quo) +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remquof(float x, float y, int *quo) +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j0(double x) +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j0f(float x) +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j1(double x) +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j1f(float x) +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double jn(int n, double x) +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float jnf(int n, float x) +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y0(double x) +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y0f(float x) +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y1(double x) +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y1f(float x) +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double yn(int n, double x) +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ynf(int n, float x) +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i0(double x) +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3250 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i0f(float x) +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3267 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i1(double x) +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i1f(float x) +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erf(double x) +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erff(float x) +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfinv(double x); +# 3406 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfinvf(float x); +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfc(double x) +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcf(float x) +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double lgamma(double x) +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcinv(double x); +# 3534 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcinvf(float x); +# 3556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdfinv(double x); +# 3578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdfinvf(float x); +# 3597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdf(double x); +# 3616 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdff(float x); +# 3636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcx(double x); +# 3656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcxf(float x); +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float lgammaf(float x) +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tgamma(double x) +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tgammaf(float x) +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double copysign(double x, double y) +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float copysignf(float x, float y) +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nextafter(double x, double y) +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nextafterf(float x, float y) +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nan(const char *tagp) +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nanf(const char *tagp) +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinff(float) +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanf(float) +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finite(double) +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitef(float) +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbit(double) +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnan(double) +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinf(double) +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitf(float) +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fma(double x, double y, double z) +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaf(float x, float y, float z) +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitl(long double) +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitel(long double) +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinfl(long double) +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanl(long double) +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acosf(float x) +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinf(float x) +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanf(float x) +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atan2f(float y, float x) +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cosf(float x) +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinf(float x) +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanf(float x) +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float coshf(float x) +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinhf(float x) +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanhf(float x) +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logf(float x) +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expf(float x) +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log10f(float x) +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float modff(float x, float *iptr) +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float powf(float x, float y) +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sqrtf(float x) +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ceilf(float x) +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float floorf(float x) +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmodf(float x, float y) +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 3 4 + noexcept (true) +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + ; +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/requires_hosted.h" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 2 3 +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +extern "C++" { + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + struct __true_type { }; + struct __false_type { }; + + template + struct __truth_type + { typedef __false_type __type; }; + + template<> + struct __truth_type + { typedef __true_type __type; }; + + + + template + struct __traitor + { + enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; + typedef typename __truth_type<__value>::__type __type; + }; + + + template + struct __are_same + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __are_same<_Tp, _Tp> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_void + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_void + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_integer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 273 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +__extension__ template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; __extension__ template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template + struct __is_floating + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 367 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template + struct __is_pointer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __is_pointer<_Tp*> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_arithmetic + : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > + { }; + + + + + template + struct __is_scalar + : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > + { }; + + + + + template + struct __is_char + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_byte + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + enum class byte : unsigned char; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 471 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template struct iterator_traits; + + + template + struct __is_nonvolatile_trivially_copyable + { + enum { __value = __is_trivially_copyable(_Tp) }; + }; + + + + + template + struct __is_nonvolatile_trivially_copyable + { + enum { __value = 0 }; + }; + + + template + struct __memcpyable + { + enum { __value = 0 }; + }; + + template + struct __memcpyable<_Tp*, _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcpyable<_Tp*, const _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + + + + + + template + struct __memcmpable + { + enum { __value = 0 }; + }; + + + template + struct __memcmpable<_Tp*, _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcmpable + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + template + struct __memcmpable<_Tp*, const _Tp*> + : __is_nonvolatile_trivially_copyable<_Tp> + { }; + + + + + + + + template::__value + + > + struct __is_memcmp_ordered + { + static const bool __value = _Tp(-1) > _Tp(1); + }; + + template + struct __is_memcmp_ordered<_Tp, false> + { + static const bool __value = false; + }; + + + template + struct __is_memcmp_ordered_with + { + static const bool __value = __is_memcmp_ordered<_Tp>::__value + && __is_memcmp_ordered<_Up>::__value; + }; + + template + struct __is_memcmp_ordered_with<_Tp, _Up, false> + { + static const bool __value = false; + }; +# 580 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 + template<> + struct __is_memcmp_ordered_with + { static constexpr bool __value = true; }; + + template + struct __is_memcmp_ordered_with<_Tp, std::byte, _SameSize> + { static constexpr bool __value = false; }; + + template + struct __is_memcmp_ordered_with + { static constexpr bool __value = false; }; + + + + + + template + struct __is_move_iterator + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + template + + inline _Iterator + __miter_base(_Iterator __it) + { return __it; } + + +} +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + + + + +extern "C++" { + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct __enable_if + { }; + + template + struct __enable_if + { typedef _Tp __type; }; + + + + template + struct __conditional_type + { typedef _Iftrue __type; }; + + template + struct __conditional_type + { typedef _Iffalse __type; }; + + + + template + struct __add_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned short __type; }; + + template<> + struct __add_unsigned + { typedef unsigned int __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __add_unsigned; + + template<> + struct __add_unsigned; + + + + template + struct __remove_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef short __type; }; + + template<> + struct __remove_unsigned + { typedef int __type; }; + + template<> + struct __remove_unsigned + { typedef long __type; }; + + template<> + struct __remove_unsigned + { typedef long long __type; }; + + + template<> + struct __remove_unsigned; + + template<> + struct __remove_unsigned; + + + + template + constexpr + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + constexpr + inline bool + __is_null_pointer(_Type) + { return false; } + + + constexpr bool + __is_null_pointer(std::nullptr_t) + { return true; } + + + + + template::__value> + struct __promote + { typedef double __type; }; + + + + + template + struct __promote<_Tp, false> + { }; + + template<> + struct __promote + { typedef long double __type; }; + + template<> + struct __promote + { typedef double __type; }; + + template<> + struct __promote + { typedef float __type; }; +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + template + using __promoted_t = decltype((typename __promote<_Tp>::__type(0) + ...)); + + + + template + using __promote_2 = __promote<__promoted_t<_Tp, _Up>>; + + template + using __promote_3 = __promote<__promoted_t<_Tp, _Up, _Vp>>; + + template + using __promote_4 = __promote<__promoted_t<_Tp, _Up, _Vp, _Wp>>; +# 269 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 + +} +} +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + +# 1 "/usr/include/math.h" 1 3 4 +# 27 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/math.h" 2 3 4 + + + + + + +extern "C" { + + + + + +# 1 "/usr/include/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/bits/math-vector.h" 3 4 +# 1 "/usr/include/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/bits/math-vector.h" 2 3 4 +# 41 "/usr/include/math.h" 2 3 4 +# 156 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/flt-eval-method.h" 1 3 4 +# 157 "/usr/include/math.h" 2 3 4 +# 167 "/usr/include/math.h" 3 4 +typedef float float_t; +typedef double double_t; +# 208 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/fp-logb.h" 1 3 4 +# 209 "/usr/include/math.h" 2 3 4 +# 251 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/fp-fast.h" 1 3 4 +# 252 "/usr/include/math.h" 2 3 4 + + + +enum + { + FP_INT_UPWARD = + + 0, + FP_INT_DOWNWARD = + + 1, + FP_INT_TOWARDZERO = + + 2, + FP_INT_TONEARESTFROMZERO = + + 3, + FP_INT_TONEAREST = + + 4, + }; + + +# 1 "/usr/include/bits/mathcalls-macros.h" 1 3 4 +# 276 "/usr/include/math.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassify (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbit (double __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinf (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finite (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnan (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsig (double __x, double __y) noexcept (true); + + +extern int __issignaling (double __value) noexcept (true) + __attribute__ ((__const__)); +# 282 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern double acos (double __x) noexcept (true); extern double __acos (double __x) noexcept (true); + + extern double asin (double __x) noexcept (true); extern double __asin (double __x) noexcept (true); + + extern double atan (double __x) noexcept (true); extern double __atan (double __x) noexcept (true); + + extern double atan2 (double __y, double __x) noexcept (true); extern double __atan2 (double __y, double __x) noexcept (true); + + + extern double cos (double __x) noexcept (true); extern double __cos (double __x) noexcept (true); + + extern double sin (double __x) noexcept (true); extern double __sin (double __x) noexcept (true); + + extern double tan (double __x) noexcept (true); extern double __tan (double __x) noexcept (true); + + + +extern double acospi (double __x) noexcept (true); extern double __acospi (double __x) noexcept (true); + +extern double asinpi (double __x) noexcept (true); extern double __asinpi (double __x) noexcept (true); + +extern double atanpi (double __x) noexcept (true); extern double __atanpi (double __x) noexcept (true); + +extern double atan2pi (double __y, double __x) noexcept (true); extern double __atan2pi (double __y, double __x) noexcept (true); + + + extern double cospi (double __x) noexcept (true); extern double __cospi (double __x) noexcept (true); + + extern double sinpi (double __x) noexcept (true); extern double __sinpi (double __x) noexcept (true); + + extern double tanpi (double __x) noexcept (true); extern double __tanpi (double __x) noexcept (true); + + + + + + extern double cosh (double __x) noexcept (true); extern double __cosh (double __x) noexcept (true); + + extern double sinh (double __x) noexcept (true); extern double __sinh (double __x) noexcept (true); + + extern double tanh (double __x) noexcept (true); extern double __tanh (double __x) noexcept (true); + + + + extern void sincos (double __x, double *__sinx, double *__cosx) noexcept (true); extern void __sincos (double __x, double *__sinx, double *__cosx) noexcept (true) + ; + + + + + extern double acosh (double __x) noexcept (true); extern double __acosh (double __x) noexcept (true); + + extern double asinh (double __x) noexcept (true); extern double __asinh (double __x) noexcept (true); + + extern double atanh (double __x) noexcept (true); extern double __atanh (double __x) noexcept (true); + + + + + + extern double exp (double __x) noexcept (true); extern double __exp (double __x) noexcept (true); + + +extern double frexp (double __x, int *__exponent) noexcept (true); extern double __frexp (double __x, int *__exponent) noexcept (true); + + +extern double ldexp (double __x, int __exponent) noexcept (true); extern double __ldexp (double __x, int __exponent) noexcept (true); + + + extern double log (double __x) noexcept (true); extern double __log (double __x) noexcept (true); + + + extern double log10 (double __x) noexcept (true); extern double __log10 (double __x) noexcept (true); + + +extern double modf (double __x, double *__iptr) noexcept (true); extern double __modf (double __x, double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern double exp10 (double __x) noexcept (true); extern double __exp10 (double __x) noexcept (true); + + +extern double exp2m1 (double __x) noexcept (true); extern double __exp2m1 (double __x) noexcept (true); + + +extern double exp10m1 (double __x) noexcept (true); extern double __exp10m1 (double __x) noexcept (true); + + +extern double log2p1 (double __x) noexcept (true); extern double __log2p1 (double __x) noexcept (true); + + +extern double log10p1 (double __x) noexcept (true); extern double __log10p1 (double __x) noexcept (true); + + + extern double logp1 (double __x) noexcept (true); extern double __logp1 (double __x) noexcept (true); + + + + + extern double expm1 (double __x) noexcept (true); extern double __expm1 (double __x) noexcept (true); + + + extern double log1p (double __x) noexcept (true); extern double __log1p (double __x) noexcept (true); + + +extern double logb (double __x) noexcept (true); extern double __logb (double __x) noexcept (true); + + + + + extern double exp2 (double __x) noexcept (true); extern double __exp2 (double __x) noexcept (true); + + + extern double log2 (double __x) noexcept (true); extern double __log2 (double __x) noexcept (true); + + + + + + + extern double pow (double __x, double __y) noexcept (true); extern double __pow (double __x, double __y) noexcept (true); + + +extern double sqrt (double __x) noexcept (true); extern double __sqrt (double __x) noexcept (true); + + + + extern double hypot (double __x, double __y) noexcept (true); extern double __hypot (double __x, double __y) noexcept (true); + + + + + extern double cbrt (double __x) noexcept (true); extern double __cbrt (double __x) noexcept (true); + + + + + + +extern double ceil (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fabs (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double floor (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fmod (double __x, double __y) noexcept (true); extern double __fmod (double __x, double __y) noexcept (true); +# 216 "/usr/include/bits/mathcalls.h" 3 4 +extern int finite (double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern double drem (double __x, double __y) noexcept (true); extern double __drem (double __x, double __y) noexcept (true); + + + +extern double significand (double __x) noexcept (true); extern double __significand (double __x) noexcept (true); + + + + + + +extern double copysign (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern double nan (const char *__tagb) noexcept (true); extern double __nan (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern double j0 (double) noexcept (true); extern double __j0 (double) noexcept (true); +extern double j1 (double) noexcept (true); extern double __j1 (double) noexcept (true); +extern double jn (int, double) noexcept (true); extern double __jn (int, double) noexcept (true); +extern double y0 (double) noexcept (true); extern double __y0 (double) noexcept (true); +extern double y1 (double) noexcept (true); extern double __y1 (double) noexcept (true); +extern double yn (int, double) noexcept (true); extern double __yn (int, double) noexcept (true); + + + + + + extern double erf (double) noexcept (true); extern double __erf (double) noexcept (true); + extern double erfc (double) noexcept (true); extern double __erfc (double) noexcept (true); +extern double lgamma (double) noexcept (true); extern double __lgamma (double) noexcept (true); + + + + +extern double tgamma (double) noexcept (true); extern double __tgamma (double) noexcept (true); + + + + + +extern double gamma (double) noexcept (true); extern double __gamma (double) noexcept (true); + + + + + + + +extern double lgamma_r (double, int *__signgamp) noexcept (true); extern double __lgamma_r (double, int *__signgamp) noexcept (true); + + + + + + +extern double rint (double __x) noexcept (true); extern double __rint (double __x) noexcept (true); + + +extern double nextafter (double __x, double __y) noexcept (true); extern double __nextafter (double __x, double __y) noexcept (true); + +extern double nexttoward (double __x, long double __y) noexcept (true); extern double __nexttoward (double __x, long double __y) noexcept (true); + + + + +extern double nextdown (double __x) noexcept (true); extern double __nextdown (double __x) noexcept (true); + +extern double nextup (double __x) noexcept (true); extern double __nextup (double __x) noexcept (true); + + + +extern double remainder (double __x, double __y) noexcept (true); extern double __remainder (double __x, double __y) noexcept (true); + + + +extern double scalbn (double __x, int __n) noexcept (true); extern double __scalbn (double __x, int __n) noexcept (true); + + + +extern int ilogb (double __x) noexcept (true); extern int __ilogb (double __x) noexcept (true); + + + + +extern long int llogb (double __x) noexcept (true); extern long int __llogb (double __x) noexcept (true); + + + + +extern double scalbln (double __x, long int __n) noexcept (true); extern double __scalbln (double __x, long int __n) noexcept (true); + + + +extern double nearbyint (double __x) noexcept (true); extern double __nearbyint (double __x) noexcept (true); + + + +extern double round (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern double trunc (double __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern double remquo (double __x, double __y, int *__quo) noexcept (true); extern double __remquo (double __x, double __y, int *__quo) noexcept (true); + + + + + + +extern long int lrint (double __x) noexcept (true); extern long int __lrint (double __x) noexcept (true); +__extension__ +extern long long int llrint (double __x) noexcept (true); extern long long int __llrint (double __x) noexcept (true); + + + +extern long int lround (double __x) noexcept (true); extern long int __lround (double __x) noexcept (true); +__extension__ +extern long long int llround (double __x) noexcept (true); extern long long int __llround (double __x) noexcept (true); + + + +extern double fdim (double __x, double __y) noexcept (true); extern double __fdim (double __x, double __y) noexcept (true); + + + +extern double fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmin (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + +extern double fma (double __x, double __y, double __z) noexcept (true); extern double __fma (double __x, double __y, double __z) noexcept (true); + + + + +extern double roundeven (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalize (double *__cx, const double *__x) noexcept (true); + + + + + + +extern double fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern double fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmaximum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorder (const double *__x, const double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermag (const double *__x, const double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern double getpayload (const double *__x) noexcept (true); extern double __getpayload (const double *__x) noexcept (true); + + +extern int setpayload (double *__x, double __payload) noexcept (true); + + +extern int setpayloadsig (double *__x, double __payload) noexcept (true); + + + + + + + +extern double scalb (double __x, double __n) noexcept (true); extern double __scalb (double __x, double __n) noexcept (true); +# 283 "/usr/include/math.h" 2 3 4 +# 298 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitf (float __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinff (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitef (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanf (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigf (float __x, float __y) noexcept (true); + + +extern int __issignalingf (float __value) noexcept (true) + __attribute__ ((__const__)); +# 299 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern float acosf (float __x) noexcept (true); extern float __acosf (float __x) noexcept (true); + + extern float asinf (float __x) noexcept (true); extern float __asinf (float __x) noexcept (true); + + extern float atanf (float __x) noexcept (true); extern float __atanf (float __x) noexcept (true); + + extern float atan2f (float __y, float __x) noexcept (true); extern float __atan2f (float __y, float __x) noexcept (true); + + + extern float cosf (float __x) noexcept (true); extern float __cosf (float __x) noexcept (true); + + extern float sinf (float __x) noexcept (true); extern float __sinf (float __x) noexcept (true); + + extern float tanf (float __x) noexcept (true); extern float __tanf (float __x) noexcept (true); + + + +extern float acospif (float __x) noexcept (true); extern float __acospif (float __x) noexcept (true); + +extern float asinpif (float __x) noexcept (true); extern float __asinpif (float __x) noexcept (true); + +extern float atanpif (float __x) noexcept (true); extern float __atanpif (float __x) noexcept (true); + +extern float atan2pif (float __y, float __x) noexcept (true); extern float __atan2pif (float __y, float __x) noexcept (true); + + + extern float cospif (float __x) noexcept (true); extern float __cospif (float __x) noexcept (true); + + extern float sinpif (float __x) noexcept (true); extern float __sinpif (float __x) noexcept (true); + + extern float tanpif (float __x) noexcept (true); extern float __tanpif (float __x) noexcept (true); + + + + + + extern float coshf (float __x) noexcept (true); extern float __coshf (float __x) noexcept (true); + + extern float sinhf (float __x) noexcept (true); extern float __sinhf (float __x) noexcept (true); + + extern float tanhf (float __x) noexcept (true); extern float __tanhf (float __x) noexcept (true); + + + + extern void sincosf (float __x, float *__sinx, float *__cosx) noexcept (true); extern void __sincosf (float __x, float *__sinx, float *__cosx) noexcept (true) + ; + + + + + extern float acoshf (float __x) noexcept (true); extern float __acoshf (float __x) noexcept (true); + + extern float asinhf (float __x) noexcept (true); extern float __asinhf (float __x) noexcept (true); + + extern float atanhf (float __x) noexcept (true); extern float __atanhf (float __x) noexcept (true); + + + + + + extern float expf (float __x) noexcept (true); extern float __expf (float __x) noexcept (true); + + +extern float frexpf (float __x, int *__exponent) noexcept (true); extern float __frexpf (float __x, int *__exponent) noexcept (true); + + +extern float ldexpf (float __x, int __exponent) noexcept (true); extern float __ldexpf (float __x, int __exponent) noexcept (true); + + + extern float logf (float __x) noexcept (true); extern float __logf (float __x) noexcept (true); + + + extern float log10f (float __x) noexcept (true); extern float __log10f (float __x) noexcept (true); + + +extern float modff (float __x, float *__iptr) noexcept (true); extern float __modff (float __x, float *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern float exp10f (float __x) noexcept (true); extern float __exp10f (float __x) noexcept (true); + + +extern float exp2m1f (float __x) noexcept (true); extern float __exp2m1f (float __x) noexcept (true); + + +extern float exp10m1f (float __x) noexcept (true); extern float __exp10m1f (float __x) noexcept (true); + + +extern float log2p1f (float __x) noexcept (true); extern float __log2p1f (float __x) noexcept (true); + + +extern float log10p1f (float __x) noexcept (true); extern float __log10p1f (float __x) noexcept (true); + + + extern float logp1f (float __x) noexcept (true); extern float __logp1f (float __x) noexcept (true); + + + + + extern float expm1f (float __x) noexcept (true); extern float __expm1f (float __x) noexcept (true); + + + extern float log1pf (float __x) noexcept (true); extern float __log1pf (float __x) noexcept (true); + + +extern float logbf (float __x) noexcept (true); extern float __logbf (float __x) noexcept (true); + + + + + extern float exp2f (float __x) noexcept (true); extern float __exp2f (float __x) noexcept (true); + + + extern float log2f (float __x) noexcept (true); extern float __log2f (float __x) noexcept (true); + + + + + + + extern float powf (float __x, float __y) noexcept (true); extern float __powf (float __x, float __y) noexcept (true); + + +extern float sqrtf (float __x) noexcept (true); extern float __sqrtf (float __x) noexcept (true); + + + + extern float hypotf (float __x, float __y) noexcept (true); extern float __hypotf (float __x, float __y) noexcept (true); + + + + + extern float cbrtf (float __x) noexcept (true); extern float __cbrtf (float __x) noexcept (true); + + + + + + +extern float ceilf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fabsf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float floorf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fmodf (float __x, float __y) noexcept (true); extern float __fmodf (float __x, float __y) noexcept (true); +# 210 "/usr/include/bits/mathcalls.h" 3 4 +extern int isinff (float __value) noexcept (true) + __attribute__ ((__const__)); + + + + +extern int finitef (float __value) noexcept (true) + __attribute__ ((__const__)); + + +extern float dremf (float __x, float __y) noexcept (true); extern float __dremf (float __x, float __y) noexcept (true); + + + +extern float significandf (float __x) noexcept (true); extern float __significandf (float __x) noexcept (true); + + + + + + +extern float copysignf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern float nanf (const char *__tagb) noexcept (true); extern float __nanf (const char *__tagb) noexcept (true); +# 246 "/usr/include/bits/mathcalls.h" 3 4 +extern int isnanf (float __value) noexcept (true) + __attribute__ ((__const__)); + + + + + +extern float j0f (float) noexcept (true); extern float __j0f (float) noexcept (true); +extern float j1f (float) noexcept (true); extern float __j1f (float) noexcept (true); +extern float jnf (int, float) noexcept (true); extern float __jnf (int, float) noexcept (true); +extern float y0f (float) noexcept (true); extern float __y0f (float) noexcept (true); +extern float y1f (float) noexcept (true); extern float __y1f (float) noexcept (true); +extern float ynf (int, float) noexcept (true); extern float __ynf (int, float) noexcept (true); + + + + + + extern float erff (float) noexcept (true); extern float __erff (float) noexcept (true); + extern float erfcf (float) noexcept (true); extern float __erfcf (float) noexcept (true); +extern float lgammaf (float) noexcept (true); extern float __lgammaf (float) noexcept (true); + + + + +extern float tgammaf (float) noexcept (true); extern float __tgammaf (float) noexcept (true); + + + + + +extern float gammaf (float) noexcept (true); extern float __gammaf (float) noexcept (true); + + + + + + + +extern float lgammaf_r (float, int *__signgamp) noexcept (true); extern float __lgammaf_r (float, int *__signgamp) noexcept (true); + + + + + + +extern float rintf (float __x) noexcept (true); extern float __rintf (float __x) noexcept (true); + + +extern float nextafterf (float __x, float __y) noexcept (true); extern float __nextafterf (float __x, float __y) noexcept (true); + +extern float nexttowardf (float __x, long double __y) noexcept (true); extern float __nexttowardf (float __x, long double __y) noexcept (true); + + + + +extern float nextdownf (float __x) noexcept (true); extern float __nextdownf (float __x) noexcept (true); + +extern float nextupf (float __x) noexcept (true); extern float __nextupf (float __x) noexcept (true); + + + +extern float remainderf (float __x, float __y) noexcept (true); extern float __remainderf (float __x, float __y) noexcept (true); + + + +extern float scalbnf (float __x, int __n) noexcept (true); extern float __scalbnf (float __x, int __n) noexcept (true); + + + +extern int ilogbf (float __x) noexcept (true); extern int __ilogbf (float __x) noexcept (true); + + + + +extern long int llogbf (float __x) noexcept (true); extern long int __llogbf (float __x) noexcept (true); + + + + +extern float scalblnf (float __x, long int __n) noexcept (true); extern float __scalblnf (float __x, long int __n) noexcept (true); + + + +extern float nearbyintf (float __x) noexcept (true); extern float __nearbyintf (float __x) noexcept (true); + + + +extern float roundf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern float truncf (float __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern float remquof (float __x, float __y, int *__quo) noexcept (true); extern float __remquof (float __x, float __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf (float __x) noexcept (true); extern long int __lrintf (float __x) noexcept (true); +__extension__ +extern long long int llrintf (float __x) noexcept (true); extern long long int __llrintf (float __x) noexcept (true); + + + +extern long int lroundf (float __x) noexcept (true); extern long int __lroundf (float __x) noexcept (true); +__extension__ +extern long long int llroundf (float __x) noexcept (true); extern long long int __llroundf (float __x) noexcept (true); + + + +extern float fdimf (float __x, float __y) noexcept (true); extern float __fdimf (float __x, float __y) noexcept (true); + + + +extern float fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + +extern float fmaf (float __x, float __y, float __z) noexcept (true); extern float __fmaf (float __x, float __y, float __z) noexcept (true); + + + + +extern float roundevenf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef (float *__cx, const float *__x) noexcept (true); + + + + + + +extern float fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern float fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fmaximum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf (const float *__x, const float *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf (const float *__x, const float *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern float getpayloadf (const float *__x) noexcept (true); extern float __getpayloadf (const float *__x) noexcept (true); + + +extern int setpayloadf (float *__x, float __payload) noexcept (true); + + +extern int setpayloadsigf (float *__x, float __payload) noexcept (true); + + + + + + + +extern float scalbf (float __x, float __n) noexcept (true); extern float __scalbf (float __x, float __n) noexcept (true); +# 300 "/usr/include/math.h" 2 3 4 +# 367 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinfl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitel (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigl (long double __x, long double __y) noexcept (true); + + +extern int __issignalingl (long double __value) noexcept (true) + __attribute__ ((__const__)); +# 368 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern long double acosl (long double __x) noexcept (true); extern long double __acosl (long double __x) noexcept (true); + + extern long double asinl (long double __x) noexcept (true); extern long double __asinl (long double __x) noexcept (true); + + extern long double atanl (long double __x) noexcept (true); extern long double __atanl (long double __x) noexcept (true); + + extern long double atan2l (long double __y, long double __x) noexcept (true); extern long double __atan2l (long double __y, long double __x) noexcept (true); + + + extern long double cosl (long double __x) noexcept (true); extern long double __cosl (long double __x) noexcept (true); + + extern long double sinl (long double __x) noexcept (true); extern long double __sinl (long double __x) noexcept (true); + + extern long double tanl (long double __x) noexcept (true); extern long double __tanl (long double __x) noexcept (true); + + + +extern long double acospil (long double __x) noexcept (true); extern long double __acospil (long double __x) noexcept (true); + +extern long double asinpil (long double __x) noexcept (true); extern long double __asinpil (long double __x) noexcept (true); + +extern long double atanpil (long double __x) noexcept (true); extern long double __atanpil (long double __x) noexcept (true); + +extern long double atan2pil (long double __y, long double __x) noexcept (true); extern long double __atan2pil (long double __y, long double __x) noexcept (true); + + + extern long double cospil (long double __x) noexcept (true); extern long double __cospil (long double __x) noexcept (true); + + extern long double sinpil (long double __x) noexcept (true); extern long double __sinpil (long double __x) noexcept (true); + + extern long double tanpil (long double __x) noexcept (true); extern long double __tanpil (long double __x) noexcept (true); + + + + + + extern long double coshl (long double __x) noexcept (true); extern long double __coshl (long double __x) noexcept (true); + + extern long double sinhl (long double __x) noexcept (true); extern long double __sinhl (long double __x) noexcept (true); + + extern long double tanhl (long double __x) noexcept (true); extern long double __tanhl (long double __x) noexcept (true); + + + + extern void sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true) + ; + + + + + extern long double acoshl (long double __x) noexcept (true); extern long double __acoshl (long double __x) noexcept (true); + + extern long double asinhl (long double __x) noexcept (true); extern long double __asinhl (long double __x) noexcept (true); + + extern long double atanhl (long double __x) noexcept (true); extern long double __atanhl (long double __x) noexcept (true); + + + + + + extern long double expl (long double __x) noexcept (true); extern long double __expl (long double __x) noexcept (true); + + +extern long double frexpl (long double __x, int *__exponent) noexcept (true); extern long double __frexpl (long double __x, int *__exponent) noexcept (true); + + +extern long double ldexpl (long double __x, int __exponent) noexcept (true); extern long double __ldexpl (long double __x, int __exponent) noexcept (true); + + + extern long double logl (long double __x) noexcept (true); extern long double __logl (long double __x) noexcept (true); + + + extern long double log10l (long double __x) noexcept (true); extern long double __log10l (long double __x) noexcept (true); + + +extern long double modfl (long double __x, long double *__iptr) noexcept (true); extern long double __modfl (long double __x, long double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern long double exp10l (long double __x) noexcept (true); extern long double __exp10l (long double __x) noexcept (true); + + +extern long double exp2m1l (long double __x) noexcept (true); extern long double __exp2m1l (long double __x) noexcept (true); + + +extern long double exp10m1l (long double __x) noexcept (true); extern long double __exp10m1l (long double __x) noexcept (true); + + +extern long double log2p1l (long double __x) noexcept (true); extern long double __log2p1l (long double __x) noexcept (true); + + +extern long double log10p1l (long double __x) noexcept (true); extern long double __log10p1l (long double __x) noexcept (true); + + + extern long double logp1l (long double __x) noexcept (true); extern long double __logp1l (long double __x) noexcept (true); + + + + + extern long double expm1l (long double __x) noexcept (true); extern long double __expm1l (long double __x) noexcept (true); + + + extern long double log1pl (long double __x) noexcept (true); extern long double __log1pl (long double __x) noexcept (true); + + +extern long double logbl (long double __x) noexcept (true); extern long double __logbl (long double __x) noexcept (true); + + + + + extern long double exp2l (long double __x) noexcept (true); extern long double __exp2l (long double __x) noexcept (true); + + + extern long double log2l (long double __x) noexcept (true); extern long double __log2l (long double __x) noexcept (true); + + + + + + + extern long double powl (long double __x, long double __y) noexcept (true); extern long double __powl (long double __x, long double __y) noexcept (true); + + +extern long double sqrtl (long double __x) noexcept (true); extern long double __sqrtl (long double __x) noexcept (true); + + + + extern long double hypotl (long double __x, long double __y) noexcept (true); extern long double __hypotl (long double __x, long double __y) noexcept (true); + + + + + extern long double cbrtl (long double __x) noexcept (true); extern long double __cbrtl (long double __x) noexcept (true); + + + + + + +extern long double ceill (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fabsl (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double floorl (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmodl (long double __x, long double __y) noexcept (true); extern long double __fmodl (long double __x, long double __y) noexcept (true); +# 210 "/usr/include/bits/mathcalls.h" 3 4 +extern int isinfl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + + +extern int finitel (long double __value) noexcept (true) + __attribute__ ((__const__)); + + +extern long double dreml (long double __x, long double __y) noexcept (true); extern long double __dreml (long double __x, long double __y) noexcept (true); + + + +extern long double significandl (long double __x) noexcept (true); extern long double __significandl (long double __x) noexcept (true); + + + + + + +extern long double copysignl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double nanl (const char *__tagb) noexcept (true); extern long double __nanl (const char *__tagb) noexcept (true); +# 246 "/usr/include/bits/mathcalls.h" 3 4 +extern int isnanl (long double __value) noexcept (true) + __attribute__ ((__const__)); + + + + + +extern long double j0l (long double) noexcept (true); extern long double __j0l (long double) noexcept (true); +extern long double j1l (long double) noexcept (true); extern long double __j1l (long double) noexcept (true); +extern long double jnl (int, long double) noexcept (true); extern long double __jnl (int, long double) noexcept (true); +extern long double y0l (long double) noexcept (true); extern long double __y0l (long double) noexcept (true); +extern long double y1l (long double) noexcept (true); extern long double __y1l (long double) noexcept (true); +extern long double ynl (int, long double) noexcept (true); extern long double __ynl (int, long double) noexcept (true); + + + + + + extern long double erfl (long double) noexcept (true); extern long double __erfl (long double) noexcept (true); + extern long double erfcl (long double) noexcept (true); extern long double __erfcl (long double) noexcept (true); +extern long double lgammal (long double) noexcept (true); extern long double __lgammal (long double) noexcept (true); + + + + +extern long double tgammal (long double) noexcept (true); extern long double __tgammal (long double) noexcept (true); + + + + + +extern long double gammal (long double) noexcept (true); extern long double __gammal (long double) noexcept (true); + + + + + + + +extern long double lgammal_r (long double, int *__signgamp) noexcept (true); extern long double __lgammal_r (long double, int *__signgamp) noexcept (true); + + + + + + +extern long double rintl (long double __x) noexcept (true); extern long double __rintl (long double __x) noexcept (true); + + +extern long double nextafterl (long double __x, long double __y) noexcept (true); extern long double __nextafterl (long double __x, long double __y) noexcept (true); + +extern long double nexttowardl (long double __x, long double __y) noexcept (true); extern long double __nexttowardl (long double __x, long double __y) noexcept (true); + + + + +extern long double nextdownl (long double __x) noexcept (true); extern long double __nextdownl (long double __x) noexcept (true); + +extern long double nextupl (long double __x) noexcept (true); extern long double __nextupl (long double __x) noexcept (true); + + + +extern long double remainderl (long double __x, long double __y) noexcept (true); extern long double __remainderl (long double __x, long double __y) noexcept (true); + + + +extern long double scalbnl (long double __x, int __n) noexcept (true); extern long double __scalbnl (long double __x, int __n) noexcept (true); + + + +extern int ilogbl (long double __x) noexcept (true); extern int __ilogbl (long double __x) noexcept (true); + + + + +extern long int llogbl (long double __x) noexcept (true); extern long int __llogbl (long double __x) noexcept (true); + + + + +extern long double scalblnl (long double __x, long int __n) noexcept (true); extern long double __scalblnl (long double __x, long int __n) noexcept (true); + + + +extern long double nearbyintl (long double __x) noexcept (true); extern long double __nearbyintl (long double __x) noexcept (true); + + + +extern long double roundl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern long double truncl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double remquol (long double __x, long double __y, int *__quo) noexcept (true); extern long double __remquol (long double __x, long double __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintl (long double __x) noexcept (true); extern long int __lrintl (long double __x) noexcept (true); +__extension__ +extern long long int llrintl (long double __x) noexcept (true); extern long long int __llrintl (long double __x) noexcept (true); + + + +extern long int lroundl (long double __x) noexcept (true); extern long int __lroundl (long double __x) noexcept (true); +__extension__ +extern long long int llroundl (long double __x) noexcept (true); extern long long int __llroundl (long double __x) noexcept (true); + + + +extern long double fdiml (long double __x, long double __y) noexcept (true); extern long double __fdiml (long double __x, long double __y) noexcept (true); + + + +extern long double fmaxl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + +extern long double fmal (long double __x, long double __y, long double __z) noexcept (true); extern long double __fmal (long double __x, long double __y, long double __z) noexcept (true); + + + + +extern long double roundevenl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizel (long double *__cx, const long double *__x) noexcept (true); + + + + + + +extern long double fmaxmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern long double fmaximuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fmaximum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + +extern long double fminimum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderl (const long double *__x, const long double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagl (const long double *__x, const long double *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern long double getpayloadl (const long double *__x) noexcept (true); extern long double __getpayloadl (const long double *__x) noexcept (true); + + +extern int setpayloadl (long double *__x, long double __payload) noexcept (true); + + +extern int setpayloadsigl (long double *__x, long double __payload) noexcept (true); + + + + + + + +extern long double scalbl (long double __x, long double __n) noexcept (true); extern long double __scalbl (long double __x, long double __n) noexcept (true); +# 369 "/usr/include/math.h" 2 3 4 +# 419 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float32 acosf32 (_Float32 __x) noexcept (true); extern _Float32 __acosf32 (_Float32 __x) noexcept (true); + + extern _Float32 asinf32 (_Float32 __x) noexcept (true); extern _Float32 __asinf32 (_Float32 __x) noexcept (true); + + extern _Float32 atanf32 (_Float32 __x) noexcept (true); extern _Float32 __atanf32 (_Float32 __x) noexcept (true); + + extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); + + + extern _Float32 cosf32 (_Float32 __x) noexcept (true); extern _Float32 __cosf32 (_Float32 __x) noexcept (true); + + extern _Float32 sinf32 (_Float32 __x) noexcept (true); extern _Float32 __sinf32 (_Float32 __x) noexcept (true); + + extern _Float32 tanf32 (_Float32 __x) noexcept (true); extern _Float32 __tanf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 acospif32 (_Float32 __x) noexcept (true); extern _Float32 __acospif32 (_Float32 __x) noexcept (true); + +extern _Float32 asinpif32 (_Float32 __x) noexcept (true); extern _Float32 __asinpif32 (_Float32 __x) noexcept (true); + +extern _Float32 atanpif32 (_Float32 __x) noexcept (true); extern _Float32 __atanpif32 (_Float32 __x) noexcept (true); + +extern _Float32 atan2pif32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2pif32 (_Float32 __y, _Float32 __x) noexcept (true); + + + extern _Float32 cospif32 (_Float32 __x) noexcept (true); extern _Float32 __cospif32 (_Float32 __x) noexcept (true); + + extern _Float32 sinpif32 (_Float32 __x) noexcept (true); extern _Float32 __sinpif32 (_Float32 __x) noexcept (true); + + extern _Float32 tanpif32 (_Float32 __x) noexcept (true); extern _Float32 __tanpif32 (_Float32 __x) noexcept (true); + + + + + + extern _Float32 coshf32 (_Float32 __x) noexcept (true); extern _Float32 __coshf32 (_Float32 __x) noexcept (true); + + extern _Float32 sinhf32 (_Float32 __x) noexcept (true); extern _Float32 __sinhf32 (_Float32 __x) noexcept (true); + + extern _Float32 tanhf32 (_Float32 __x) noexcept (true); extern _Float32 __tanhf32 (_Float32 __x) noexcept (true); + + + + extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true) + ; + + + + + extern _Float32 acoshf32 (_Float32 __x) noexcept (true); extern _Float32 __acoshf32 (_Float32 __x) noexcept (true); + + extern _Float32 asinhf32 (_Float32 __x) noexcept (true); extern _Float32 __asinhf32 (_Float32 __x) noexcept (true); + + extern _Float32 atanhf32 (_Float32 __x) noexcept (true); extern _Float32 __atanhf32 (_Float32 __x) noexcept (true); + + + + + + extern _Float32 expf32 (_Float32 __x) noexcept (true); extern _Float32 __expf32 (_Float32 __x) noexcept (true); + + +extern _Float32 frexpf32 (_Float32 __x, int *__exponent) noexcept (true); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) noexcept (true); + + +extern _Float32 ldexpf32 (_Float32 __x, int __exponent) noexcept (true); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) noexcept (true); + + + extern _Float32 logf32 (_Float32 __x) noexcept (true); extern _Float32 __logf32 (_Float32 __x) noexcept (true); + + + extern _Float32 log10f32 (_Float32 __x) noexcept (true); extern _Float32 __log10f32 (_Float32 __x) noexcept (true); + + +extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float32 exp10f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10f32 (_Float32 __x) noexcept (true); + + +extern _Float32 exp2m1f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2m1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 exp10m1f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10m1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 log2p1f32 (_Float32 __x) noexcept (true); extern _Float32 __log2p1f32 (_Float32 __x) noexcept (true); + + +extern _Float32 log10p1f32 (_Float32 __x) noexcept (true); extern _Float32 __log10p1f32 (_Float32 __x) noexcept (true); + + + extern _Float32 logp1f32 (_Float32 __x) noexcept (true); extern _Float32 __logp1f32 (_Float32 __x) noexcept (true); + + + + + extern _Float32 expm1f32 (_Float32 __x) noexcept (true); extern _Float32 __expm1f32 (_Float32 __x) noexcept (true); + + + extern _Float32 log1pf32 (_Float32 __x) noexcept (true); extern _Float32 __log1pf32 (_Float32 __x) noexcept (true); + + +extern _Float32 logbf32 (_Float32 __x) noexcept (true); extern _Float32 __logbf32 (_Float32 __x) noexcept (true); + + + + + extern _Float32 exp2f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2f32 (_Float32 __x) noexcept (true); + + + extern _Float32 log2f32 (_Float32 __x) noexcept (true); extern _Float32 __log2f32 (_Float32 __x) noexcept (true); + + + + + + + extern _Float32 powf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) noexcept (true); + + +extern _Float32 sqrtf32 (_Float32 __x) noexcept (true); extern _Float32 __sqrtf32 (_Float32 __x) noexcept (true); + + + + extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + + + extern _Float32 cbrtf32 (_Float32 __x) noexcept (true); extern _Float32 __cbrtf32 (_Float32 __x) noexcept (true); + + + + + + +extern _Float32 ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fabsf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 floorf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 nanf32 (const char *__tagb) noexcept (true); extern _Float32 __nanf32 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 j0f32 (_Float32) noexcept (true); extern _Float32 __j0f32 (_Float32) noexcept (true); +extern _Float32 j1f32 (_Float32) noexcept (true); extern _Float32 __j1f32 (_Float32) noexcept (true); +extern _Float32 jnf32 (int, _Float32) noexcept (true); extern _Float32 __jnf32 (int, _Float32) noexcept (true); +extern _Float32 y0f32 (_Float32) noexcept (true); extern _Float32 __y0f32 (_Float32) noexcept (true); +extern _Float32 y1f32 (_Float32) noexcept (true); extern _Float32 __y1f32 (_Float32) noexcept (true); +extern _Float32 ynf32 (int, _Float32) noexcept (true); extern _Float32 __ynf32 (int, _Float32) noexcept (true); + + + + + + extern _Float32 erff32 (_Float32) noexcept (true); extern _Float32 __erff32 (_Float32) noexcept (true); + extern _Float32 erfcf32 (_Float32) noexcept (true); extern _Float32 __erfcf32 (_Float32) noexcept (true); +extern _Float32 lgammaf32 (_Float32) noexcept (true); extern _Float32 __lgammaf32 (_Float32) noexcept (true); + + + + +extern _Float32 tgammaf32 (_Float32) noexcept (true); extern _Float32 __tgammaf32 (_Float32) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32 lgammaf32_r (_Float32, int *__signgamp) noexcept (true); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) noexcept (true); + + + + + + +extern _Float32 rintf32 (_Float32 __x) noexcept (true); extern _Float32 __rintf32 (_Float32 __x) noexcept (true); + + +extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + + + + +extern _Float32 nextdownf32 (_Float32 __x) noexcept (true); extern _Float32 __nextdownf32 (_Float32 __x) noexcept (true); + +extern _Float32 nextupf32 (_Float32 __x) noexcept (true); extern _Float32 __nextupf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + +extern _Float32 scalbnf32 (_Float32 __x, int __n) noexcept (true); extern _Float32 __scalbnf32 (_Float32 __x, int __n) noexcept (true); + + + +extern int ilogbf32 (_Float32 __x) noexcept (true); extern int __ilogbf32 (_Float32 __x) noexcept (true); + + + + +extern long int llogbf32 (_Float32 __x) noexcept (true); extern long int __llogbf32 (_Float32 __x) noexcept (true); + + + + +extern _Float32 scalblnf32 (_Float32 __x, long int __n) noexcept (true); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) noexcept (true); + + + +extern _Float32 nearbyintf32 (_Float32 __x) noexcept (true); extern _Float32 __nearbyintf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 truncf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf32 (_Float32 __x) noexcept (true); extern long int __lrintf32 (_Float32 __x) noexcept (true); +__extension__ +extern long long int llrintf32 (_Float32 __x) noexcept (true); extern long long int __llrintf32 (_Float32 __x) noexcept (true); + + + +extern long int lroundf32 (_Float32 __x) noexcept (true); extern long int __lroundf32 (_Float32 __x) noexcept (true); +__extension__ +extern long long int llroundf32 (_Float32 __x) noexcept (true); extern long long int __llroundf32 (_Float32 __x) noexcept (true); + + + +extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); + + + +extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); + + + + +extern _Float32 roundevenf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) noexcept (true); + + + + + + +extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32 fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fmaximum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float32 getpayloadf32 (const _Float32 *__x) noexcept (true); extern _Float32 __getpayloadf32 (const _Float32 *__x) noexcept (true); + + +extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) noexcept (true); + + +extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) noexcept (true); +# 420 "/usr/include/math.h" 2 3 4 +# 436 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float64 acosf64 (_Float64 __x) noexcept (true); extern _Float64 __acosf64 (_Float64 __x) noexcept (true); + + extern _Float64 asinf64 (_Float64 __x) noexcept (true); extern _Float64 __asinf64 (_Float64 __x) noexcept (true); + + extern _Float64 atanf64 (_Float64 __x) noexcept (true); extern _Float64 __atanf64 (_Float64 __x) noexcept (true); + + extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); + + + extern _Float64 cosf64 (_Float64 __x) noexcept (true); extern _Float64 __cosf64 (_Float64 __x) noexcept (true); + + extern _Float64 sinf64 (_Float64 __x) noexcept (true); extern _Float64 __sinf64 (_Float64 __x) noexcept (true); + + extern _Float64 tanf64 (_Float64 __x) noexcept (true); extern _Float64 __tanf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 acospif64 (_Float64 __x) noexcept (true); extern _Float64 __acospif64 (_Float64 __x) noexcept (true); + +extern _Float64 asinpif64 (_Float64 __x) noexcept (true); extern _Float64 __asinpif64 (_Float64 __x) noexcept (true); + +extern _Float64 atanpif64 (_Float64 __x) noexcept (true); extern _Float64 __atanpif64 (_Float64 __x) noexcept (true); + +extern _Float64 atan2pif64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2pif64 (_Float64 __y, _Float64 __x) noexcept (true); + + + extern _Float64 cospif64 (_Float64 __x) noexcept (true); extern _Float64 __cospif64 (_Float64 __x) noexcept (true); + + extern _Float64 sinpif64 (_Float64 __x) noexcept (true); extern _Float64 __sinpif64 (_Float64 __x) noexcept (true); + + extern _Float64 tanpif64 (_Float64 __x) noexcept (true); extern _Float64 __tanpif64 (_Float64 __x) noexcept (true); + + + + + + extern _Float64 coshf64 (_Float64 __x) noexcept (true); extern _Float64 __coshf64 (_Float64 __x) noexcept (true); + + extern _Float64 sinhf64 (_Float64 __x) noexcept (true); extern _Float64 __sinhf64 (_Float64 __x) noexcept (true); + + extern _Float64 tanhf64 (_Float64 __x) noexcept (true); extern _Float64 __tanhf64 (_Float64 __x) noexcept (true); + + + + extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true) + ; + + + + + extern _Float64 acoshf64 (_Float64 __x) noexcept (true); extern _Float64 __acoshf64 (_Float64 __x) noexcept (true); + + extern _Float64 asinhf64 (_Float64 __x) noexcept (true); extern _Float64 __asinhf64 (_Float64 __x) noexcept (true); + + extern _Float64 atanhf64 (_Float64 __x) noexcept (true); extern _Float64 __atanhf64 (_Float64 __x) noexcept (true); + + + + + + extern _Float64 expf64 (_Float64 __x) noexcept (true); extern _Float64 __expf64 (_Float64 __x) noexcept (true); + + +extern _Float64 frexpf64 (_Float64 __x, int *__exponent) noexcept (true); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) noexcept (true); + + +extern _Float64 ldexpf64 (_Float64 __x, int __exponent) noexcept (true); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) noexcept (true); + + + extern _Float64 logf64 (_Float64 __x) noexcept (true); extern _Float64 __logf64 (_Float64 __x) noexcept (true); + + + extern _Float64 log10f64 (_Float64 __x) noexcept (true); extern _Float64 __log10f64 (_Float64 __x) noexcept (true); + + +extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float64 exp10f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10f64 (_Float64 __x) noexcept (true); + + +extern _Float64 exp2m1f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2m1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 exp10m1f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10m1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 log2p1f64 (_Float64 __x) noexcept (true); extern _Float64 __log2p1f64 (_Float64 __x) noexcept (true); + + +extern _Float64 log10p1f64 (_Float64 __x) noexcept (true); extern _Float64 __log10p1f64 (_Float64 __x) noexcept (true); + + + extern _Float64 logp1f64 (_Float64 __x) noexcept (true); extern _Float64 __logp1f64 (_Float64 __x) noexcept (true); + + + + + extern _Float64 expm1f64 (_Float64 __x) noexcept (true); extern _Float64 __expm1f64 (_Float64 __x) noexcept (true); + + + extern _Float64 log1pf64 (_Float64 __x) noexcept (true); extern _Float64 __log1pf64 (_Float64 __x) noexcept (true); + + +extern _Float64 logbf64 (_Float64 __x) noexcept (true); extern _Float64 __logbf64 (_Float64 __x) noexcept (true); + + + + + extern _Float64 exp2f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2f64 (_Float64 __x) noexcept (true); + + + extern _Float64 log2f64 (_Float64 __x) noexcept (true); extern _Float64 __log2f64 (_Float64 __x) noexcept (true); + + + + + + + extern _Float64 powf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float64 sqrtf64 (_Float64 __x) noexcept (true); extern _Float64 __sqrtf64 (_Float64 __x) noexcept (true); + + + + extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + + + extern _Float64 cbrtf64 (_Float64 __x) noexcept (true); extern _Float64 __cbrtf64 (_Float64 __x) noexcept (true); + + + + + + +extern _Float64 ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fabsf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 floorf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 nanf64 (const char *__tagb) noexcept (true); extern _Float64 __nanf64 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 j0f64 (_Float64) noexcept (true); extern _Float64 __j0f64 (_Float64) noexcept (true); +extern _Float64 j1f64 (_Float64) noexcept (true); extern _Float64 __j1f64 (_Float64) noexcept (true); +extern _Float64 jnf64 (int, _Float64) noexcept (true); extern _Float64 __jnf64 (int, _Float64) noexcept (true); +extern _Float64 y0f64 (_Float64) noexcept (true); extern _Float64 __y0f64 (_Float64) noexcept (true); +extern _Float64 y1f64 (_Float64) noexcept (true); extern _Float64 __y1f64 (_Float64) noexcept (true); +extern _Float64 ynf64 (int, _Float64) noexcept (true); extern _Float64 __ynf64 (int, _Float64) noexcept (true); + + + + + + extern _Float64 erff64 (_Float64) noexcept (true); extern _Float64 __erff64 (_Float64) noexcept (true); + extern _Float64 erfcf64 (_Float64) noexcept (true); extern _Float64 __erfcf64 (_Float64) noexcept (true); +extern _Float64 lgammaf64 (_Float64) noexcept (true); extern _Float64 __lgammaf64 (_Float64) noexcept (true); + + + + +extern _Float64 tgammaf64 (_Float64) noexcept (true); extern _Float64 __tgammaf64 (_Float64) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64 lgammaf64_r (_Float64, int *__signgamp) noexcept (true); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) noexcept (true); + + + + + + +extern _Float64 rintf64 (_Float64 __x) noexcept (true); extern _Float64 __rintf64 (_Float64 __x) noexcept (true); + + +extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + + + + +extern _Float64 nextdownf64 (_Float64 __x) noexcept (true); extern _Float64 __nextdownf64 (_Float64 __x) noexcept (true); + +extern _Float64 nextupf64 (_Float64 __x) noexcept (true); extern _Float64 __nextupf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + +extern _Float64 scalbnf64 (_Float64 __x, int __n) noexcept (true); extern _Float64 __scalbnf64 (_Float64 __x, int __n) noexcept (true); + + + +extern int ilogbf64 (_Float64 __x) noexcept (true); extern int __ilogbf64 (_Float64 __x) noexcept (true); + + + + +extern long int llogbf64 (_Float64 __x) noexcept (true); extern long int __llogbf64 (_Float64 __x) noexcept (true); + + + + +extern _Float64 scalblnf64 (_Float64 __x, long int __n) noexcept (true); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) noexcept (true); + + + +extern _Float64 nearbyintf64 (_Float64 __x) noexcept (true); extern _Float64 __nearbyintf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 truncf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf64 (_Float64 __x) noexcept (true); extern long int __lrintf64 (_Float64 __x) noexcept (true); +__extension__ +extern long long int llrintf64 (_Float64 __x) noexcept (true); extern long long int __llrintf64 (_Float64 __x) noexcept (true); + + + +extern long int lroundf64 (_Float64 __x) noexcept (true); extern long int __lroundf64 (_Float64 __x) noexcept (true); +__extension__ +extern long long int llroundf64 (_Float64 __x) noexcept (true); extern long long int __llroundf64 (_Float64 __x) noexcept (true); + + + +extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); + + + +extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + + + +extern _Float64 roundevenf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) noexcept (true); + + + + + + +extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64 fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fmaximum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float64 getpayloadf64 (const _Float64 *__x) noexcept (true); extern _Float64 __getpayloadf64 (const _Float64 *__x) noexcept (true); + + +extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) noexcept (true); + + +extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) noexcept (true); +# 437 "/usr/include/math.h" 2 3 4 +# 450 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __signbitf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + + +extern int __isinff128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __finitef128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __isnanf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); + + +extern int __iseqsigf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern int __issignalingf128 (_Float128 __value) noexcept (true) + __attribute__ ((__const__)); +# 451 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float128 acosf128 (_Float128 __x) noexcept (true); extern _Float128 __acosf128 (_Float128 __x) noexcept (true); + + extern _Float128 asinf128 (_Float128 __x) noexcept (true); extern _Float128 __asinf128 (_Float128 __x) noexcept (true); + + extern _Float128 atanf128 (_Float128 __x) noexcept (true); extern _Float128 __atanf128 (_Float128 __x) noexcept (true); + + extern _Float128 atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); + + + extern _Float128 cosf128 (_Float128 __x) noexcept (true); extern _Float128 __cosf128 (_Float128 __x) noexcept (true); + + extern _Float128 sinf128 (_Float128 __x) noexcept (true); extern _Float128 __sinf128 (_Float128 __x) noexcept (true); + + extern _Float128 tanf128 (_Float128 __x) noexcept (true); extern _Float128 __tanf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 acospif128 (_Float128 __x) noexcept (true); extern _Float128 __acospif128 (_Float128 __x) noexcept (true); + +extern _Float128 asinpif128 (_Float128 __x) noexcept (true); extern _Float128 __asinpif128 (_Float128 __x) noexcept (true); + +extern _Float128 atanpif128 (_Float128 __x) noexcept (true); extern _Float128 __atanpif128 (_Float128 __x) noexcept (true); + +extern _Float128 atan2pif128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2pif128 (_Float128 __y, _Float128 __x) noexcept (true); + + + extern _Float128 cospif128 (_Float128 __x) noexcept (true); extern _Float128 __cospif128 (_Float128 __x) noexcept (true); + + extern _Float128 sinpif128 (_Float128 __x) noexcept (true); extern _Float128 __sinpif128 (_Float128 __x) noexcept (true); + + extern _Float128 tanpif128 (_Float128 __x) noexcept (true); extern _Float128 __tanpif128 (_Float128 __x) noexcept (true); + + + + + + extern _Float128 coshf128 (_Float128 __x) noexcept (true); extern _Float128 __coshf128 (_Float128 __x) noexcept (true); + + extern _Float128 sinhf128 (_Float128 __x) noexcept (true); extern _Float128 __sinhf128 (_Float128 __x) noexcept (true); + + extern _Float128 tanhf128 (_Float128 __x) noexcept (true); extern _Float128 __tanhf128 (_Float128 __x) noexcept (true); + + + + extern void sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true); extern void __sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true) + ; + + + + + extern _Float128 acoshf128 (_Float128 __x) noexcept (true); extern _Float128 __acoshf128 (_Float128 __x) noexcept (true); + + extern _Float128 asinhf128 (_Float128 __x) noexcept (true); extern _Float128 __asinhf128 (_Float128 __x) noexcept (true); + + extern _Float128 atanhf128 (_Float128 __x) noexcept (true); extern _Float128 __atanhf128 (_Float128 __x) noexcept (true); + + + + + + extern _Float128 expf128 (_Float128 __x) noexcept (true); extern _Float128 __expf128 (_Float128 __x) noexcept (true); + + +extern _Float128 frexpf128 (_Float128 __x, int *__exponent) noexcept (true); extern _Float128 __frexpf128 (_Float128 __x, int *__exponent) noexcept (true); + + +extern _Float128 ldexpf128 (_Float128 __x, int __exponent) noexcept (true); extern _Float128 __ldexpf128 (_Float128 __x, int __exponent) noexcept (true); + + + extern _Float128 logf128 (_Float128 __x) noexcept (true); extern _Float128 __logf128 (_Float128 __x) noexcept (true); + + + extern _Float128 log10f128 (_Float128 __x) noexcept (true); extern _Float128 __log10f128 (_Float128 __x) noexcept (true); + + +extern _Float128 modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true); extern _Float128 __modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float128 exp10f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10f128 (_Float128 __x) noexcept (true); + + +extern _Float128 exp2m1f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2m1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 exp10m1f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10m1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 log2p1f128 (_Float128 __x) noexcept (true); extern _Float128 __log2p1f128 (_Float128 __x) noexcept (true); + + +extern _Float128 log10p1f128 (_Float128 __x) noexcept (true); extern _Float128 __log10p1f128 (_Float128 __x) noexcept (true); + + + extern _Float128 logp1f128 (_Float128 __x) noexcept (true); extern _Float128 __logp1f128 (_Float128 __x) noexcept (true); + + + + + extern _Float128 expm1f128 (_Float128 __x) noexcept (true); extern _Float128 __expm1f128 (_Float128 __x) noexcept (true); + + + extern _Float128 log1pf128 (_Float128 __x) noexcept (true); extern _Float128 __log1pf128 (_Float128 __x) noexcept (true); + + +extern _Float128 logbf128 (_Float128 __x) noexcept (true); extern _Float128 __logbf128 (_Float128 __x) noexcept (true); + + + + + extern _Float128 exp2f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2f128 (_Float128 __x) noexcept (true); + + + extern _Float128 log2f128 (_Float128 __x) noexcept (true); extern _Float128 __log2f128 (_Float128 __x) noexcept (true); + + + + + + + extern _Float128 powf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __powf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float128 sqrtf128 (_Float128 __x) noexcept (true); extern _Float128 __sqrtf128 (_Float128 __x) noexcept (true); + + + + extern _Float128 hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + + + extern _Float128 cbrtf128 (_Float128 __x) noexcept (true); extern _Float128 __cbrtf128 (_Float128 __x) noexcept (true); + + + + + + +extern _Float128 ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fabsf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 floorf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 nanf128 (const char *__tagb) noexcept (true); extern _Float128 __nanf128 (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 j0f128 (_Float128) noexcept (true); extern _Float128 __j0f128 (_Float128) noexcept (true); +extern _Float128 j1f128 (_Float128) noexcept (true); extern _Float128 __j1f128 (_Float128) noexcept (true); +extern _Float128 jnf128 (int, _Float128) noexcept (true); extern _Float128 __jnf128 (int, _Float128) noexcept (true); +extern _Float128 y0f128 (_Float128) noexcept (true); extern _Float128 __y0f128 (_Float128) noexcept (true); +extern _Float128 y1f128 (_Float128) noexcept (true); extern _Float128 __y1f128 (_Float128) noexcept (true); +extern _Float128 ynf128 (int, _Float128) noexcept (true); extern _Float128 __ynf128 (int, _Float128) noexcept (true); + + + + + + extern _Float128 erff128 (_Float128) noexcept (true); extern _Float128 __erff128 (_Float128) noexcept (true); + extern _Float128 erfcf128 (_Float128) noexcept (true); extern _Float128 __erfcf128 (_Float128) noexcept (true); +extern _Float128 lgammaf128 (_Float128) noexcept (true); extern _Float128 __lgammaf128 (_Float128) noexcept (true); + + + + +extern _Float128 tgammaf128 (_Float128) noexcept (true); extern _Float128 __tgammaf128 (_Float128) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float128 lgammaf128_r (_Float128, int *__signgamp) noexcept (true); extern _Float128 __lgammaf128_r (_Float128, int *__signgamp) noexcept (true); + + + + + + +extern _Float128 rintf128 (_Float128 __x) noexcept (true); extern _Float128 __rintf128 (_Float128 __x) noexcept (true); + + +extern _Float128 nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + + + + +extern _Float128 nextdownf128 (_Float128 __x) noexcept (true); extern _Float128 __nextdownf128 (_Float128 __x) noexcept (true); + +extern _Float128 nextupf128 (_Float128 __x) noexcept (true); extern _Float128 __nextupf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + +extern _Float128 scalbnf128 (_Float128 __x, int __n) noexcept (true); extern _Float128 __scalbnf128 (_Float128 __x, int __n) noexcept (true); + + + +extern int ilogbf128 (_Float128 __x) noexcept (true); extern int __ilogbf128 (_Float128 __x) noexcept (true); + + + + +extern long int llogbf128 (_Float128 __x) noexcept (true); extern long int __llogbf128 (_Float128 __x) noexcept (true); + + + + +extern _Float128 scalblnf128 (_Float128 __x, long int __n) noexcept (true); extern _Float128 __scalblnf128 (_Float128 __x, long int __n) noexcept (true); + + + +extern _Float128 nearbyintf128 (_Float128 __x) noexcept (true); extern _Float128 __nearbyintf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 truncf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); extern _Float128 __remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf128 (_Float128 __x) noexcept (true); extern long int __lrintf128 (_Float128 __x) noexcept (true); +__extension__ +extern long long int llrintf128 (_Float128 __x) noexcept (true); extern long long int __llrintf128 (_Float128 __x) noexcept (true); + + + +extern long int lroundf128 (_Float128 __x) noexcept (true); extern long int __lroundf128 (_Float128 __x) noexcept (true); +__extension__ +extern long long int llroundf128 (_Float128 __x) noexcept (true); extern long long int __llroundf128 (_Float128 __x) noexcept (true); + + + +extern _Float128 fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); + + + +extern _Float128 fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); extern _Float128 __fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + + + +extern _Float128 roundevenf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef128 (_Float128 *__cx, const _Float128 *__x) noexcept (true); + + + + + + +extern _Float128 fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float128 fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fmaximum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float128 getpayloadf128 (const _Float128 *__x) noexcept (true); extern _Float128 __getpayloadf128 (const _Float128 *__x) noexcept (true); + + +extern int setpayloadf128 (_Float128 *__x, _Float128 __payload) noexcept (true); + + +extern int setpayloadsigf128 (_Float128 *__x, _Float128 __payload) noexcept (true); +# 454 "/usr/include/math.h" 2 3 4 +# 470 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float32x acosf32x (_Float32x __x) noexcept (true); extern _Float32x __acosf32x (_Float32x __x) noexcept (true); + + extern _Float32x asinf32x (_Float32x __x) noexcept (true); extern _Float32x __asinf32x (_Float32x __x) noexcept (true); + + extern _Float32x atanf32x (_Float32x __x) noexcept (true); extern _Float32x __atanf32x (_Float32x __x) noexcept (true); + + extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); + + + extern _Float32x cosf32x (_Float32x __x) noexcept (true); extern _Float32x __cosf32x (_Float32x __x) noexcept (true); + + extern _Float32x sinf32x (_Float32x __x) noexcept (true); extern _Float32x __sinf32x (_Float32x __x) noexcept (true); + + extern _Float32x tanf32x (_Float32x __x) noexcept (true); extern _Float32x __tanf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x acospif32x (_Float32x __x) noexcept (true); extern _Float32x __acospif32x (_Float32x __x) noexcept (true); + +extern _Float32x asinpif32x (_Float32x __x) noexcept (true); extern _Float32x __asinpif32x (_Float32x __x) noexcept (true); + +extern _Float32x atanpif32x (_Float32x __x) noexcept (true); extern _Float32x __atanpif32x (_Float32x __x) noexcept (true); + +extern _Float32x atan2pif32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2pif32x (_Float32x __y, _Float32x __x) noexcept (true); + + + extern _Float32x cospif32x (_Float32x __x) noexcept (true); extern _Float32x __cospif32x (_Float32x __x) noexcept (true); + + extern _Float32x sinpif32x (_Float32x __x) noexcept (true); extern _Float32x __sinpif32x (_Float32x __x) noexcept (true); + + extern _Float32x tanpif32x (_Float32x __x) noexcept (true); extern _Float32x __tanpif32x (_Float32x __x) noexcept (true); + + + + + + extern _Float32x coshf32x (_Float32x __x) noexcept (true); extern _Float32x __coshf32x (_Float32x __x) noexcept (true); + + extern _Float32x sinhf32x (_Float32x __x) noexcept (true); extern _Float32x __sinhf32x (_Float32x __x) noexcept (true); + + extern _Float32x tanhf32x (_Float32x __x) noexcept (true); extern _Float32x __tanhf32x (_Float32x __x) noexcept (true); + + + + extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true) + ; + + + + + extern _Float32x acoshf32x (_Float32x __x) noexcept (true); extern _Float32x __acoshf32x (_Float32x __x) noexcept (true); + + extern _Float32x asinhf32x (_Float32x __x) noexcept (true); extern _Float32x __asinhf32x (_Float32x __x) noexcept (true); + + extern _Float32x atanhf32x (_Float32x __x) noexcept (true); extern _Float32x __atanhf32x (_Float32x __x) noexcept (true); + + + + + + extern _Float32x expf32x (_Float32x __x) noexcept (true); extern _Float32x __expf32x (_Float32x __x) noexcept (true); + + +extern _Float32x frexpf32x (_Float32x __x, int *__exponent) noexcept (true); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) noexcept (true); + + +extern _Float32x ldexpf32x (_Float32x __x, int __exponent) noexcept (true); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) noexcept (true); + + + extern _Float32x logf32x (_Float32x __x) noexcept (true); extern _Float32x __logf32x (_Float32x __x) noexcept (true); + + + extern _Float32x log10f32x (_Float32x __x) noexcept (true); extern _Float32x __log10f32x (_Float32x __x) noexcept (true); + + +extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float32x exp10f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10f32x (_Float32x __x) noexcept (true); + + +extern _Float32x exp2m1f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2m1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x exp10m1f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10m1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x log2p1f32x (_Float32x __x) noexcept (true); extern _Float32x __log2p1f32x (_Float32x __x) noexcept (true); + + +extern _Float32x log10p1f32x (_Float32x __x) noexcept (true); extern _Float32x __log10p1f32x (_Float32x __x) noexcept (true); + + + extern _Float32x logp1f32x (_Float32x __x) noexcept (true); extern _Float32x __logp1f32x (_Float32x __x) noexcept (true); + + + + + extern _Float32x expm1f32x (_Float32x __x) noexcept (true); extern _Float32x __expm1f32x (_Float32x __x) noexcept (true); + + + extern _Float32x log1pf32x (_Float32x __x) noexcept (true); extern _Float32x __log1pf32x (_Float32x __x) noexcept (true); + + +extern _Float32x logbf32x (_Float32x __x) noexcept (true); extern _Float32x __logbf32x (_Float32x __x) noexcept (true); + + + + + extern _Float32x exp2f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2f32x (_Float32x __x) noexcept (true); + + + extern _Float32x log2f32x (_Float32x __x) noexcept (true); extern _Float32x __log2f32x (_Float32x __x) noexcept (true); + + + + + + + extern _Float32x powf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32x sqrtf32x (_Float32x __x) noexcept (true); extern _Float32x __sqrtf32x (_Float32x __x) noexcept (true); + + + + extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + + + extern _Float32x cbrtf32x (_Float32x __x) noexcept (true); extern _Float32x __cbrtf32x (_Float32x __x) noexcept (true); + + + + + + +extern _Float32x ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fabsf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x floorf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x nanf32x (const char *__tagb) noexcept (true); extern _Float32x __nanf32x (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x j0f32x (_Float32x) noexcept (true); extern _Float32x __j0f32x (_Float32x) noexcept (true); +extern _Float32x j1f32x (_Float32x) noexcept (true); extern _Float32x __j1f32x (_Float32x) noexcept (true); +extern _Float32x jnf32x (int, _Float32x) noexcept (true); extern _Float32x __jnf32x (int, _Float32x) noexcept (true); +extern _Float32x y0f32x (_Float32x) noexcept (true); extern _Float32x __y0f32x (_Float32x) noexcept (true); +extern _Float32x y1f32x (_Float32x) noexcept (true); extern _Float32x __y1f32x (_Float32x) noexcept (true); +extern _Float32x ynf32x (int, _Float32x) noexcept (true); extern _Float32x __ynf32x (int, _Float32x) noexcept (true); + + + + + + extern _Float32x erff32x (_Float32x) noexcept (true); extern _Float32x __erff32x (_Float32x) noexcept (true); + extern _Float32x erfcf32x (_Float32x) noexcept (true); extern _Float32x __erfcf32x (_Float32x) noexcept (true); +extern _Float32x lgammaf32x (_Float32x) noexcept (true); extern _Float32x __lgammaf32x (_Float32x) noexcept (true); + + + + +extern _Float32x tgammaf32x (_Float32x) noexcept (true); extern _Float32x __tgammaf32x (_Float32x) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); + + + + + + +extern _Float32x rintf32x (_Float32x __x) noexcept (true); extern _Float32x __rintf32x (_Float32x __x) noexcept (true); + + +extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + + + + +extern _Float32x nextdownf32x (_Float32x __x) noexcept (true); extern _Float32x __nextdownf32x (_Float32x __x) noexcept (true); + +extern _Float32x nextupf32x (_Float32x __x) noexcept (true); extern _Float32x __nextupf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + +extern _Float32x scalbnf32x (_Float32x __x, int __n) noexcept (true); extern _Float32x __scalbnf32x (_Float32x __x, int __n) noexcept (true); + + + +extern int ilogbf32x (_Float32x __x) noexcept (true); extern int __ilogbf32x (_Float32x __x) noexcept (true); + + + + +extern long int llogbf32x (_Float32x __x) noexcept (true); extern long int __llogbf32x (_Float32x __x) noexcept (true); + + + + +extern _Float32x scalblnf32x (_Float32x __x, long int __n) noexcept (true); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) noexcept (true); + + + +extern _Float32x nearbyintf32x (_Float32x __x) noexcept (true); extern _Float32x __nearbyintf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x truncf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf32x (_Float32x __x) noexcept (true); extern long int __lrintf32x (_Float32x __x) noexcept (true); +__extension__ +extern long long int llrintf32x (_Float32x __x) noexcept (true); extern long long int __llrintf32x (_Float32x __x) noexcept (true); + + + +extern long int lroundf32x (_Float32x __x) noexcept (true); extern long int __lroundf32x (_Float32x __x) noexcept (true); +__extension__ +extern long long int llroundf32x (_Float32x __x) noexcept (true); extern long long int __llroundf32x (_Float32x __x) noexcept (true); + + + +extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); + + + +extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); + + + + +extern _Float32x roundevenf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) noexcept (true); + + + + + + +extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float32x fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fmaximum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float32x getpayloadf32x (const _Float32x *__x) noexcept (true); extern _Float32x __getpayloadf32x (const _Float32x *__x) noexcept (true); + + +extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) noexcept (true); + + +extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) noexcept (true); +# 471 "/usr/include/math.h" 2 3 4 +# 487 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + extern _Float64x acosf64x (_Float64x __x) noexcept (true); extern _Float64x __acosf64x (_Float64x __x) noexcept (true); + + extern _Float64x asinf64x (_Float64x __x) noexcept (true); extern _Float64x __asinf64x (_Float64x __x) noexcept (true); + + extern _Float64x atanf64x (_Float64x __x) noexcept (true); extern _Float64x __atanf64x (_Float64x __x) noexcept (true); + + extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); + + + extern _Float64x cosf64x (_Float64x __x) noexcept (true); extern _Float64x __cosf64x (_Float64x __x) noexcept (true); + + extern _Float64x sinf64x (_Float64x __x) noexcept (true); extern _Float64x __sinf64x (_Float64x __x) noexcept (true); + + extern _Float64x tanf64x (_Float64x __x) noexcept (true); extern _Float64x __tanf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x acospif64x (_Float64x __x) noexcept (true); extern _Float64x __acospif64x (_Float64x __x) noexcept (true); + +extern _Float64x asinpif64x (_Float64x __x) noexcept (true); extern _Float64x __asinpif64x (_Float64x __x) noexcept (true); + +extern _Float64x atanpif64x (_Float64x __x) noexcept (true); extern _Float64x __atanpif64x (_Float64x __x) noexcept (true); + +extern _Float64x atan2pif64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2pif64x (_Float64x __y, _Float64x __x) noexcept (true); + + + extern _Float64x cospif64x (_Float64x __x) noexcept (true); extern _Float64x __cospif64x (_Float64x __x) noexcept (true); + + extern _Float64x sinpif64x (_Float64x __x) noexcept (true); extern _Float64x __sinpif64x (_Float64x __x) noexcept (true); + + extern _Float64x tanpif64x (_Float64x __x) noexcept (true); extern _Float64x __tanpif64x (_Float64x __x) noexcept (true); + + + + + + extern _Float64x coshf64x (_Float64x __x) noexcept (true); extern _Float64x __coshf64x (_Float64x __x) noexcept (true); + + extern _Float64x sinhf64x (_Float64x __x) noexcept (true); extern _Float64x __sinhf64x (_Float64x __x) noexcept (true); + + extern _Float64x tanhf64x (_Float64x __x) noexcept (true); extern _Float64x __tanhf64x (_Float64x __x) noexcept (true); + + + + extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true) + ; + + + + + extern _Float64x acoshf64x (_Float64x __x) noexcept (true); extern _Float64x __acoshf64x (_Float64x __x) noexcept (true); + + extern _Float64x asinhf64x (_Float64x __x) noexcept (true); extern _Float64x __asinhf64x (_Float64x __x) noexcept (true); + + extern _Float64x atanhf64x (_Float64x __x) noexcept (true); extern _Float64x __atanhf64x (_Float64x __x) noexcept (true); + + + + + + extern _Float64x expf64x (_Float64x __x) noexcept (true); extern _Float64x __expf64x (_Float64x __x) noexcept (true); + + +extern _Float64x frexpf64x (_Float64x __x, int *__exponent) noexcept (true); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) noexcept (true); + + +extern _Float64x ldexpf64x (_Float64x __x, int __exponent) noexcept (true); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) noexcept (true); + + + extern _Float64x logf64x (_Float64x __x) noexcept (true); extern _Float64x __logf64x (_Float64x __x) noexcept (true); + + + extern _Float64x log10f64x (_Float64x __x) noexcept (true); extern _Float64x __log10f64x (_Float64x __x) noexcept (true); + + +extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2))); + + + + extern _Float64x exp10f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10f64x (_Float64x __x) noexcept (true); + + +extern _Float64x exp2m1f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2m1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x exp10m1f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10m1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x log2p1f64x (_Float64x __x) noexcept (true); extern _Float64x __log2p1f64x (_Float64x __x) noexcept (true); + + +extern _Float64x log10p1f64x (_Float64x __x) noexcept (true); extern _Float64x __log10p1f64x (_Float64x __x) noexcept (true); + + + extern _Float64x logp1f64x (_Float64x __x) noexcept (true); extern _Float64x __logp1f64x (_Float64x __x) noexcept (true); + + + + + extern _Float64x expm1f64x (_Float64x __x) noexcept (true); extern _Float64x __expm1f64x (_Float64x __x) noexcept (true); + + + extern _Float64x log1pf64x (_Float64x __x) noexcept (true); extern _Float64x __log1pf64x (_Float64x __x) noexcept (true); + + +extern _Float64x logbf64x (_Float64x __x) noexcept (true); extern _Float64x __logbf64x (_Float64x __x) noexcept (true); + + + + + extern _Float64x exp2f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2f64x (_Float64x __x) noexcept (true); + + + extern _Float64x log2f64x (_Float64x __x) noexcept (true); extern _Float64x __log2f64x (_Float64x __x) noexcept (true); + + + + + + + extern _Float64x powf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64x sqrtf64x (_Float64x __x) noexcept (true); extern _Float64x __sqrtf64x (_Float64x __x) noexcept (true); + + + + extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + + + extern _Float64x cbrtf64x (_Float64x __x) noexcept (true); extern _Float64x __cbrtf64x (_Float64x __x) noexcept (true); + + + + + + +extern _Float64x ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fabsf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x floorf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 231 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x nanf64x (const char *__tagb) noexcept (true); extern _Float64x __nanf64x (const char *__tagb) noexcept (true); +# 253 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x j0f64x (_Float64x) noexcept (true); extern _Float64x __j0f64x (_Float64x) noexcept (true); +extern _Float64x j1f64x (_Float64x) noexcept (true); extern _Float64x __j1f64x (_Float64x) noexcept (true); +extern _Float64x jnf64x (int, _Float64x) noexcept (true); extern _Float64x __jnf64x (int, _Float64x) noexcept (true); +extern _Float64x y0f64x (_Float64x) noexcept (true); extern _Float64x __y0f64x (_Float64x) noexcept (true); +extern _Float64x y1f64x (_Float64x) noexcept (true); extern _Float64x __y1f64x (_Float64x) noexcept (true); +extern _Float64x ynf64x (int, _Float64x) noexcept (true); extern _Float64x __ynf64x (int, _Float64x) noexcept (true); + + + + + + extern _Float64x erff64x (_Float64x) noexcept (true); extern _Float64x __erff64x (_Float64x) noexcept (true); + extern _Float64x erfcf64x (_Float64x) noexcept (true); extern _Float64x __erfcf64x (_Float64x) noexcept (true); +extern _Float64x lgammaf64x (_Float64x) noexcept (true); extern _Float64x __lgammaf64x (_Float64x) noexcept (true); + + + + +extern _Float64x tgammaf64x (_Float64x) noexcept (true); extern _Float64x __tgammaf64x (_Float64x) noexcept (true); +# 285 "/usr/include/bits/mathcalls.h" 3 4 +extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); + + + + + + +extern _Float64x rintf64x (_Float64x __x) noexcept (true); extern _Float64x __rintf64x (_Float64x __x) noexcept (true); + + +extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + + + + +extern _Float64x nextdownf64x (_Float64x __x) noexcept (true); extern _Float64x __nextdownf64x (_Float64x __x) noexcept (true); + +extern _Float64x nextupf64x (_Float64x __x) noexcept (true); extern _Float64x __nextupf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + +extern _Float64x scalbnf64x (_Float64x __x, int __n) noexcept (true); extern _Float64x __scalbnf64x (_Float64x __x, int __n) noexcept (true); + + + +extern int ilogbf64x (_Float64x __x) noexcept (true); extern int __ilogbf64x (_Float64x __x) noexcept (true); + + + + +extern long int llogbf64x (_Float64x __x) noexcept (true); extern long int __llogbf64x (_Float64x __x) noexcept (true); + + + + +extern _Float64x scalblnf64x (_Float64x __x, long int __n) noexcept (true); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) noexcept (true); + + + +extern _Float64x nearbyintf64x (_Float64x __x) noexcept (true); extern _Float64x __nearbyintf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x truncf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); + + + + + + +extern long int lrintf64x (_Float64x __x) noexcept (true); extern long int __lrintf64x (_Float64x __x) noexcept (true); +__extension__ +extern long long int llrintf64x (_Float64x __x) noexcept (true); extern long long int __llrintf64x (_Float64x __x) noexcept (true); + + + +extern long int lroundf64x (_Float64x __x) noexcept (true); extern long int __lroundf64x (_Float64x __x) noexcept (true); +__extension__ +extern long long int llroundf64x (_Float64x __x) noexcept (true); extern long long int __llroundf64x (_Float64x __x) noexcept (true); + + + +extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); + + + +extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + + + +extern _Float64x roundevenf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + +extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + + + +extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true) + ; + + +extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) noexcept (true); + + + + + + +extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern _Float64x fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fmaximum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + + + +extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true) + + __attribute__ ((__pure__)); + + +extern _Float64x getpayloadf64x (const _Float64x *__x) noexcept (true); extern _Float64x __getpayloadf64x (const _Float64x *__x) noexcept (true); + + +extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) noexcept (true); + + +extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) noexcept (true); +# 488 "/usr/include/math.h" 2 3 4 +# 535 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern float fadd (double __x, double __y) noexcept (true); + + +extern float fdiv (double __x, double __y) noexcept (true); + + +extern float ffma (double __x, double __y, double __z) noexcept (true); + + +extern float fmul (double __x, double __y) noexcept (true); + + +extern float fsqrt (double __x) noexcept (true); + + +extern float fsub (double __x, double __y) noexcept (true); +# 536 "/usr/include/math.h" 2 3 4 +# 556 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern float faddl (long double __x, long double __y) noexcept (true); + + +extern float fdivl (long double __x, long double __y) noexcept (true); + + +extern float ffmal (long double __x, long double __y, long double __z) noexcept (true); + + +extern float fmull (long double __x, long double __y) noexcept (true); + + +extern float fsqrtl (long double __x) noexcept (true); + + +extern float fsubl (long double __x, long double __y) noexcept (true); +# 557 "/usr/include/math.h" 2 3 4 +# 585 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern double daddl (long double __x, long double __y) noexcept (true); + + +extern double ddivl (long double __x, long double __y) noexcept (true); + + +extern double dfmal (long double __x, long double __y, long double __z) noexcept (true); + + +extern double dmull (long double __x, long double __y) noexcept (true); + + +extern double dsqrtl (long double __x) noexcept (true); + + +extern double dsubl (long double __x, long double __y) noexcept (true); +# 586 "/usr/include/math.h" 2 3 4 +# 666 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); + + +extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) noexcept (true); + + +extern _Float32 f32sqrtf32x (_Float32x __x) noexcept (true); + + +extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) noexcept (true); +# 667 "/usr/include/math.h" 2 3 4 +# 676 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + +extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32 f32sqrtf64 (_Float64 __x) noexcept (true); + + +extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 677 "/usr/include/math.h" 2 3 4 +# 686 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32 f32sqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 687 "/usr/include/math.h" 2 3 4 +# 696 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32divf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float32 f32mulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32 f32sqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float32 f32subf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 697 "/usr/include/math.h" 2 3 4 +# 716 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xfmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); + + +extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) noexcept (true); + + +extern _Float32x f32xsqrtf64 (_Float64 __x) noexcept (true); + + +extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) noexcept (true); +# 717 "/usr/include/math.h" 2 3 4 +# 726 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xfmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float32x f32xsqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 727 "/usr/include/math.h" 2 3 4 +# 736 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float32x f32xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float32x f32xsqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float32x f32xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 737 "/usr/include/math.h" 2 3 4 +# 756 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); + + +extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) noexcept (true); + + +extern _Float64 f64sqrtf64x (_Float64x __x) noexcept (true); + + +extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) noexcept (true); +# 757 "/usr/include/math.h" 2 3 4 +# 766 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64divf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float64 f64mulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64 f64sqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float64 f64subf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 767 "/usr/include/math.h" 2 3 4 +# 786 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 4 +extern _Float64x f64xaddf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xdivf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); + + +extern _Float64x f64xmulf128 (_Float128 __x, _Float128 __y) noexcept (true); + + +extern _Float64x f64xsqrtf128 (_Float128 __x) noexcept (true); + + +extern _Float64x f64xsubf128 (_Float128 __x, _Float128 __y) noexcept (true); +# 787 "/usr/include/math.h" 2 3 4 +# 823 "/usr/include/math.h" 3 4 +extern int signgam; +# 903 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 1024 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/iscanonical.h" 1 3 4 +# 23 "/usr/include/bits/iscanonical.h" 3 4 +extern int __iscanonicall (long double __x) + noexcept (true) __attribute__ ((__const__)); +# 46 "/usr/include/bits/iscanonical.h" 3 4 +extern "C++" { +inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (long double __val) { return __iscanonicall (__val); } + +inline int iscanonical (_Float128 __val) { return ((void) (__typeof (__val)) (__val), 1); } + +} +# 1025 "/usr/include/math.h" 2 3 4 +# 1036 "/usr/include/math.h" 3 4 +extern "C++" { +inline int issignaling (float __val) { return __issignalingf (__val); } +inline int issignaling (double __val) { return __issignaling (__val); } +inline int +issignaling (long double __val) +{ + + + + return __issignalingl (__val); + +} + + + +inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } + +} +# 1067 "/usr/include/math.h" 3 4 +extern "C++" { +# 1098 "/usr/include/math.h" 3 4 +template inline bool +iszero (__T __val) +{ + return __val == 0; +} + +} +# 1333 "/usr/include/math.h" 3 4 +extern "C++" { +template struct __iseqsig_type; + +template<> struct __iseqsig_type +{ + static int __call (float __x, float __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (double __x, double __y) throw () + { + return __iseqsig (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (long double __x, long double __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; + + +template<> struct __iseqsig_type<_Float32> +{ + static int __call (_Float32 __x, _Float32 __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + + + +template<> struct __iseqsig_type<_Float64> +{ + static int __call (_Float64 __x, _Float64 __y) throw () + { + return __iseqsig (__x, __y); + } +}; + + + + + +template<> struct __iseqsig_type<_Float128> +{ + static int __call (_Float128 __x, _Float128 __y) throw () + { + + return __iseqsigf128 (__x, __y); + + + + } +}; + + + +template<> struct __iseqsig_type<_Float32x> +{ + static int __call (_Float32x __x, _Float32x __y) throw () + { + return __iseqsig (__x, __y); + } +}; + + + +template<> struct __iseqsig_type<_Float64x> +{ + static int __call (_Float64x __x, _Float64x __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; + + +template +inline int +iseqsig (_T1 __x, _T2 __y) throw () +{ + + typedef decltype (((__x) + (__y) + 0.0f)) _T3; + + + + return __iseqsig_type<_T3>::__call (__x, __y); +} + +} + + + + +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::acos; + + + inline constexpr float + acos(float __x) + { return __builtin_acosf(__x); } + + inline constexpr long double + acos(long double __x) + { return __builtin_acosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acos(_Tp __x) + { return __builtin_acos(__x); } + + using ::asin; + + + inline constexpr float + asin(float __x) + { return __builtin_asinf(__x); } + + inline constexpr long double + asin(long double __x) + { return __builtin_asinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asin(_Tp __x) + { return __builtin_asin(__x); } + + using ::atan; + + + inline constexpr float + atan(float __x) + { return __builtin_atanf(__x); } + + inline constexpr long double + atan(long double __x) + { return __builtin_atanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atan(_Tp __x) + { return __builtin_atan(__x); } + + using ::atan2; + + + inline constexpr float + atan2(float __y, float __x) + { return __builtin_atan2f(__y, __x); } + + inline constexpr long double + atan2(long double __y, long double __x) + { return __builtin_atan2l(__y, __x); } + + + using ::ceil; + + + inline constexpr float + ceil(float __x) + { return __builtin_ceilf(__x); } + + inline constexpr long double + ceil(long double __x) + { return __builtin_ceill(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ceil(_Tp __x) + { return __builtin_ceil(__x); } + + using ::cos; + + + inline constexpr float + cos(float __x) + { return __builtin_cosf(__x); } + + inline constexpr long double + cos(long double __x) + { return __builtin_cosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cos(_Tp __x) + { return __builtin_cos(__x); } + + using ::cosh; + + + inline constexpr float + cosh(float __x) + { return __builtin_coshf(__x); } + + inline constexpr long double + cosh(long double __x) + { return __builtin_coshl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cosh(_Tp __x) + { return __builtin_cosh(__x); } + + using ::exp; + + + inline constexpr float + exp(float __x) + { return __builtin_expf(__x); } + + inline constexpr long double + exp(long double __x) + { return __builtin_expl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp(_Tp __x) + { return __builtin_exp(__x); } + + using ::fabs; + + + inline constexpr float + fabs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + fabs(long double __x) + { return __builtin_fabsl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + fabs(_Tp __x) + { return __builtin_fabs(__x); } + + using ::floor; + + + inline constexpr float + floor(float __x) + { return __builtin_floorf(__x); } + + inline constexpr long double + floor(long double __x) + { return __builtin_floorl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + floor(_Tp __x) + { return __builtin_floor(__x); } + + using ::fmod; + + + inline constexpr float + fmod(float __x, float __y) + { return __builtin_fmodf(__x, __y); } + + inline constexpr long double + fmod(long double __x, long double __y) + { return __builtin_fmodl(__x, __y); } + + + using ::frexp; + + + inline float + frexp(float __x, int* __exp) + { return __builtin_frexpf(__x, __exp); } + + inline long double + frexp(long double __x, int* __exp) + { return __builtin_frexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + frexp(_Tp __x, int* __exp) + { return __builtin_frexp(__x, __exp); } + + using ::ldexp; + + + inline constexpr float + ldexp(float __x, int __exp) + { return __builtin_ldexpf(__x, __exp); } + + inline constexpr long double + ldexp(long double __x, int __exp) + { return __builtin_ldexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ldexp(_Tp __x, int __exp) + { return __builtin_ldexp(__x, __exp); } + + using ::log; + + + inline constexpr float + log(float __x) + { return __builtin_logf(__x); } + + inline constexpr long double + log(long double __x) + { return __builtin_logl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log(_Tp __x) + { return __builtin_log(__x); } + + using ::log10; + + + inline constexpr float + log10(float __x) + { return __builtin_log10f(__x); } + + inline constexpr long double + log10(long double __x) + { return __builtin_log10l(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log10(_Tp __x) + { return __builtin_log10(__x); } + + using ::modf; + + + inline float + modf(float __x, float* __iptr) + { return __builtin_modff(__x, __iptr); } + + inline long double + modf(long double __x, long double* __iptr) + { return __builtin_modfl(__x, __iptr); } + + + using ::pow; + + + inline constexpr float + pow(float __x, float __y) + { return __builtin_powf(__x, __y); } + + inline constexpr long double + pow(long double __x, long double __y) + { return __builtin_powl(__x, __y); } +# 400 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::sin; + + + inline constexpr float + sin(float __x) + { return __builtin_sinf(__x); } + + inline constexpr long double + sin(long double __x) + { return __builtin_sinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sin(_Tp __x) + { return __builtin_sin(__x); } + + using ::sinh; + + + inline constexpr float + sinh(float __x) + { return __builtin_sinhf(__x); } + + inline constexpr long double + sinh(long double __x) + { return __builtin_sinhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sinh(_Tp __x) + { return __builtin_sinh(__x); } + + using ::sqrt; + + + inline constexpr float + sqrt(float __x) + { return __builtin_sqrtf(__x); } + + inline constexpr long double + sqrt(long double __x) + { return __builtin_sqrtl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sqrt(_Tp __x) + { return __builtin_sqrt(__x); } + + using ::tan; + + + inline constexpr float + tan(float __x) + { return __builtin_tanf(__x); } + + inline constexpr long double + tan(long double __x) + { return __builtin_tanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tan(_Tp __x) + { return __builtin_tan(__x); } + + using ::tanh; + + + inline constexpr float + tanh(float __x) + { return __builtin_tanhf(__x); } + + inline constexpr long double + tanh(long double __x) + { return __builtin_tanhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tanh(_Tp __x) + { return __builtin_tanh(__x); } +# 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + atan2(_Tp __y, _Up __x) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return atan2(__type(__y), __type(__x)); + } + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmod(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmod(__type(__x), __type(__y)); + } + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + pow(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return pow(__type(__x), __type(__y)); + } +# 1100 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + constexpr int + fpclassify(float __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(long double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + fpclassify(_Tp __x) + { return __x != 0 ? 4 : 2; } + + + + constexpr bool + isfinite(float __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(double __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(long double __x) + { return __builtin_isfinite(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isfinite(_Tp) + { return true; } + + + + constexpr bool + isinf(float __x) + { return __builtin_isinf(__x); } + + + + + + constexpr bool + isinf(double __x) + { return __builtin_isinf(__x); } + + + constexpr bool + isinf(long double __x) + { return __builtin_isinf(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isinf(_Tp) + { return false; } + + + + constexpr bool + isnan(float __x) + { return __builtin_isnan(__x); } + + + + + + constexpr bool + isnan(double __x) + { return __builtin_isnan(__x); } + + + constexpr bool + isnan(long double __x) + { return __builtin_isnan(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnan(_Tp) + { return false; } + + + + constexpr bool + isnormal(float __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(double __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(long double __x) + { return __builtin_isnormal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnormal(_Tp __x) + { return __x != 0 ? true : false; } + + + + + constexpr bool + signbit(float __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(double __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(long double __x) + { return __builtin_signbit(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + signbit(_Tp __x) + { return __x < 0 ? true : false; } + + + + constexpr bool + isgreater(float __x, float __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(double __x, double __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(long double __x, long double __y) + { return __builtin_isgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isgreaterequal(float __x, float __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(double __x, double __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(long double __x, long double __y) + { return __builtin_isgreaterequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreaterequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreaterequal(__type(__x), __type(__y)); + } + + + + constexpr bool + isless(float __x, float __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(double __x, double __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(long double __x, long double __y) + { return __builtin_isless(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isless(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isless(__type(__x), __type(__y)); + } + + + + constexpr bool + islessequal(float __x, float __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(double __x, double __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(long double __x, long double __y) + { return __builtin_islessequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessequal(__type(__x), __type(__y)); + } + + + + constexpr bool + islessgreater(float __x, float __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(double __x, double __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(long double __x, long double __y) + { return __builtin_islessgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isunordered(float __x, float __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(double __x, double __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(long double __x, long double __y) + { return __builtin_isunordered(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isunordered(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isunordered(__type(__x), __type(__y)); + } +# 1820 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::acosf; + + + using ::acosl; + + + + using ::asinf; + + + using ::asinl; + + + + using ::atanf; + + + using ::atanl; + + + + using ::atan2f; + + + using ::atan2l; + + + + using ::ceilf; + + + using ::ceill; + + + + using ::cosf; + + + using ::cosl; + + + + using ::coshf; + + + using ::coshl; + + + + using ::expf; + + + using ::expl; + + + + using ::fabsf; + + + using ::fabsl; + + + + using ::floorf; + + + using ::floorl; + + + + using ::fmodf; + + + using ::fmodl; + + + + using ::frexpf; + + + using ::frexpl; + + + + using ::ldexpf; + + + using ::ldexpl; + + + + using ::logf; + + + using ::logl; + + + + using ::log10f; + + + using ::log10l; + + + + using ::modff; + + + using ::modfl; + + + + using ::powf; + + + using ::powl; + + + + using ::sinf; + + + using ::sinl; + + + + using ::sinhf; + + + using ::sinhl; + + + + using ::sqrtf; + + + using ::sqrtl; + + + + using ::tanf; + + + using ::tanl; + + + + using ::tanhf; + + + using ::tanhl; +# 2085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + using ::double_t; + using ::float_t; + + + + using ::acosh; + using ::acoshf; + using ::acoshl; + + using ::asinh; + using ::asinhf; + using ::asinhl; + + using ::atanh; + using ::atanhf; + using ::atanhl; + + using ::cbrt; + using ::cbrtf; + using ::cbrtl; + + using ::copysign; + using ::copysignf; + using ::copysignl; + + using ::erf; + using ::erff; + using ::erfl; + + using ::erfc; + using ::erfcf; + using ::erfcl; + + using ::exp2; + using ::exp2f; + using ::exp2l; + + using ::expm1; + using ::expm1f; + using ::expm1l; + + using ::fdim; + using ::fdimf; + using ::fdiml; + + using ::fma; + using ::fmaf; + using ::fmal; + + using ::fmax; + using ::fmaxf; + using ::fmaxl; + + using ::fmin; + using ::fminf; + using ::fminl; + + using ::hypot; + using ::hypotf; + using ::hypotl; + + using ::ilogb; + using ::ilogbf; + using ::ilogbl; + + using ::lgamma; + using ::lgammaf; + using ::lgammal; + + + using ::llrint; + using ::llrintf; + using ::llrintl; + + using ::llround; + using ::llroundf; + using ::llroundl; + + + using ::log1p; + using ::log1pf; + using ::log1pl; + + using ::log2; + using ::log2f; + using ::log2l; + + using ::logb; + using ::logbf; + using ::logbl; + + using ::lrint; + using ::lrintf; + using ::lrintl; + + using ::lround; + using ::lroundf; + using ::lroundl; + + using ::nan; + using ::nanf; + using ::nanl; + + using ::nearbyint; + using ::nearbyintf; + using ::nearbyintl; + + using ::nextafter; + using ::nextafterf; + using ::nextafterl; + + using ::nexttoward; + using ::nexttowardf; + using ::nexttowardl; + + using ::remainder; + using ::remainderf; + using ::remainderl; + + using ::remquo; + using ::remquof; + using ::remquol; + + using ::rint; + using ::rintf; + using ::rintl; + + using ::round; + using ::roundf; + using ::roundl; + + using ::scalbln; + using ::scalblnf; + using ::scalblnl; + + using ::scalbn; + using ::scalbnf; + using ::scalbnl; + + using ::tgamma; + using ::tgammaf; + using ::tgammal; + + using ::trunc; + using ::truncf; + using ::truncl; + + + + constexpr float + acosh(float __x) + { return __builtin_acoshf(__x); } + + constexpr long double + acosh(long double __x) + { return __builtin_acoshl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acosh(_Tp __x) + { return __builtin_acosh(__x); } + + + + constexpr float + asinh(float __x) + { return __builtin_asinhf(__x); } + + constexpr long double + asinh(long double __x) + { return __builtin_asinhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asinh(_Tp __x) + { return __builtin_asinh(__x); } + + + + constexpr float + atanh(float __x) + { return __builtin_atanhf(__x); } + + constexpr long double + atanh(long double __x) + { return __builtin_atanhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atanh(_Tp __x) + { return __builtin_atanh(__x); } + + + + constexpr float + cbrt(float __x) + { return __builtin_cbrtf(__x); } + + constexpr long double + cbrt(long double __x) + { return __builtin_cbrtl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cbrt(_Tp __x) + { return __builtin_cbrt(__x); } + + + + constexpr float + copysign(float __x, float __y) + { return __builtin_copysignf(__x, __y); } + + constexpr long double + copysign(long double __x, long double __y) + { return __builtin_copysignl(__x, __y); } + + + + constexpr float + erf(float __x) + { return __builtin_erff(__x); } + + constexpr long double + erf(long double __x) + { return __builtin_erfl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erf(_Tp __x) + { return __builtin_erf(__x); } + + + + constexpr float + erfc(float __x) + { return __builtin_erfcf(__x); } + + constexpr long double + erfc(long double __x) + { return __builtin_erfcl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erfc(_Tp __x) + { return __builtin_erfc(__x); } + + + + constexpr float + exp2(float __x) + { return __builtin_exp2f(__x); } + + constexpr long double + exp2(long double __x) + { return __builtin_exp2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp2(_Tp __x) + { return __builtin_exp2(__x); } + + + + constexpr float + expm1(float __x) + { return __builtin_expm1f(__x); } + + constexpr long double + expm1(long double __x) + { return __builtin_expm1l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + expm1(_Tp __x) + { return __builtin_expm1(__x); } + + + + constexpr float + fdim(float __x, float __y) + { return __builtin_fdimf(__x, __y); } + + constexpr long double + fdim(long double __x, long double __y) + { return __builtin_fdiml(__x, __y); } + + + + constexpr float + fma(float __x, float __y, float __z) + { return __builtin_fmaf(__x, __y, __z); } + + constexpr long double + fma(long double __x, long double __y, long double __z) + { return __builtin_fmal(__x, __y, __z); } + + + + constexpr float + fmax(float __x, float __y) + { return __builtin_fmaxf(__x, __y); } + + constexpr long double + fmax(long double __x, long double __y) + { return __builtin_fmaxl(__x, __y); } + + + + constexpr float + fmin(float __x, float __y) + { return __builtin_fminf(__x, __y); } + + constexpr long double + fmin(long double __x, long double __y) + { return __builtin_fminl(__x, __y); } + + + + constexpr float + hypot(float __x, float __y) + { return __builtin_hypotf(__x, __y); } + + constexpr long double + hypot(long double __x, long double __y) + { return __builtin_hypotl(__x, __y); } + + + + constexpr int + ilogb(float __x) + { return __builtin_ilogbf(__x); } + + constexpr int + ilogb(long double __x) + { return __builtin_ilogbl(__x); } + + + + template + constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + ilogb(_Tp __x) + { return __builtin_ilogb(__x); } + + + + constexpr float + lgamma(float __x) + { return __builtin_lgammaf(__x); } + + constexpr long double + lgamma(long double __x) + { return __builtin_lgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + lgamma(_Tp __x) + { return __builtin_lgamma(__x); } + + + + constexpr long long + llrint(float __x) + { return __builtin_llrintf(__x); } + + constexpr long long + llrint(long double __x) + { return __builtin_llrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llrint(_Tp __x) + { return __builtin_llrint(__x); } + + + + constexpr long long + llround(float __x) + { return __builtin_llroundf(__x); } + + constexpr long long + llround(long double __x) + { return __builtin_llroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llround(_Tp __x) + { return __builtin_llround(__x); } + + + + constexpr float + log1p(float __x) + { return __builtin_log1pf(__x); } + + constexpr long double + log1p(long double __x) + { return __builtin_log1pl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log1p(_Tp __x) + { return __builtin_log1p(__x); } + + + + + constexpr float + log2(float __x) + { return __builtin_log2f(__x); } + + constexpr long double + log2(long double __x) + { return __builtin_log2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log2(_Tp __x) + { return __builtin_log2(__x); } + + + + constexpr float + logb(float __x) + { return __builtin_logbf(__x); } + + constexpr long double + logb(long double __x) + { return __builtin_logbl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + logb(_Tp __x) + { return __builtin_logb(__x); } + + + + constexpr long + lrint(float __x) + { return __builtin_lrintf(__x); } + + constexpr long + lrint(long double __x) + { return __builtin_lrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lrint(_Tp __x) + { return __builtin_lrint(__x); } + + + + constexpr long + lround(float __x) + { return __builtin_lroundf(__x); } + + constexpr long + lround(long double __x) + { return __builtin_lroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lround(_Tp __x) + { return __builtin_lround(__x); } + + + + constexpr float + nearbyint(float __x) + { return __builtin_nearbyintf(__x); } + + constexpr long double + nearbyint(long double __x) + { return __builtin_nearbyintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nearbyint(_Tp __x) + { return __builtin_nearbyint(__x); } + + + + constexpr float + nextafter(float __x, float __y) + { return __builtin_nextafterf(__x, __y); } + + constexpr long double + nextafter(long double __x, long double __y) + { return __builtin_nextafterl(__x, __y); } + + + + constexpr float + nexttoward(float __x, long double __y) + { return __builtin_nexttowardf(__x, __y); } + + constexpr long double + nexttoward(long double __x, long double __y) + { return __builtin_nexttowardl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nexttoward(_Tp __x, long double __y) + { return __builtin_nexttoward(__x, __y); } + + + + constexpr float + remainder(float __x, float __y) + { return __builtin_remainderf(__x, __y); } + + constexpr long double + remainder(long double __x, long double __y) + { return __builtin_remainderl(__x, __y); } + + + + inline float + remquo(float __x, float __y, int* __pquo) + { return __builtin_remquof(__x, __y, __pquo); } + + inline long double + remquo(long double __x, long double __y, int* __pquo) + { return __builtin_remquol(__x, __y, __pquo); } + + + + constexpr float + rint(float __x) + { return __builtin_rintf(__x); } + + constexpr long double + rint(long double __x) + { return __builtin_rintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + rint(_Tp __x) + { return __builtin_rint(__x); } + + + + constexpr float + round(float __x) + { return __builtin_roundf(__x); } + + constexpr long double + round(long double __x) + { return __builtin_roundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + round(_Tp __x) + { return __builtin_round(__x); } + + + + constexpr float + scalbln(float __x, long __ex) + { return __builtin_scalblnf(__x, __ex); } + + constexpr long double + scalbln(long double __x, long __ex) + { return __builtin_scalblnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbln(_Tp __x, long __ex) + { return __builtin_scalbln(__x, __ex); } + + + + constexpr float + scalbn(float __x, int __ex) + { return __builtin_scalbnf(__x, __ex); } + + constexpr long double + scalbn(long double __x, int __ex) + { return __builtin_scalbnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbn(_Tp __x, int __ex) + { return __builtin_scalbn(__x, __ex); } + + + + constexpr float + tgamma(float __x) + { return __builtin_tgammaf(__x); } + + constexpr long double + tgamma(long double __x) + { return __builtin_tgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tgamma(_Tp __x) + { return __builtin_tgamma(__x); } + + + + constexpr float + trunc(float __x) + { return __builtin_truncf(__x); } + + constexpr long double + trunc(long double __x) + { return __builtin_truncl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + trunc(_Tp __x) + { return __builtin_trunc(__x); } +# 3682 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + copysign(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return copysign(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fdim(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fdim(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmax(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmax(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmin(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmin(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + hypot(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return hypot(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + nextafter(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return nextafter(__type(__x), __type(__y)); + } + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remainder(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remainder(__type(__x), __type(__y)); + } + + template + inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remquo(_Tp __x, _Up __y, int* __pquo) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remquo(__type(__x), __type(__y), __pquo); + } + + template + constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type + fma(_Tp __x, _Up __y, _Vp __z) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; + return fma(__type(__x), __type(__y), __type(__z)); + } + + + + + + + + template + inline _Tp + __hypot3(_Tp __x, _Tp __y, _Tp __z) + { + __x = std::abs(__x); + __y = std::abs(__y); + __z = std::abs(__z); + if (_Tp __a = __x < __y ? __y < __z ? __z : __y : __x < __z ? __z : __x) + return __a * std::sqrt((__x / __a) * (__x / __a) + + (__y / __a) * (__y / __a) + + (__z / __a) * (__z / __a)); + else + return {}; + } + + inline float + hypot(float __x, float __y, float __z) + { return std::__hypot3(__x, __y, __z); } + + inline double + hypot(double __x, double __y, double __z) + { return std::__hypot3(__x, __y, __z); } + + inline long double + hypot(long double __x, long double __y, long double __z) + { return std::__hypot3(__x, __y, __z); } + + template + __gnu_cxx::__promoted_t<_Tp, _Up, _Vp> + hypot(_Tp __x, _Up __y, _Vp __z) + { + using __type = __gnu_cxx::__promoted_t<_Tp, _Up, _Vp>; + return std::__hypot3<__type>(__x, __y, __z); + } +# 3902 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +} + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 1 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 1 3 +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/exception_defines.h" 1 3 +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + void + __throw_bad_exception(void) __attribute__((__noreturn__)); + + + void + __throw_bad_alloc(void) __attribute__((__noreturn__)); + + void + __throw_bad_array_new_length(void) __attribute__((__noreturn__)); + + + void + __throw_bad_cast(void) __attribute__((__noreturn__,__cold__)); + + void + __throw_bad_typeid(void) __attribute__((__noreturn__,__cold__)); + + + void + __throw_logic_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_domain_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_invalid_argument(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_length_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_out_of_range(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__,__cold__)) + __attribute__((__format__(__gnu_printf__, 1, 2))); + + void + __throw_runtime_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_range_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_overflow_error(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_underflow_error(const char*) __attribute__((__noreturn__,__cold__)); + + + void + __throw_ios_failure(const char*) __attribute__((__noreturn__,__cold__)); + + void + __throw_ios_failure(const char*, int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_system_error(int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_future_error(int) __attribute__((__noreturn__,__cold__)); + + + void + __throw_bad_function_call() __attribute__((__noreturn__,__cold__)); +# 140 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 + +} +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + struct __is_integer_nonstrict + : public std::__is_integer<_Tp> + { + using std::__is_integer<_Tp>::__value; + + + enum { __width = __value ? sizeof(_Tp) * 8 : 0 }; + }; + + template + struct __numeric_traits_integer + { + + static_assert(__is_integer_nonstrict<_Value>::__value, + "invalid specialization"); + + + + + static const bool __is_signed = (_Value)(-1) < 0; + static const int __digits + = __is_integer_nonstrict<_Value>::__width - __is_signed; + + + static const _Value __max = __is_signed + ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1) + : ~(_Value)0; + static const _Value __min = __is_signed ? -__max - 1 : (_Value)0; + }; + + template + const _Value __numeric_traits_integer<_Value>::__min; + + template + const _Value __numeric_traits_integer<_Value>::__max; + + template + const bool __numeric_traits_integer<_Value>::__is_signed; + + template + const int __numeric_traits_integer<_Value>::__digits; +# 137 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + using __int_traits = __numeric_traits_integer<_Tp>; +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + template + struct __numeric_traits_floating + { + + static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); + + + static const bool __is_signed = true; + static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); + static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); + }; + + template + const int __numeric_traits_floating<_Value>::__max_digits10; + + template + const bool __numeric_traits_floating<_Value>::__is_signed; + + template + const int __numeric_traits_floating<_Value>::__digits10; + + template + const int __numeric_traits_floating<_Value>::__max_exponent10; + + + + + + + template + struct __numeric_traits + : public __numeric_traits_integer<_Value> + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; +# 238 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 + +} +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 1 3 +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + class reference_wrapper; +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + using value_type = _Tp; + using type = integral_constant<_Tp, __v>; + constexpr operator value_type() const noexcept { return value; } + + + constexpr value_type operator()() const noexcept { return value; } + + }; +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + using __bool_constant = integral_constant; + + + + using true_type = __bool_constant; + + + using false_type = __bool_constant; + + + + + template + using bool_constant = __bool_constant<__v>; + + + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { using type = _Tp; }; + + + template + using __enable_if_t = typename enable_if<_Cond, _Tp>::type; + + template + struct __conditional + { + template + using type = _Tp; + }; + + template<> + struct __conditional + { + template + using type = _Up; + }; + + + template + using __conditional_t + = typename __conditional<_Cond>::template type<_If, _Else>; + + + template + struct __type_identity + { using type = _Type; }; + + template + using __type_identity_t = typename __type_identity<_Tp>::type; + + namespace __detail + { + + template + using __first_t = _Tp; + + + template + auto __or_fn(int) -> __first_t...>; + + template + auto __or_fn(...) -> true_type; + + template + auto __and_fn(int) -> __first_t...>; + + template + auto __and_fn(...) -> false_type; + } + + + + + template + struct __or_ + : decltype(__detail::__or_fn<_Bn...>(0)) + { }; + + template + struct __and_ + : decltype(__detail::__and_fn<_Bn...>(0)) + { }; + + template + struct __not_ + : __bool_constant + { }; + + + + + + template + inline constexpr bool __or_v = __or_<_Bn...>::value; + template + inline constexpr bool __and_v = __and_<_Bn...>::value; + + namespace __detail + { + template + struct __disjunction_impl + { using type = _B1; }; + + template + struct __disjunction_impl<__enable_if_t, _B1, _B2, _Bn...> + { using type = typename __disjunction_impl::type; }; + + template + struct __conjunction_impl + { using type = _B1; }; + + template + struct __conjunction_impl<__enable_if_t, _B1, _B2, _Bn...> + { using type = typename __conjunction_impl::type; }; + } + + + template + struct conjunction + : __detail::__conjunction_impl::type + { }; + + template<> + struct conjunction<> + : true_type + { }; + + template + struct disjunction + : __detail::__disjunction_impl::type + { }; + + template<> + struct disjunction<> + : false_type + { }; + + template + struct negation + : __not_<_Pp>::type + { }; + + + + + template + inline constexpr bool conjunction_v = conjunction<_Bn...>::value; + + template + inline constexpr bool disjunction_v = disjunction<_Bn...>::value; + + template + inline constexpr bool negation_v = negation<_Pp>::value; + + + + + + template + struct is_reference; + template + struct is_function; + template + struct is_void; + template + struct remove_cv; + template + struct is_const; + + + template + struct __is_array_unknown_bounds; + + + + + template + constexpr true_type __is_complete_or_unbounded(__type_identity<_Tp>) + { return {}; } + + template + constexpr typename __or_< + is_reference<_NestedType>, + is_function<_NestedType>, + is_void<_NestedType>, + __is_array_unknown_bounds<_NestedType> + >::type __is_complete_or_unbounded(_TypeIdentity) + { return {}; } + + + template + using __remove_cv_t = typename remove_cv<_Tp>::type; + + + + + + template + struct is_void + : public false_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + template<> + struct is_void + : public true_type { }; + + + template + struct __is_integral_helper + : public false_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + + + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + __extension__ + template<> + struct __is_integral_helper<__int128> + : public true_type { }; + + __extension__ + template<> + struct __is_integral_helper + : public true_type { }; +# 460 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_integral + : public __is_integral_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct __is_floating_point_helper + : public false_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; +# 513 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __is_floating_point_helper<__float128> + : public true_type { }; + + + + + template + struct is_floating_point + : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type + { }; + + + + template + struct is_array + : public __bool_constant<__is_array(_Tp)> + { }; +# 545 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __is_pointer_helper + : public false_type { }; + + template + struct __is_pointer_helper<_Tp*> + : public true_type { }; + + + template + struct is_pointer + : public __is_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct is_lvalue_reference + : public false_type { }; + + template + struct is_lvalue_reference<_Tp&> + : public true_type { }; + + + template + struct is_rvalue_reference + : public false_type { }; + + template + struct is_rvalue_reference<_Tp&&> + : public true_type { }; + + + + template + struct is_member_object_pointer + : public __bool_constant<__is_member_object_pointer(_Tp)> + { }; +# 601 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_member_function_pointer + : public __bool_constant<__is_member_function_pointer(_Tp)> + { }; +# 622 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_enum + : public __bool_constant<__is_enum(_Tp)> + { }; + + + template + struct is_union + : public __bool_constant<__is_union(_Tp)> + { }; + + + template + struct is_class + : public __bool_constant<__is_class(_Tp)> + { }; + + + + template + struct is_function + : public __bool_constant<__is_function(_Tp)> + { }; +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_null_pointer + : public false_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + template<> + struct is_null_pointer + : public true_type { }; + + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); + + + + + + + template + struct is_reference + : public __bool_constant<__is_reference(_Tp)> + { }; +# 715 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_arithmetic + : public __or_, is_floating_point<_Tp>>::type + { }; + + + template + struct is_fundamental + : public __or_, is_void<_Tp>, + is_null_pointer<_Tp>>::type + { }; + + + + template + struct is_object + : public __bool_constant<__is_object(_Tp)> + { }; +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_member_pointer; + + + template + struct is_scalar + : public __or_, is_enum<_Tp>, is_pointer<_Tp>, + is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type + { }; + + + template + struct is_compound + : public __bool_constant::value> { }; + + + + template + struct is_member_pointer + : public __bool_constant<__is_member_pointer(_Tp)> + { }; +# 779 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_same; + + + template + using __is_one_of = __or_...>; + + + __extension__ + template + using __is_signed_integer = __is_one_of<__remove_cv_t<_Tp>, + signed char, signed short, signed int, signed long, + signed long long + + , signed __int128 +# 804 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + >; + + + __extension__ + template + using __is_unsigned_integer = __is_one_of<__remove_cv_t<_Tp>, + unsigned char, unsigned short, unsigned int, unsigned long, + unsigned long long + + , unsigned __int128 +# 824 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + >; + + + template + using __is_standard_integer + = __or_<__is_signed_integer<_Tp>, __is_unsigned_integer<_Tp>>; + + + template using __void_t = void; + + + + + + template + struct is_const + : public false_type { }; + + template + struct is_const<_Tp const> + : public true_type { }; + + + template + struct is_volatile + : public false_type { }; + + template + struct is_volatile<_Tp volatile> + : public true_type { }; + + + template + struct is_trivial + : public __bool_constant<__is_trivial(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_copyable + : public __bool_constant<__is_trivially_copyable(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_standard_layout + : public __bool_constant<__is_standard_layout(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + + template + struct + + is_pod + : public __bool_constant<__is_pod(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + template + struct + [[__deprecated__]] + is_literal_type + : public __bool_constant<__is_literal_type(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_empty + : public __bool_constant<__is_empty(_Tp)> + { }; + + + template + struct is_polymorphic + : public __bool_constant<__is_polymorphic(_Tp)> + { }; + + + + + template + struct is_final + : public __bool_constant<__is_final(_Tp)> + { }; + + + + template + struct is_abstract + : public __bool_constant<__is_abstract(_Tp)> + { }; + + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public __bool_constant<_Tp(-1) < _Tp(0)> + { }; + + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>>::type + { }; + + + template + _Up + __declval(int); + + template + _Tp + __declval(long); + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)); + + template + struct remove_all_extents; + + + template + struct __is_array_known_bounds + : public false_type + { }; + + template + struct __is_array_known_bounds<_Tp[_Size]> + : public true_type + { }; + + template + struct __is_array_unknown_bounds + : public false_type + { }; + + template + struct __is_array_unknown_bounds<_Tp[]> + : public true_type + { }; +# 1006 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + struct __do_is_destructible_impl + { + template().~_Tp())> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_destructible_impl + : public __do_is_destructible_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_destructible_safe; + + template + struct __is_destructible_safe<_Tp, false, false> + : public __is_destructible_impl::type>::type + { }; + + template + struct __is_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_destructible_safe<_Tp, false, true> + : public true_type { }; + + + + template + struct is_destructible + : public __is_destructible_safe<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + + + struct __do_is_nt_destructible_impl + { + template + static __bool_constant().~_Tp())> + __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_nt_destructible_impl + : public __do_is_nt_destructible_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_nt_destructible_safe; + + template + struct __is_nt_destructible_safe<_Tp, false, false> + : public __is_nt_destructible_impl::type>::type + { }; + + template + struct __is_nt_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_nt_destructible_safe<_Tp, false, true> + : public true_type { }; + + + + template + struct is_nothrow_destructible + : public __is_nt_destructible_safe<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_constructible_impl + = __bool_constant<__is_constructible(_Tp, _Args...)>; + + + + template + struct is_constructible + : public __is_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_default_constructible + : public __is_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct __add_lvalue_reference_helper + { using type = _Tp; }; + + template + struct __add_lvalue_reference_helper<_Tp, __void_t<_Tp&>> + { using type = _Tp&; }; + + template + using __add_lval_ref_t = typename __add_lvalue_reference_helper<_Tp>::type; + + + + template + struct is_copy_constructible + : public __is_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct __add_rvalue_reference_helper + { using type = _Tp; }; + + template + struct __add_rvalue_reference_helper<_Tp, __void_t<_Tp&&>> + { using type = _Tp&&; }; + + template + using __add_rval_ref_t = typename __add_rvalue_reference_helper<_Tp>::type; + + + + template + struct is_move_constructible + : public __is_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_nothrow_constructible_impl + = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; + + + + template + struct is_nothrow_constructible + : public __is_nothrow_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_default_constructible + : public __is_nothrow_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_assignable_impl = __bool_constant<__is_assignable(_Tp, _Up)>; + + + + template + struct is_assignable + : public __is_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_copy_assignable + : public __is_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_move_assignable + : public __is_assignable_impl<__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_nothrow_assignable_impl + = __bool_constant<__is_nothrow_assignable(_Tp, _Up)>; + + + + template + struct is_nothrow_assignable + : public __is_nothrow_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_copy_assignable + : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_move_assignable + : public __is_nothrow_assignable_impl<__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_trivially_constructible_impl + = __bool_constant<__is_trivially_constructible(_Tp, _Args...)>; + + + + template + struct is_trivially_constructible + : public __is_trivially_constructible_impl<_Tp, _Args...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_default_constructible + : public __is_trivially_constructible_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; +# 1319 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + struct __do_is_implicitly_default_constructible_impl + { + template + static void __helper(const _Tp&); + + template + static true_type __test(const _Tp&, + decltype(__helper({}))* = 0); + + static false_type __test(...); + }; + + template + struct __is_implicitly_default_constructible_impl + : public __do_is_implicitly_default_constructible_impl + { + using type = decltype(__test(declval<_Tp>())); + }; + + template + struct __is_implicitly_default_constructible_safe + : public __is_implicitly_default_constructible_impl<_Tp>::type + { }; + + template + struct __is_implicitly_default_constructible + : public __and_<__is_constructible_impl<_Tp>, + __is_implicitly_default_constructible_safe<_Tp>>::type + { }; + + + + template + struct is_trivially_copy_constructible + : public __is_trivially_constructible_impl<_Tp, __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_move_constructible + : public __is_trivially_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + using __is_trivially_assignable_impl + = __bool_constant<__is_trivially_assignable(_Tp, _Up)>; + + + + template + struct is_trivially_assignable + : public __is_trivially_assignable_impl<_Tp, _Up> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_copy_assignable + : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, + __add_lval_ref_t> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_move_assignable + : public __is_trivially_assignable_impl<__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_trivially_destructible + : public __and_<__is_destructible_safe<_Tp>, + __bool_constant<__has_trivial_destructor(_Tp)>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + struct has_virtual_destructor + : public __bool_constant<__has_virtual_destructor(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + + + template + struct alignment_of + : public integral_constant + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct rank + : public integral_constant { }; + + template + struct rank<_Tp[_Size]> + : public integral_constant::value> { }; + + template + struct rank<_Tp[]> + : public integral_constant::value> { }; + + + template + struct extent + : public integral_constant { }; + + template + struct extent<_Tp[_Size], 0> + : public integral_constant { }; + + template + struct extent<_Tp[_Size], _Uint> + : public extent<_Tp, _Uint - 1>::type { }; + + template + struct extent<_Tp[], 0> + : public integral_constant { }; + + template + struct extent<_Tp[], _Uint> + : public extent<_Tp, _Uint - 1>::type { }; + + + + + + + template + struct is_same + : public __bool_constant<__is_same(_Tp, _Up)> + { }; +# 1491 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct is_base_of + : public __bool_constant<__is_base_of(_Base, _Derived)> + { }; + + + template + struct is_convertible + : public __bool_constant<__is_convertible(_From, _To)> + { }; +# 1540 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + using __is_array_convertible + = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; +# 1600 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++14-extensions" + template + struct __is_nothrow_new_constructible_impl + : __bool_constant< + noexcept(::new(std::declval()) _Tp(std::declval<_Args>()...)) + > + { }; + + template + inline constexpr bool __is_nothrow_new_constructible + = __and_, + __is_nothrow_new_constructible_impl<_Tp, _Args...>>::value; +#pragma GCC diagnostic pop + + + + + template + struct remove_const + { using type = _Tp; }; + + template + struct remove_const<_Tp const> + { using type = _Tp; }; + + + template + struct remove_volatile + { using type = _Tp; }; + + template + struct remove_volatile<_Tp volatile> + { using type = _Tp; }; + + + + template + struct remove_cv + { using type = __remove_cv(_Tp); }; +# 1659 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct add_const + { using type = _Tp const; }; + + + template + struct add_volatile + { using type = _Tp volatile; }; + + + template + struct add_cv + { using type = _Tp const volatile; }; + + + + template + using remove_const_t = typename remove_const<_Tp>::type; + + + template + using remove_volatile_t = typename remove_volatile<_Tp>::type; + + + template + using remove_cv_t = typename remove_cv<_Tp>::type; + + + template + using add_const_t = typename add_const<_Tp>::type; + + + template + using add_volatile_t = typename add_volatile<_Tp>::type; + + + template + using add_cv_t = typename add_cv<_Tp>::type; + + + + + + + template + struct remove_reference + { using type = __remove_reference(_Tp); }; +# 1721 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct add_lvalue_reference + { using type = __add_lval_ref_t<_Tp>; }; + + + template + struct add_rvalue_reference + { using type = __add_rval_ref_t<_Tp>; }; + + + + template + using remove_reference_t = typename remove_reference<_Tp>::type; + + + template + using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; + + + template + using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; + + + + + + + + template + struct __cv_selector; + + template + struct __cv_selector<_Unqualified, false, false> + { using __type = _Unqualified; }; + + template + struct __cv_selector<_Unqualified, false, true> + { using __type = volatile _Unqualified; }; + + template + struct __cv_selector<_Unqualified, true, false> + { using __type = const _Unqualified; }; + + template + struct __cv_selector<_Unqualified, true, true> + { using __type = const volatile _Unqualified; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + using __match = __cv_selector<_Unqualified, _IsConst, _IsVol>; + + public: + using __type = typename __match::__type; + }; + + + template + struct __make_unsigned + { using __type = _Tp; }; + + template<> + struct __make_unsigned + { using __type = unsigned char; }; + + template<> + struct __make_unsigned + { using __type = unsigned char; }; + + template<> + struct __make_unsigned + { using __type = unsigned short; }; + + template<> + struct __make_unsigned + { using __type = unsigned int; }; + + template<> + struct __make_unsigned + { using __type = unsigned long; }; + + template<> + struct __make_unsigned + { using __type = unsigned long long; }; + + + __extension__ + template<> + struct __make_unsigned<__int128> + { using __type = unsigned __int128; }; +# 1834 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, + bool _IsEnum = __is_enum(_Tp)> + class __make_unsigned_selector; + + template + class __make_unsigned_selector<_Tp, true, false> + { + using __unsigned_type + = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + class __make_unsigned_selector_base + { + protected: + template struct _List { }; + + template + struct _List<_Tp, _Up...> : _List<_Up...> + { static constexpr size_t __size = sizeof(_Tp); }; + + template + struct __select; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, true> + { using __type = _Uint; }; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, false> + : __select<_Sz, _List<_UInts...>> + { }; + }; + + + template + class __make_unsigned_selector<_Tp, false, true> + : __make_unsigned_selector_base + { + + using _UInts = _List; + + using __unsigned_type = typename __select::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + + + + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; +# 1908 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + + + + + + template + struct make_unsigned + { using type = typename __make_unsigned_selector<_Tp>::__type; }; + + + template<> struct make_unsigned; + template<> struct make_unsigned; + template<> struct make_unsigned; + template<> struct make_unsigned; + + + + + template + struct __make_signed + { using __type = _Tp; }; + + template<> + struct __make_signed + { using __type = signed char; }; + + template<> + struct __make_signed + { using __type = signed char; }; + + template<> + struct __make_signed + { using __type = signed short; }; + + template<> + struct __make_signed + { using __type = signed int; }; + + template<> + struct __make_signed + { using __type = signed long; }; + + template<> + struct __make_signed + { using __type = signed long long; }; + + + __extension__ + template<> + struct __make_signed + { using __type = __int128; }; +# 1994 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, + bool _IsEnum = __is_enum(_Tp)> + class __make_signed_selector; + + template + class __make_signed_selector<_Tp, true, false> + { + using __signed_type + = typename __make_signed<__remove_cv_t<_Tp>>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; + }; + + + template + class __make_signed_selector<_Tp, false, true> + { + using __unsigned_type = typename __make_unsigned_selector<_Tp>::__type; + + public: + using __type = typename __make_signed_selector<__unsigned_type>::__type; + }; + + + + + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; +# 2040 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + + + + + + template + struct make_signed + { using type = typename __make_signed_selector<_Tp>::__type; }; + + + template<> struct make_signed; + template<> struct make_signed; + template<> struct make_signed; + template<> struct make_signed; + + + + template + using make_signed_t = typename make_signed<_Tp>::type; + + + template + using make_unsigned_t = typename make_unsigned<_Tp>::type; + + + + + + template + struct remove_extent + { using type = _Tp; }; + + template + struct remove_extent<_Tp[_Size]> + { using type = _Tp; }; + + template + struct remove_extent<_Tp[]> + { using type = _Tp; }; + + + template + struct remove_all_extents + { using type = _Tp; }; + + template + struct remove_all_extents<_Tp[_Size]> + { using type = typename remove_all_extents<_Tp>::type; }; + + template + struct remove_all_extents<_Tp[]> + { using type = typename remove_all_extents<_Tp>::type; }; + + + + template + using remove_extent_t = typename remove_extent<_Tp>::type; + + + template + using remove_all_extents_t = typename remove_all_extents<_Tp>::type; + + + + + + + template + struct remove_pointer + { using type = __remove_pointer(_Tp); }; +# 2139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __add_pointer_helper + { using type = _Tp; }; + + template + struct __add_pointer_helper<_Tp, __void_t<_Tp*>> + { using type = _Tp*; }; + + + template + struct add_pointer + : public __add_pointer_helper<_Tp> + { }; + + template + struct add_pointer<_Tp&> + { using type = _Tp*; }; + + template + struct add_pointer<_Tp&&> + { using type = _Tp*; }; + + + + template + using remove_pointer_t = typename remove_pointer<_Tp>::type; + + + template + using add_pointer_t = typename add_pointer<_Tp>::type; + + + template + struct __aligned_storage_msa + { + union __type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__)) { } __align; + }; + }; +# 2194 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::__type)> + struct + + aligned_storage + { + union type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__((_Align)))) { } __align; + }; + }; + + template + struct __strictest_alignment + { + static const size_t _S_alignment = 0; + static const size_t _S_size = 0; + }; + + template + struct __strictest_alignment<_Tp, _Types...> + { + static const size_t _S_alignment = + alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment + ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; + static const size_t _S_size = + sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size + ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 2240 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct + + aligned_union + { + private: + static_assert(sizeof...(_Types) != 0, "At least one type is required"); + + using __strictest = __strictest_alignment<_Types...>; + static const size_t _S_len = _Len > __strictest::_S_size + ? _Len : __strictest::_S_size; + public: + + static const size_t alignment_value = __strictest::_S_alignment; + + using type = typename aligned_storage<_S_len, alignment_value>::type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; +#pragma GCC diagnostic pop + + + + + + template + struct __decay_selector + : __conditional_t::value, + remove_cv<_Up>, + add_pointer<_Up>> + { }; + + template + struct __decay_selector<_Up[_Nm]> + { using type = _Up*; }; + + template + struct __decay_selector<_Up[]> + { using type = _Up*; }; + + + + + template + struct decay + { using type = typename __decay_selector<_Tp>::type; }; + + template + struct decay<_Tp&> + { using type = typename __decay_selector<_Tp>::type; }; + + template + struct decay<_Tp&&> + { using type = typename __decay_selector<_Tp>::type; }; + + + + + template + struct __strip_reference_wrapper + { + using __type = _Tp; + }; + + template + struct __strip_reference_wrapper > + { + using __type = _Tp&; + }; + + + template + using __decay_t = typename decay<_Tp>::type; + + template + using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; + + + + + + template + using _Require = __enable_if_t<__and_<_Cond...>::value>; + + + template + using __remove_cvref_t + = typename remove_cv::type>::type; + + + + + template + struct conditional + { using type = _Iftrue; }; + + + template + struct conditional + { using type = _Iffalse; }; + + + template + struct common_type; +# 2355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __success_type + { using type = _Tp; }; + + struct __failure_type + { }; + + struct __do_common_type_impl + { + template + using __cond_t + = decltype(true ? std::declval<_Tp>() : std::declval<_Up>()); + + + + template + static __success_type<__decay_t<__cond_t<_Tp, _Up>>> + _S_test(int); +# 2382 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + static __failure_type + _S_test_2(...); + + template + static decltype(_S_test_2<_Tp, _Up>(0)) + _S_test(...); + }; + + + template<> + struct common_type<> + { }; + + + template + struct common_type<_Tp0> + : public common_type<_Tp0, _Tp0> + { }; + + + template, typename _Dp2 = __decay_t<_Tp2>> + struct __common_type_impl + { + + + using type = common_type<_Dp1, _Dp2>; + }; + + template + struct __common_type_impl<_Tp1, _Tp2, _Tp1, _Tp2> + : private __do_common_type_impl + { + + + using type = decltype(_S_test<_Tp1, _Tp2>(0)); + }; + + + template + struct common_type<_Tp1, _Tp2> + : public __common_type_impl<_Tp1, _Tp2>::type + { }; + + template + struct __common_type_pack + { }; + + template + struct __common_type_fold; + + + template + struct common_type<_Tp1, _Tp2, _Rp...> + : public __common_type_fold, + __common_type_pack<_Rp...>> + { }; + + + + + template + struct __common_type_fold<_CTp, __common_type_pack<_Rp...>, + __void_t> + : public common_type + { }; + + + template + struct __common_type_fold<_CTp, _Rp, void> + { }; + + template + struct __underlying_type_impl + { + using type = __underlying_type(_Tp); + }; + + template + struct __underlying_type_impl<_Tp, false> + { }; + + + + template + struct underlying_type + : public __underlying_type_impl<_Tp> + { }; + + + template + struct __declval_protector + { + static const bool __stop = false; + }; + + + + + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)) + { + static_assert(__declval_protector<_Tp>::__stop, + "declval() must not be used!"); + return __declval<_Tp>(0); + } + + + template + struct result_of; + + + + + struct __invoke_memfun_ref { }; + struct __invoke_memfun_deref { }; + struct __invoke_memobj_ref { }; + struct __invoke_memobj_deref { }; + struct __invoke_other { }; + + + template + struct __result_of_success : __success_type<_Tp> + { using __invoke_type = _Tag; }; + + + struct __result_of_memfun_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_ref + : private __result_of_memfun_ref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); + }; + + + struct __result_of_memfun_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_deref + : private __result_of_memfun_deref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg, _Args...>(0)); + }; + + + struct __result_of_memobj_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>() + ), __invoke_memobj_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_ref + : private __result_of_memobj_ref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg>(0)); + }; + + + struct __result_of_memobj_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>() + ), __invoke_memobj_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_deref + : private __result_of_memobj_deref_impl + { + using type = decltype(_S_test<_MemPtr, _Arg>(0)); + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + using _Argval = __remove_cvref_t<_Arg>; + using _MemPtr = _Res _Class::*; + using type = typename __conditional_t<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + using _Argval = typename remove_reference<_Arg>::type; + using _MemPtr = _Res _Class::*; + using type = typename __conditional_t::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type; + }; + + + + + + + template> + struct __inv_unwrap + { + using type = _Tp; + }; + + template + struct __inv_unwrap<_Tp, reference_wrapper<_Up>> + { + using type = _Up&; + }; + + template + struct __result_of_impl + { + using type = __failure_type; + }; + + template + struct __result_of_impl + : public __result_of_memobj<__decay_t<_MemPtr>, + typename __inv_unwrap<_Arg>::type> + { }; + + template + struct __result_of_impl + : public __result_of_memfun<__decay_t<_MemPtr>, + typename __inv_unwrap<_Arg>::type, _Args...> + { }; + + + struct __result_of_other_impl + { + template + static __result_of_success()(std::declval<_Args>()...) + ), __invoke_other> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_impl + : private __result_of_other_impl + { + using type = decltype(_S_test<_Functor, _ArgTypes...>(0)); + }; + + + template + struct __invoke_result + : public __result_of_impl< + is_member_object_pointer< + typename remove_reference<_Functor>::type + >::value, + is_member_function_pointer< + typename remove_reference<_Functor>::type + >::value, + _Functor, _ArgTypes... + >::type + { }; + + + template + using __invoke_result_t = typename __invoke_result<_Fn, _Args...>::type; + + + template + struct result_of<_Functor(_ArgTypes...)> + : public __invoke_result<_Functor, _ArgTypes...> + { } __attribute__ ((__deprecated__ ("use '" "std::invoke_result" "' instead"))); + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + + template::__type)> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + + template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; +#pragma GCC diagnostic pop + + + template + using decay_t = typename decay<_Tp>::type; + + + template + using enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template + using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; + + + template + using common_type_t = typename common_type<_Tp...>::type; + + + template + using underlying_type_t = typename underlying_type<_Tp>::type; + + + template + using result_of_t = typename result_of<_Tp>::type; + + + + + template using void_t = void; +# 2759 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template class _Op, typename... _Args> + struct __detector + { + using type = _Default; + using __is_detected = false_type; + }; + + + template class _Op, + typename... _Args> + struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> + { + using type = _Op<_Args...>; + using __is_detected = true_type; + }; + + template class _Op, + typename... _Args> + using __detected_or = __detector<_Default, void, _Op, _Args...>; + + + + template class _Op, + typename... _Args> + using __detected_or_t + = typename __detected_or<_Default, _Op, _Args...>::type; +# 2801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template + struct __is_swappable; + + template + struct __is_nothrow_swappable; + + template + struct __is_tuple_like_impl : false_type + { }; + + + template + struct __is_tuple_like + : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type + { }; + + + template + + inline + _Require<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>> + swap(_Tp&, _Tp&) + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value); + + template + + inline + __enable_if_t<__is_swappable<_Tp>::value> + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value); + + + namespace __swappable_details { + using std::swap; + + struct __do_is_swappable_impl + { + template(), std::declval<_Tp&>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_impl + : public __swappable_details::__do_is_swappable_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template + struct __is_nothrow_swappable_impl + : public __swappable_details::__do_is_nothrow_swappable_impl + { + using type = decltype(__test<_Tp>(0)); + }; + + template + struct __is_swappable + : public __is_swappable_impl<_Tp>::type + { }; + + template + struct __is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { }; + + + + + + + template + struct is_swappable + : public __is_swappable_impl<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool is_swappable_v = + is_swappable<_Tp>::value; + + + template + inline constexpr bool is_nothrow_swappable_v = + is_nothrow_swappable<_Tp>::value; + + + + namespace __swappable_with_details { + using std::swap; + + struct __do_is_swappable_with_impl + { + template(), std::declval<_Up>())), + typename + = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_with_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) + && + noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_with_impl + : public __swappable_with_details::__do_is_swappable_with_impl + { + using type = decltype(__test<_Tp, _Up>(0)); + }; + + + template + struct __is_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_swappable_impl + { + using type = decltype(__test<_Tp&>(0)); + }; + + template + struct __is_nothrow_swappable_with_impl + : public __swappable_with_details::__do_is_nothrow_swappable_with_impl + { + using type = decltype(__test<_Tp, _Up>(0)); + }; + + + template + struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_nothrow_swappable_impl + { + using type = decltype(__test<_Tp&>(0)); + }; + + + + template + struct is_swappable_with + : public __is_swappable_with_impl<_Tp, _Up>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "first template argument must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), + "second template argument must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_swappable_with + : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "first template argument must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Up>{}), + "second template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool is_swappable_with_v = + is_swappable_with<_Tp, _Up>::value; + + + template + inline constexpr bool is_nothrow_swappable_with_v = + is_nothrow_swappable_with<_Tp, _Up>::value; +# 3023 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + template::value, typename = void> + struct __is_invocable_impl + : false_type + { + using __nothrow_conv = false_type; + }; + + + template + struct __is_invocable_impl<_Result, _Ret, + true, + __void_t> + : true_type + { + using __nothrow_conv = true_type; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + + template + struct __is_invocable_impl<_Result, _Ret, + false, + __void_t> + { + private: + + using _Res_t = typename _Result::type; + + + + static _Res_t _S_get() noexcept; + + + template + static void _S_conv(__type_identity_t<_Tp>) noexcept; + + + template(_S_get())), + typename = decltype(_S_conv<_Tp>(_S_get())), + + bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t) + + + + > + static __bool_constant<_Nothrow && !_Dangle> + _S_test(int); + + template + static false_type + _S_test(...); + + public: + + using type = decltype(_S_test<_Ret, true>(1)); + + + using __nothrow_conv = decltype(_S_test<_Ret>(1)); + }; +#pragma GCC diagnostic pop + + template + struct __is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { }; + + template + constexpr bool __call_is_nt(__invoke_memfun_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept((std::declval<_Up>().*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memfun_deref) + { + return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept(std::declval<_Up>().*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_deref) + { + return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_other) + { + return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); + } + + template + struct __call_is_nothrow + : __bool_constant< + std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) + > + { }; + + template + using __call_is_nothrow_ + = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; + + + template + struct __is_nothrow_invocable + : __and_<__is_invocable<_Fn, _Args...>, + __call_is_nothrow_<_Fn, _Args...>>::type + { }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + struct __nonesuchbase {}; + struct __nonesuch : private __nonesuchbase { + ~__nonesuch() = delete; + __nonesuch(__nonesuch const&) = delete; + void operator=(__nonesuch const&) = delete; + }; +#pragma GCC diagnostic pop + + + + + template + struct invoke_result + : public __invoke_result<_Functor, _ArgTypes...> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Functor>{}), + "_Functor must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + template + using invoke_result_t = typename invoke_result<_Fn, _Args...>::type; + + + template + struct is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + template + struct is_invocable_r + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), + "_Ret must be a complete class or an unbounded array"); + }; + + + template + struct is_nothrow_invocable + : __and_<__is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>, + __call_is_nothrow_<_Fn, _ArgTypes...>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + }; + + + + + + template + using __is_nt_invocable_impl + = typename __is_invocable_impl<_Result, _Ret>::__nothrow_conv; + + + + template + struct is_nothrow_invocable_r + : __and_<__is_nt_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>, + __call_is_nothrow_<_Fn, _ArgTypes...>>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Fn>{}), + "_Fn must be a complete class or an unbounded array"); + static_assert((std::__is_complete_or_unbounded( + __type_identity<_ArgTypes>{}) && ...), + "each argument type must be a complete class or an unbounded array"); + static_assert(std::__is_complete_or_unbounded(__type_identity<_Ret>{}), + "_Ret must be a complete class or an unbounded array"); + }; +# 3251 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_void_v = is_void<_Tp>::value; +template + inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value; +template + inline constexpr bool is_integral_v = is_integral<_Tp>::value; +template + inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value; + + +template + inline constexpr bool is_array_v = __is_array(_Tp); +# 3272 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_pointer_v = is_pointer<_Tp>::value; +template + inline constexpr bool is_lvalue_reference_v = false; +template + inline constexpr bool is_lvalue_reference_v<_Tp&> = true; +template + inline constexpr bool is_rvalue_reference_v = false; +template + inline constexpr bool is_rvalue_reference_v<_Tp&&> = true; + + +template + inline constexpr bool is_member_object_pointer_v = + __is_member_object_pointer(_Tp); + + + + + + + +template + inline constexpr bool is_member_function_pointer_v = + __is_member_function_pointer(_Tp); + + + + + + +template + inline constexpr bool is_enum_v = __is_enum(_Tp); +template + inline constexpr bool is_union_v = __is_union(_Tp); +template + inline constexpr bool is_class_v = __is_class(_Tp); + + + +template + inline constexpr bool is_reference_v = __is_reference(_Tp); +# 3323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value; +template + inline constexpr bool is_fundamental_v = is_fundamental<_Tp>::value; + + +template + inline constexpr bool is_object_v = __is_object(_Tp); + + + + + +template + inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; +template + inline constexpr bool is_compound_v = !is_fundamental_v<_Tp>; + + +template + inline constexpr bool is_member_pointer_v = __is_member_pointer(_Tp); + + + + + +template + inline constexpr bool is_const_v = false; +template + inline constexpr bool is_const_v = true; + + +template + inline constexpr bool is_function_v = __is_function(_Tp); +# 3366 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_volatile_v = false; +template + inline constexpr bool is_volatile_v = true; + +template + inline constexpr bool is_trivial_v = __is_trivial(_Tp); +template + inline constexpr bool is_trivially_copyable_v = __is_trivially_copyable(_Tp); +template + inline constexpr bool is_standard_layout_v = __is_standard_layout(_Tp); +template + + inline constexpr bool is_pod_v = __is_pod(_Tp); +template + [[__deprecated__]] + inline constexpr bool is_literal_type_v = __is_literal_type(_Tp); +template + inline constexpr bool is_empty_v = __is_empty(_Tp); +template + inline constexpr bool is_polymorphic_v = __is_polymorphic(_Tp); +template + inline constexpr bool is_abstract_v = __is_abstract(_Tp); +template + inline constexpr bool is_final_v = __is_final(_Tp); + +template + inline constexpr bool is_signed_v = is_signed<_Tp>::value; +template + inline constexpr bool is_unsigned_v = is_unsigned<_Tp>::value; + +template + inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...); +template + inline constexpr bool is_default_constructible_v = __is_constructible(_Tp); +template + inline constexpr bool is_copy_constructible_v + = __is_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_move_constructible_v + = __is_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_assignable_v = __is_assignable(_Tp, _Up); +template + inline constexpr bool is_copy_assignable_v + = __is_assignable(__add_lval_ref_t<_Tp>, __add_lval_ref_t); +template + inline constexpr bool is_move_assignable_v + = __is_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; + +template + inline constexpr bool is_trivially_constructible_v + = __is_trivially_constructible(_Tp, _Args...); +template + inline constexpr bool is_trivially_default_constructible_v + = __is_trivially_constructible(_Tp); +template + inline constexpr bool is_trivially_copy_constructible_v + = __is_trivially_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_trivially_move_constructible_v + = __is_trivially_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_trivially_assignable_v + = __is_trivially_assignable(_Tp, _Up); +template + inline constexpr bool is_trivially_copy_assignable_v + = __is_trivially_assignable(__add_lval_ref_t<_Tp>, + __add_lval_ref_t); +template + inline constexpr bool is_trivially_move_assignable_v + = __is_trivially_assignable(__add_lval_ref_t<_Tp>, + __add_rval_ref_t<_Tp>); +# 3461 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template + inline constexpr bool is_trivially_destructible_v = + is_trivially_destructible<_Tp>::value; + + +template + inline constexpr bool is_nothrow_constructible_v + = __is_nothrow_constructible(_Tp, _Args...); +template + inline constexpr bool is_nothrow_default_constructible_v + = __is_nothrow_constructible(_Tp); +template + inline constexpr bool is_nothrow_copy_constructible_v + = __is_nothrow_constructible(_Tp, __add_lval_ref_t); +template + inline constexpr bool is_nothrow_move_constructible_v + = __is_nothrow_constructible(_Tp, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_nothrow_assignable_v + = __is_nothrow_assignable(_Tp, _Up); +template + inline constexpr bool is_nothrow_copy_assignable_v + = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, + __add_lval_ref_t); +template + inline constexpr bool is_nothrow_move_assignable_v + = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>); + +template + inline constexpr bool is_nothrow_destructible_v = + is_nothrow_destructible<_Tp>::value; + +template + inline constexpr bool has_virtual_destructor_v + = __has_virtual_destructor(_Tp); + +template + inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; + +template + inline constexpr size_t rank_v = 0; +template + inline constexpr size_t rank_v<_Tp[_Size]> = 1 + rank_v<_Tp>; +template + inline constexpr size_t rank_v<_Tp[]> = 1 + rank_v<_Tp>; + +template + inline constexpr size_t extent_v = 0; +template + inline constexpr size_t extent_v<_Tp[_Size], 0> = _Size; +template + inline constexpr size_t extent_v<_Tp[_Size], _Idx> = extent_v<_Tp, _Idx - 1>; +template + inline constexpr size_t extent_v<_Tp[], 0> = 0; +template + inline constexpr size_t extent_v<_Tp[], _Idx> = extent_v<_Tp, _Idx - 1>; + + +template + inline constexpr bool is_same_v = __is_same(_Tp, _Up); + + + + + + +template + inline constexpr bool is_base_of_v = __is_base_of(_Base, _Derived); + +template + inline constexpr bool is_convertible_v = __is_convertible(_From, _To); + + + + +template + inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value; +template + inline constexpr bool is_nothrow_invocable_v + = is_nothrow_invocable<_Fn, _Args...>::value; +template + inline constexpr bool is_invocable_r_v + = is_invocable_r<_Ret, _Fn, _Args...>::value; +template + inline constexpr bool is_nothrow_invocable_r_v + = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value; + + + + + + + template + struct has_unique_object_representations + : bool_constant<__has_unique_object_representations( + remove_cv_t> + )> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + + template + inline constexpr bool has_unique_object_representations_v + = has_unique_object_representations<_Tp>::value; + + + + + + + template + struct is_aggregate + : bool_constant<__is_aggregate(remove_cv_t<_Tp>)> + { }; + + + + + + + template + inline constexpr bool is_aggregate_v = __is_aggregate(remove_cv_t<_Tp>); +# 4017 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 + +} +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline constexpr _Tp* + __addressof(_Tp& __r) noexcept + { return __builtin_addressof(__r); } +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type&& __t) noexcept + { + static_assert(!std::is_lvalue_reference<_Tp>::value, + "std::forward must not be used to convert an rvalue to an lvalue"); + return static_cast<_Tp&&>(__t); + } +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr typename std::remove_reference<_Tp>::type&& + move(_Tp&& __t) noexcept + { return static_cast::type&&>(__t); } + + + template + struct __move_if_noexcept_cond + : public __and_<__not_>, + is_copy_constructible<_Tp>>::type { }; +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr + __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&> + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + [[__nodiscard__]] + inline constexpr _Tp* + addressof(_Tp& __r) noexcept + { return std::__addressof(__r); } + + + + template + const _Tp* addressof(const _Tp&&) = delete; + + + template + + inline _Tp + __exchange(_Tp& __obj, _Up&& __new_val) + { + _Tp __old_val = std::move(__obj); + __obj = std::forward<_Up>(__new_val); + return __old_val; + } +# 216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 + template + + inline + + typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>>::value>::type + + + + swap(_Tp& __a, _Tp& __b) + noexcept(__and_, is_nothrow_move_assignable<_Tp>>::value) + + { + + + + + _Tp __tmp = std::move(__a); + __a = std::move(__b); + __b = std::move(__tmp); + } + + + + + template + + inline + + typename enable_if<__is_swappable<_Tp>::value>::type + + + + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value) + { + for (size_t __n = 0; __n < _Nm; ++__n) + swap(__a[__n], __b[__n]); + } + + + +} +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 1 3 +# 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct tuple_size; + + + + + + template::type, + typename = typename enable_if::value>::type, + size_t = tuple_size<_Tp>::value> + using __enable_if_has_tuple_size = _Tp; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + + template + inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; + + + + template + struct tuple_element; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + using type = const __tuple_element_t<__i, _Tp>; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + using type = volatile __tuple_element_t<__i, _Tp>; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + using type = const volatile __tuple_element_t<__i, _Tp>; + }; + + + + + + template + constexpr size_t + __find_uniq_type_in_pack() + { + constexpr size_t __sz = sizeof...(_Types); + constexpr bool __found[__sz] = { __is_same(_Tp, _Types) ... }; + size_t __n = __sz; + for (size_t __i = 0; __i < __sz; ++__i) + { + if (__found[__i]) + { + if (__n < __sz) + return __sz; + __n = __i; + } + } + return __n; + } +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + template + using tuple_element_t = typename tuple_element<__i, _Tp>::type; + + + + + template struct _Index_tuple { }; + + + template + struct _Build_index_tuple + { +# 154 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + using __type = _Index_tuple<__integer_pack(_Num)...>; + + }; + + + + + template + struct integer_sequence + { + + + + typedef _Tp value_type; + static constexpr size_t size() noexcept { return sizeof...(_Idx); } + }; + + + template + using make_integer_sequence + + + + = integer_sequence<_Tp, __integer_pack(_Num)...>; + + + + template + using index_sequence = integer_sequence; + + + template + using make_index_sequence = make_integer_sequence; + + + template + using index_sequence_for = make_index_sequence; + + + + + struct in_place_t { + explicit in_place_t() = default; + }; + + inline constexpr in_place_t in_place{}; + + template struct in_place_type_t + { + explicit in_place_type_t() = default; + }; + + template + inline constexpr in_place_type_t<_Tp> in_place_type{}; + + template struct in_place_index_t + { + explicit in_place_index_t() = default; + }; + + template + inline constexpr in_place_index_t<_Idx> in_place_index{}; + + template + inline constexpr bool __is_in_place_type_v = false; + + template + inline constexpr bool __is_in_place_type_v> = true; + + template + using __is_in_place_type = bool_constant<__is_in_place_type_v<_Tp>>; + + template + inline constexpr bool __is_in_place_index_v = false; + + template + inline constexpr bool __is_in_place_index_v> = true; + + + + + template + struct _Nth_type + { using type = __type_pack_element<_Np, _Types...>; }; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 + +} +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; + + + inline constexpr piecewise_construct_t piecewise_construct = + piecewise_construct_t(); + + + + + template + struct pair; + + template + class tuple; + + + + + + template + struct array; + + template + struct _Index_tuple; + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(pair<_Tp1, _Tp2>& __in) noexcept; + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(pair<_Tp1, _Tp2>&& __in) noexcept; + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(const pair<_Tp1, _Tp2>& __in) noexcept; + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(const pair<_Tp1, _Tp2>&& __in) noexcept; + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>& + get(tuple<_Elements...>& __t) noexcept; + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>& + get(const tuple<_Elements...>& __t) noexcept; + + template + constexpr __tuple_element_t<__i, tuple<_Elements...>>&& + get(tuple<_Elements...>&& __t) noexcept; + + template + constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& + get(const tuple<_Elements...>&& __t) noexcept; + + template + constexpr _Tp& + get(array<_Tp, _Nm>&) noexcept; + + template + constexpr _Tp&& + get(array<_Tp, _Nm>&&) noexcept; + + template + constexpr const _Tp& + get(const array<_Tp, _Nm>&) noexcept; + + template + constexpr const _Tp&& + get(const array<_Tp, _Nm>&&) noexcept; + + + + + + + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return __and_, + is_constructible<_T2, const _U2&>>::value; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return __and_, + is_convertible>::value; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return __and_, + is_constructible<_T2, _U2&&>>::value; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return __and_, + is_convertible<_U2&&, _T2>>::value; + } + }; + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return false; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return false; + } + }; +# 260 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template class __pair_base + { + + template friend struct pair; + __pair_base() = default; + ~__pair_base() = default; + __pair_base(const __pair_base&) = default; + __pair_base& operator=(const __pair_base&) = delete; + + }; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + struct pair + : public __pair_base<_T1, _T2> + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + template + + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + + void + swap(pair& __p) + noexcept(__and_<__is_nothrow_swappable<_T1>, + __is_nothrow_swappable<_T2>>::value) + { + using std::swap; + swap(first, __p.first); + swap(second, __p.second); + } +# 331 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + private: + template + + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + public: +# 719 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template , + __is_implicitly_default_constructible<_U2>> + ::value, bool>::type = true> + constexpr pair() + : first(), second() { } + + template , + is_default_constructible<_U2>, + __not_< + __and_<__is_implicitly_default_constructible<_U1>, + __is_implicitly_default_constructible<_U2>>>> + ::value, bool>::type = false> + explicit constexpr pair() + : first(), second() { } + + + + using _PCCP = _PCC; + + + + template() + && _PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + template() + && !_PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + + + template + using _PCCFP = _PCC::value + || !is_same<_T2, _U2>::value, + _T1, _T2>; + + + template::template + _ConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) + { ; } + + template::template + _ConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) + { ; } +# 803 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + private: + + + + struct __zero_as_null_pointer_constant + { + __zero_as_null_pointer_constant(int __zero_as_null_pointer_constant::*) + { } + template::value>> + __zero_as_null_pointer_constant(_Tp) = delete; + }; + + public: + + + + + template>, + is_pointer<_T2>, + is_constructible<_T1, _U1>, + __not_>, + is_convertible<_U1, _T1>>::value, + bool> = true> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + constexpr + pair(_U1&& __x, __zero_as_null_pointer_constant, ...) + : first(std::forward<_U1>(__x)), second(nullptr) + { ; } + + template>, + is_pointer<_T2>, + is_constructible<_T1, _U1>, + __not_>, + __not_>>::value, + bool> = false> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + explicit constexpr + pair(_U1&& __x, __zero_as_null_pointer_constant, ...) + : first(std::forward<_U1>(__x)), second(nullptr) + { ; } + + template, + __not_>, + is_constructible<_T2, _U2>, + __not_>, + is_convertible<_U2, _T2>>::value, + bool> = true> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + constexpr + pair(__zero_as_null_pointer_constant, _U2&& __y, ...) + : first(nullptr), second(std::forward<_U2>(__y)) + { ; } + + template, + __not_>, + is_constructible<_T2, _U2>, + __not_>, + __not_>>::value, + bool> = false> + __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer"))) + explicit constexpr + pair(__zero_as_null_pointer_constant, _U2&& __y, ...) + : first(nullptr), second(std::forward<_U2>(__y)) + { ; } + + + + template() + && _PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) + { ; } + + template() + && !_PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) + { ; } + + + template::template + _MoveConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) + { ; } + + template::template + _MoveConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) + { ; } + + + + pair& + operator=(__conditional_t<__and_, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch&> __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(__conditional_t<__and_, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch&&> __p) + noexcept(__and_, + is_nothrow_move_assignable<_T2>>::value) + { + first = std::forward(__p.first); + second = std::forward(__p.second); + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, const _U2&>>::value, + pair&>::type + operator=(const pair<_U1, _U2>& __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, _U2&&>>::value, + pair&>::type + operator=(pair<_U1, _U2>&& __p) + { + first = std::forward<_U1>(__p.first); + second = std::forward<_U2>(__p.second); + return *this; + } +# 995 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + }; + + + + + template pair(_T1, _T2) -> pair<_T1, _T2>; +# 1031 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } +# 1043 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline constexpr bool + operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first < __y.first + || (!(__y.first < __x.first) && __x.second < __y.second); } + + + template + inline constexpr bool + operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __y < __x; } + + + template + inline constexpr bool + operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__y < __x); } + + + template + inline constexpr bool + operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x < __y); } +# 1080 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + inline + + + typename enable_if<__and_<__is_swappable<_T1>, + __is_swappable<_T2>>::value>::type + + + + swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) + noexcept(noexcept(__x.swap(__y))) + { __x.swap(__y); } +# 1103 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + typename enable_if, + __is_swappable<_T2>>::value>::type + swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; +# 1129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + constexpr pair::__type, + typename __decay_and_strip<_T2>::__type> + make_pair(_T1&& __x, _T2&& __y) + { + typedef typename __decay_and_strip<_T1>::__type __ds_type1; + typedef typename __decay_and_strip<_T2>::__type __ds_type2; + typedef pair<__ds_type1, __ds_type2> __pair_type; + return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); + } +# 1152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + template + struct __is_tuple_like_impl> : true_type + { }; + + + + template + struct tuple_size> + : public integral_constant { }; + + + template + struct tuple_element<0, pair<_Tp1, _Tp2>> + { typedef _Tp1 type; }; + + + template + struct tuple_element<1, pair<_Tp1, _Tp2>> + { typedef _Tp2 type; }; + + + + template + struct tuple_element<__i, tuple<_Types...>>; + + + template + inline constexpr size_t tuple_size_v> = 2; + + template + inline constexpr size_t tuple_size_v> = 2; + + template + inline constexpr bool __is_pair = false; + + template + inline constexpr bool __is_pair> = true; + + + + template + struct __pair_get; + + template<> + struct __pair_get<0> + { + template + static constexpr _Tp1& + __get(pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr _Tp1&& + __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp1>(__pair.first); } + + template + static constexpr const _Tp1& + __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr const _Tp1&& + __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.first); } + }; + + template<> + struct __pair_get<1> + { + template + static constexpr _Tp2& + __get(pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr _Tp2&& + __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp2>(__pair.second); } + + template + static constexpr const _Tp2& + __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr const _Tp2&& + __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.second); } + }; + + + + + + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__get(__in); } + + template + constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__move_get(std::move(__in)); } + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& + get(const pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__const_get(__in); } + + template + constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& + get(const pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__const_move_get(std::move(__in)); } + + + + template + constexpr _Tp& + get(pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr const _Tp& + get(const pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr _Tp&& + get(pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr const _Tp&& + get(const pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr _Tp& + get(pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr const _Tp& + get(const pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr _Tp&& + get(pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } + + template + constexpr const _Tp&& + get(const pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } +# 1332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 + +} +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + struct input_iterator_tag { }; + + + struct output_iterator_tag { }; + + + struct forward_iterator_tag : public input_iterator_tag { }; + + + + struct bidirectional_iterator_tag : public forward_iterator_tag { }; + + + + struct random_access_iterator_tag : public bidirectional_iterator_tag { }; +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct [[__deprecated__]] iterator + { + + typedef _Category iterator_category; + + typedef _Tp value_type; + + typedef _Distance difference_type; + + typedef _Pointer pointer; + + typedef _Reference reference; + }; +# 149 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits; + + + + + template> + struct __iterator_traits { }; + + + + template + struct __iterator_traits<_Iterator, + __void_t> + { + typedef typename _Iterator::iterator_category iterator_category; + typedef typename _Iterator::value_type value_type; + typedef typename _Iterator::difference_type difference_type; + typedef typename _Iterator::pointer pointer; + typedef typename _Iterator::reference reference; + }; + + + template + struct iterator_traits + : public __iterator_traits<_Iterator> { }; +# 209 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 + template + struct iterator_traits<_Tp*> + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + + template + struct iterator_traits + { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef const _Tp* pointer; + typedef const _Tp& reference; + }; + + + + + + + template + __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_Iter>::iterator_category + __iterator_category(const _Iter&) + { return typename iterator_traits<_Iter>::iterator_category(); } + + + + + template + using __iter_category_t + = typename iterator_traits<_Iter>::iterator_category; + + template + using _RequireInputIter = + __enable_if_t, + input_iterator_tag>::value>; + + template> + struct __is_random_access_iter + : is_base_of + { + typedef is_base_of _Base; + enum { __value = _Base::value }; + }; + + + + + + + + +} +# 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/concept_check.h" 3 +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/assertions.h" 1 3 +# 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 2 3 + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template struct _List_iterator; + template struct _List_const_iterator; + + + template + inline constexpr + typename iterator_traits<_InputIterator>::difference_type + __distance(_InputIterator __first, _InputIterator __last, + input_iterator_tag) + { + + + + typename iterator_traits<_InputIterator>::difference_type __n = 0; + while (__first != __last) + { + ++__first; + ++__n; + } + return __n; + } + + template + __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_RandomAccessIterator>::difference_type + __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, + random_access_iterator_tag) + { + + + + return __last - __first; + } + + + + template + ptrdiff_t + __distance(std::_List_iterator<_Tp>, + std::_List_iterator<_Tp>, + input_iterator_tag); + + template + ptrdiff_t + __distance(std::_List_const_iterator<_Tp>, + std::_List_const_iterator<_Tp>, + input_iterator_tag); + + + + + template + void + __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; +# 144 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + template + [[__nodiscard__]] __attribute__((__always_inline__)) + inline constexpr + typename iterator_traits<_InputIterator>::difference_type + distance(_InputIterator __first, _InputIterator __last) + { + + return std::__distance(__first, __last, + std::__iterator_category(__first)); + } + + template + inline constexpr void + __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) + { + + + do { if (std::__is_constant_evaluated() && !bool(__n >= 0)) std::__glibcxx_assert_fail(); } while (false); + while (__n--) + ++__i; + } + + template + inline constexpr void + __advance(_BidirectionalIterator& __i, _Distance __n, + bidirectional_iterator_tag) + { + + + + if (__n > 0) + while (__n--) + ++__i; + else + while (__n++) + --__i; + } + + template + inline constexpr void + __advance(_RandomAccessIterator& __i, _Distance __n, + random_access_iterator_tag) + { + + + + if (__builtin_constant_p(__n) && __n == 1) + ++__i; + else if (__builtin_constant_p(__n) && __n == -1) + --__i; + else + __i += __n; + } + + + + template + void + __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; +# 217 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 + template + __attribute__((__always_inline__)) + inline constexpr void + advance(_InputIterator& __i, _Distance __n) + { + + typename iterator_traits<_InputIterator>::difference_type __d = __n; + std::__advance(__i, __d, std::__iterator_category(__i)); + } + + + + template + [[__nodiscard__]] [[__gnu__::__always_inline__]] + inline constexpr _InputIterator + next(_InputIterator __x, typename + iterator_traits<_InputIterator>::difference_type __n = 1) + { + + + std::advance(__x, __n); + return __x; + } + + template + [[__nodiscard__]] [[__gnu__::__always_inline__]] + inline constexpr _BidirectionalIterator + prev(_BidirectionalIterator __x, typename + iterator_traits<_BidirectionalIterator>::difference_type __n = 1) + { + + + + std::advance(__x, -__n); + return __x; + } + + + + +} +# 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 1 3 +# 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + class __undefined; + + + + template + struct __get_first_arg + { using type = __undefined; }; + + template class _SomeTemplate, typename _Tp, + typename... _Types> + struct __get_first_arg<_SomeTemplate<_Tp, _Types...>> + { using type = _Tp; }; + + + + template + struct __replace_first_arg + { }; + + template class _SomeTemplate, typename _Up, + typename _Tp, typename... _Types> + struct __replace_first_arg<_SomeTemplate<_Tp, _Types...>, _Up> + { using type = _SomeTemplate<_Up, _Types...>; }; + + + template + struct __ptr_traits_elem : __get_first_arg<_Ptr> + { }; + + + + + + + + template + struct __ptr_traits_elem<_Ptr, __void_t> + { using type = typename _Ptr::element_type; }; + + + template + using __ptr_traits_elem_t = typename __ptr_traits_elem<_Ptr>::type; + + + + + template::value> + struct __ptr_traits_ptr_to + { + using pointer = _Ptr; + using element_type = _Elt; + + + + + + + + static pointer + pointer_to(element_type& __r) + + + + + + { return pointer::pointer_to(__r); } + }; + + + template + struct __ptr_traits_ptr_to<_Ptr, _Elt, true> + { }; + + + template + struct __ptr_traits_ptr_to<_Tp*, _Tp, false> + { + using pointer = _Tp*; + using element_type = _Tp; + + + + + + + static pointer + pointer_to(element_type& __r) noexcept + { return std::addressof(__r); } + }; + + template + struct __ptr_traits_impl : __ptr_traits_ptr_to<_Ptr, _Elt> + { + private: + template + using __diff_t = typename _Tp::difference_type; + + template + using __rebind = __type_identity>; + + public: + + using pointer = _Ptr; + + + using element_type = _Elt; + + + using difference_type = __detected_or_t; + + + template + using rebind = typename __detected_or_t<__replace_first_arg<_Ptr, _Up>, + __rebind, _Ptr, _Up>::type; + }; + + + + template + struct __ptr_traits_impl<_Ptr, __undefined> + { }; + + + + + + + + template + struct pointer_traits : __ptr_traits_impl<_Ptr, __ptr_traits_elem_t<_Ptr>> + { }; + + + + + + + + template + struct pointer_traits<_Tp*> : __ptr_traits_ptr_to<_Tp*, _Tp> + { + + typedef _Tp* pointer; + + typedef _Tp element_type; + + typedef ptrdiff_t difference_type; + + template using rebind = _Up*; + }; + + + template + using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; + + template + constexpr _Tp* + __to_address(_Tp* __ptr) noexcept + { + static_assert(!std::is_function<_Tp>::value, "not a function pointer"); + return __ptr; + } + + + template + constexpr typename std::pointer_traits<_Ptr>::element_type* + __to_address(const _Ptr& __ptr) + { return std::__to_address(__ptr.operator->()); } +# 257 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 + +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 2 3 +# 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 128 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class reverse_iterator + : public iterator::iterator_category, + typename iterator_traits<_Iterator>::value_type, + typename iterator_traits<_Iterator>::difference_type, + typename iterator_traits<_Iterator>::pointer, + typename iterator_traits<_Iterator>::reference> + { + template + friend class reverse_iterator; +# 147 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + protected: + _Iterator current; + + typedef iterator_traits<_Iterator> __traits_type; + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::pointer pointer; + + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; +# 178 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + constexpr + reverse_iterator() + noexcept(noexcept(_Iterator())) + : current() + { } + + + + + explicit constexpr + reverse_iterator(iterator_type __x) + noexcept(noexcept(_Iterator(__x))) + : current(__x) + { } + + + + + constexpr + reverse_iterator(const reverse_iterator& __x) + noexcept(noexcept(_Iterator(__x.current))) + : current(__x.current) + { } + + + reverse_iterator& operator=(const reverse_iterator&) = default; + + + + + + + template + + + + constexpr + reverse_iterator(const reverse_iterator<_Iter>& __x) + noexcept(noexcept(_Iterator(__x.current))) + : current(__x.current) + { } + + + template + + + + + constexpr + reverse_iterator& + operator=(const reverse_iterator<_Iter>& __x) + noexcept(noexcept(current = __x.current)) + { + current = __x.current; + return *this; + } + + + + + + [[__nodiscard__]] + constexpr iterator_type + base() const + noexcept(noexcept(_Iterator(current))) + { return current; } +# 255 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + [[__nodiscard__]] + constexpr reference + operator*() const + { + _Iterator __tmp = current; + return *--__tmp; + } + + + + + + + [[__nodiscard__]] + constexpr pointer + operator->() const + + + + + { + + + _Iterator __tmp = current; + --__tmp; + return _S_to_pointer(__tmp); + } + + + + + + + constexpr reverse_iterator& + operator++() + { + --current; + return *this; + } + + + + + + + constexpr reverse_iterator + operator++(int) + { + reverse_iterator __tmp = *this; + --current; + return __tmp; + } + + + + + + + constexpr reverse_iterator& + operator--() + { + ++current; + return *this; + } + + + + + + + constexpr reverse_iterator + operator--(int) + { + reverse_iterator __tmp = *this; + ++current; + return __tmp; + } + + + + + + + [[__nodiscard__]] + constexpr reverse_iterator + operator+(difference_type __n) const + { return reverse_iterator(current - __n); } + + + + + + + + constexpr reverse_iterator& + operator+=(difference_type __n) + { + current -= __n; + return *this; + } + + + + + + + [[__nodiscard__]] + constexpr reverse_iterator + operator-(difference_type __n) const + { return reverse_iterator(current + __n); } + + + + + + + + constexpr reverse_iterator& + operator-=(difference_type __n) + { + current += __n; + return *this; + } + + + + + + + [[__nodiscard__]] + constexpr reference + operator[](difference_type __n) const + { return *(*this + __n); } +# 415 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + private: + template + static constexpr _Tp* + _S_to_pointer(_Tp* __p) + { return __p; } + + template + static constexpr pointer + _S_to_pointer(_Tp __t) + { return __t.operator->(); } + }; +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator==(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() < __x.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() == __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() > __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() != __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() < __y.base(); } + + template + inline constexpr bool + operator<=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() >= __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + { return __x.base() <= __y.base(); } +# 615 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr auto + operator-(const reverse_iterator<_IteratorL>& __x, + const reverse_iterator<_IteratorR>& __y) + -> decltype(__y.base() - __x.base()) + { return __y.base() - __x.base(); } + + + template + [[__nodiscard__]] + inline constexpr reverse_iterator<_Iterator> + operator+(typename reverse_iterator<_Iterator>::difference_type __n, + const reverse_iterator<_Iterator>& __x) + { return reverse_iterator<_Iterator>(__x.base() - __n); } + + + + template + inline constexpr reverse_iterator<_Iterator> + __make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } + + + + + + template + [[__nodiscard__]] + inline constexpr reverse_iterator<_Iterator> + make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } +# 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + + auto + __niter_base(reverse_iterator<_Iterator> __it) + -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) + { return __make_reverse_iterator(__niter_base(__it.base())); } + + template + struct __is_move_iterator > + : __is_move_iterator<_Iterator> + { }; + + template + + auto + __miter_base(reverse_iterator<_Iterator> __it) + -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) + { return __make_reverse_iterator(__miter_base(__it.base())); } +# 688 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class back_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + + + + explicit + back_insert_iterator(_Container& __x) + : container(std::__addressof(__x)) { } +# 726 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + back_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_back(__value); + return *this; + } + + + back_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_back(std::move(__value)); + return *this; + } + + + + [[__nodiscard__]] + back_insert_iterator& + operator*() + { return *this; } + + + + back_insert_iterator& + operator++() + { return *this; } + + + + back_insert_iterator + operator++(int) + { return *this; } + }; +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline back_insert_iterator<_Container> + back_inserter(_Container& __x) + { return back_insert_iterator<_Container>(__x); } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class front_insert_iterator + : public iterator + { + protected: + _Container* container; + + public: + + typedef _Container container_type; + + + + + + explicit + front_insert_iterator(_Container& __x) + : container(std::__addressof(__x)) { } +# 827 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + front_insert_iterator& + operator=(const typename _Container::value_type& __value) + { + container->push_front(__value); + return *this; + } + + + front_insert_iterator& + operator=(typename _Container::value_type&& __value) + { + container->push_front(std::move(__value)); + return *this; + } + + + + [[__nodiscard__]] + front_insert_iterator& + operator*() + { return *this; } + + + + front_insert_iterator& + operator++() + { return *this; } + + + + front_insert_iterator + operator++(int) + { return *this; } + }; +# 874 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline front_insert_iterator<_Container> + front_inserter(_Container& __x) + { return front_insert_iterator<_Container>(__x); } +# 894 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class insert_iterator + : public iterator + { + + + + typedef typename _Container::iterator _Iter; + + protected: + _Container* container; + _Iter iter; + + public: + + typedef _Container container_type; +# 919 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + insert_iterator(_Container& __x, _Iter __i) + : container(std::__addressof(__x)), iter(__i) {} +# 955 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + + insert_iterator& + operator=(const typename _Container::value_type& __value) + { + iter = container->insert(iter, __value); + ++iter; + return *this; + } + + + insert_iterator& + operator=(typename _Container::value_type&& __value) + { + iter = container->insert(iter, std::move(__value)); + ++iter; + return *this; + } + + + + [[__nodiscard__]] + insert_iterator& + operator*() + { return *this; } + + + + insert_iterator& + operator++() + { return *this; } + + + + insert_iterator& + operator++(int) + { return *this; } + }; + +#pragma GCC diagnostic pop +# 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline insert_iterator<_Container> + inserter(_Container& __x, typename _Container::iterator __i) + { return insert_iterator<_Container>(__x, __i); } + + + + + +} + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class __normal_iterator + { + protected: + _Iterator _M_current; + + typedef std::iterator_traits<_Iterator> __traits_type; + + + template + using __convertible_from + = std::__enable_if_t::value>; + + + public: + typedef _Iterator iterator_type; + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + typedef typename __traits_type::reference reference; + typedef typename __traits_type::pointer pointer; + + + + + + constexpr __normal_iterator() noexcept + : _M_current(_Iterator()) { } + + explicit + __normal_iterator(const _Iterator& __i) noexcept + : _M_current(__i) { } + + + + template> + + __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) + noexcept +# 1085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + : _M_current(__i.base()) { } + + + + reference + operator*() const noexcept + { return *_M_current; } + + + pointer + operator->() const noexcept + { return _M_current; } + + + __normal_iterator& + operator++() noexcept + { + ++_M_current; + return *this; + } + + + __normal_iterator + operator++(int) noexcept + { return __normal_iterator(_M_current++); } + + + + __normal_iterator& + operator--() noexcept + { + --_M_current; + return *this; + } + + + __normal_iterator + operator--(int) noexcept + { return __normal_iterator(_M_current--); } + + + + reference + operator[](difference_type __n) const noexcept + { return _M_current[__n]; } + + + __normal_iterator& + operator+=(difference_type __n) noexcept + { _M_current += __n; return *this; } + + + __normal_iterator + operator+(difference_type __n) const noexcept + { return __normal_iterator(_M_current + __n); } + + + __normal_iterator& + operator-=(difference_type __n) noexcept + { _M_current -= __n; return *this; } + + + __normal_iterator + operator-(difference_type __n) const noexcept + { return __normal_iterator(_M_current - __n); } + + + const _Iterator& + base() const noexcept + { return _M_current; } + }; +# 1205 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline bool + operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator==(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + + template + [[__nodiscard__]] + inline bool + operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + template + [[__nodiscard__]] + inline bool + operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + + + + + + template + + + [[__nodiscard__]] + inline auto + operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept + -> decltype(__lhs.base() - __rhs.base()) + + + + + + { return __lhs.base() - __rhs.base(); } + + template + [[__nodiscard__]] + inline typename __normal_iterator<_Iterator, _Container>::difference_type + operator-(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() - __rhs.base(); } + + template + [[__nodiscard__]] + inline __normal_iterator<_Iterator, _Container> + operator+(typename __normal_iterator<_Iterator, _Container>::difference_type + __n, const __normal_iterator<_Iterator, _Container>& __i) + noexcept + { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } + + +} + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + + _Iterator + __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) + noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) + { return __it.base(); } + + + + + + + template + constexpr auto + __to_address(const __gnu_cxx::__normal_iterator<_Iterator, + _Container>& __it) noexcept + -> decltype(std::__to_address(__it.base())) + { return std::__to_address(__it.base()); } +# 1412 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + namespace __detail + { +# 1428 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + } +# 1439 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + class move_iterator + + + + { + _Iterator _M_current; + + using __traits_type = iterator_traits<_Iterator>; + + using __base_ref = typename __traits_type::reference; + + + template + friend class move_iterator; +# 1478 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + public: + using iterator_type = _Iterator; +# 1490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + typedef typename __traits_type::iterator_category iterator_category; + typedef typename __traits_type::value_type value_type; + typedef typename __traits_type::difference_type difference_type; + + typedef _Iterator pointer; + + + using reference + = __conditional_t::value, + typename remove_reference<__base_ref>::type&&, + __base_ref>; + + + constexpr + move_iterator() + : _M_current() { } + + explicit constexpr + move_iterator(iterator_type __i) + : _M_current(std::move(__i)) { } + + template + + + + constexpr + move_iterator(const move_iterator<_Iter>& __i) + : _M_current(__i._M_current) { } + + template + + + + + constexpr + move_iterator& operator=(const move_iterator<_Iter>& __i) + { + _M_current = __i._M_current; + return *this; + } + + + [[__nodiscard__]] + constexpr iterator_type + base() const + { return _M_current; } +# 1548 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + [[__nodiscard__]] + constexpr reference + operator*() const + + + + { return static_cast(*_M_current); } + + + [[__nodiscard__]] + constexpr pointer + operator->() const + { return _M_current; } + + constexpr move_iterator& + operator++() + { + ++_M_current; + return *this; + } + + constexpr move_iterator + operator++(int) + { + move_iterator __tmp = *this; + ++_M_current; + return __tmp; + } + + + + + + + + constexpr move_iterator& + operator--() + { + --_M_current; + return *this; + } + + constexpr move_iterator + operator--(int) + { + move_iterator __tmp = *this; + --_M_current; + return __tmp; + } + + [[__nodiscard__]] + constexpr move_iterator + operator+(difference_type __n) const + { return move_iterator(_M_current + __n); } + + constexpr move_iterator& + operator+=(difference_type __n) + { + _M_current += __n; + return *this; + } + + [[__nodiscard__]] + constexpr move_iterator + operator-(difference_type __n) const + { return move_iterator(_M_current - __n); } + + constexpr move_iterator& + operator-=(difference_type __n) + { + _M_current -= __n; + return *this; + } + + [[__nodiscard__]] + constexpr reference + operator[](difference_type __n) const + + + + { return std::move(_M_current[__n]); } +# 1662 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + }; + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() == __y.base(); } +# 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__x == __y); } + + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() < __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__x < __y); } + + + + + template + [[__nodiscard__]] + inline constexpr bool + operator==(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + + { return __x.base() == __y.base(); } +# 1750 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + [[__nodiscard__]] + inline constexpr bool + operator!=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() < __y.base(); } + + template + [[__nodiscard__]] + inline constexpr bool + operator<=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + [[__nodiscard__]] + inline constexpr bool + operator>(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __y < __x; } + + template + [[__nodiscard__]] + inline constexpr bool + operator>=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + template + [[__nodiscard__]] + inline constexpr auto + operator-(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + -> decltype(__x.base() - __y.base()) + { return __x.base() - __y.base(); } + + template + [[__nodiscard__]] + inline constexpr move_iterator<_Iterator> + operator+(typename move_iterator<_Iterator>::difference_type __n, + const move_iterator<_Iterator>& __x) + + + + { return __x + __n; } + + template + [[__nodiscard__]] + inline constexpr move_iterator<_Iterator> + make_move_iterator(_Iterator __i) + { return move_iterator<_Iterator>(std::move(__i)); } + + template::value_type>::value, + _Iterator, move_iterator<_Iterator>>> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Iterator __i) + { return _ReturnType(__i); } + + + + template::value, + const _Tp*, move_iterator<_Tp*>>> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Tp* __i) + { return _ReturnType(__i); } +# 2964 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + + auto + __niter_base(move_iterator<_Iterator> __it) + -> decltype(make_move_iterator(__niter_base(__it.base()))) + { return make_move_iterator(__niter_base(__it.base())); } + + template + struct __is_move_iterator > + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template + + auto + __miter_base(move_iterator<_Iterator> __it) + -> decltype(__miter_base(__it.base())) + { return __miter_base(__it.base()); } +# 2996 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 + template + using __iter_key_t = remove_const_t< + + + + typename iterator_traits<_InputIterator>::value_type::first_type>; + + + template + using __iter_val_t + + + + = typename iterator_traits<_InputIterator>::value_type::second_type; + + + template + struct pair; + + template + using __iter_to_alloc_t + = pair, __iter_val_t<_InputIterator>>; + + + +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 1 3 +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 3 +namespace std +{ + namespace __debug { } +} + + + + +namespace __gnu_debug +{ + using namespace std::__debug; + + template + struct _Safe_iterator; +} +# 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 1 3 +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 3 +namespace __gnu_cxx +{ +namespace __ops +{ + struct _Iter_less_iter + { + template + constexpr + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 < *__it2; } + }; + + constexpr + inline _Iter_less_iter + __iter_less_iter() + { return _Iter_less_iter(); } + + struct _Iter_less_val + { + + constexpr _Iter_less_val() = default; + + + + + + explicit + _Iter_less_val(_Iter_less_iter) { } + + template + + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it < __val; } + }; + + + inline _Iter_less_val + __iter_less_val() + { return _Iter_less_val(); } + + + inline _Iter_less_val + __iter_comp_val(_Iter_less_iter) + { return _Iter_less_val(); } + + struct _Val_less_iter + { + + constexpr _Val_less_iter() = default; + + + + + + explicit + _Val_less_iter(_Iter_less_iter) { } + + template + + bool + operator()(_Value& __val, _Iterator __it) const + { return __val < *__it; } + }; + + + inline _Val_less_iter + __val_less_iter() + { return _Val_less_iter(); } + + + inline _Val_less_iter + __val_comp_iter(_Iter_less_iter) + { return _Val_less_iter(); } + + struct _Iter_equal_to_iter + { + template + + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) const + { return *__it1 == *__it2; } + }; + + + inline _Iter_equal_to_iter + __iter_equal_to_iter() + { return _Iter_equal_to_iter(); } + + struct _Iter_equal_to_val + { + template + + bool + operator()(_Iterator __it, _Value& __val) const + { return *__it == __val; } + }; + + + inline _Iter_equal_to_val + __iter_equal_to_val() + { return _Iter_equal_to_val(); } + + + inline _Iter_equal_to_val + __iter_comp_val(_Iter_equal_to_iter) + { return _Iter_equal_to_val(); } + + template + struct _Iter_comp_iter + { + _Compare _M_comp; + + explicit constexpr + _Iter_comp_iter(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + template + constexpr + bool + operator()(_Iterator1 __it1, _Iterator2 __it2) + { return bool(_M_comp(*__it1, *__it2)); } + }; + + template + constexpr + inline _Iter_comp_iter<_Compare> + __iter_comp_iter(_Compare __comp) + { return _Iter_comp_iter<_Compare>(std::move(__comp)); } + + template + struct _Iter_comp_val + { + _Compare _M_comp; + + + explicit + _Iter_comp_val(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + + explicit + _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) + : _M_comp(__comp._M_comp) + { } + + + + explicit + _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) + : _M_comp(std::move(__comp._M_comp)) + { } + + + template + + bool + operator()(_Iterator __it, _Value& __val) + { return bool(_M_comp(*__it, __val)); } + }; + + template + + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Compare __comp) + { return _Iter_comp_val<_Compare>(std::move(__comp)); } + + template + + inline _Iter_comp_val<_Compare> + __iter_comp_val(_Iter_comp_iter<_Compare> __comp) + { return _Iter_comp_val<_Compare>(std::move(__comp)); } + + template + struct _Val_comp_iter + { + _Compare _M_comp; + + + explicit + _Val_comp_iter(_Compare __comp) + : _M_comp(std::move(__comp)) + { } + + + explicit + _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) + : _M_comp(__comp._M_comp) + { } + + + + explicit + _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) + : _M_comp(std::move(__comp._M_comp)) + { } + + + template + + bool + operator()(_Value& __val, _Iterator __it) + { return bool(_M_comp(__val, *__it)); } + }; + + template + + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Compare __comp) + { return _Val_comp_iter<_Compare>(std::move(__comp)); } + + template + + inline _Val_comp_iter<_Compare> + __val_comp_iter(_Iter_comp_iter<_Compare> __comp) + { return _Val_comp_iter<_Compare>(std::move(__comp)); } + + template + struct _Iter_equals_val + { + _Value& _M_value; + + + explicit + _Iter_equals_val(_Value& __value) + : _M_value(__value) + { } + + template + + bool + operator()(_Iterator __it) + { return *__it == _M_value; } + }; + + template + + inline _Iter_equals_val<_Value> + __iter_equals_val(_Value& __val) + { return _Iter_equals_val<_Value>(__val); } + + template + struct _Iter_equals_iter + { + _Iterator1 _M_it1; + + + explicit + _Iter_equals_iter(_Iterator1 __it1) + : _M_it1(__it1) + { } + + template + + bool + operator()(_Iterator2 __it2) + { return *__it2 == *_M_it1; } + }; + + template + + inline _Iter_equals_iter<_Iterator> + __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) + { return _Iter_equals_iter<_Iterator>(__it); } + + template + struct _Iter_pred + { + _Predicate _M_pred; + + + explicit + _Iter_pred(_Predicate __pred) + : _M_pred(std::move(__pred)) + { } + + template + + bool + operator()(_Iterator __it) + { return bool(_M_pred(*__it)); } + }; + + template + + inline _Iter_pred<_Predicate> + __pred_iter(_Predicate __pred) + { return _Iter_pred<_Predicate>(std::move(__pred)); } + + template + struct _Iter_comp_to_val + { + _Compare _M_comp; + _Value& _M_value; + + + _Iter_comp_to_val(_Compare __comp, _Value& __value) + : _M_comp(std::move(__comp)), _M_value(__value) + { } + + template + + bool + operator()(_Iterator __it) + { return bool(_M_comp(*__it, _M_value)); } + }; + + template + _Iter_comp_to_val<_Compare, _Value> + + __iter_comp_val(_Compare __comp, _Value &__val) + { + return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); + } + + template + struct _Iter_comp_to_iter + { + _Compare _M_comp; + _Iterator1 _M_it1; + + + _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) + : _M_comp(std::move(__comp)), _M_it1(__it1) + { } + + template + + bool + operator()(_Iterator2 __it2) + { return bool(_M_comp(*__it2, *_M_it1)); } + }; + + template + + inline _Iter_comp_to_iter<_Compare, _Iterator> + __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) + { + return _Iter_comp_to_iter<_Compare, _Iterator>( + std::move(__comp._M_comp), __it); + } + + template + struct _Iter_negate + { + _Predicate _M_pred; + + + explicit + _Iter_negate(_Predicate __pred) + : _M_pred(std::move(__pred)) + { } + + template + + bool + operator()(_Iterator __it) + { return !bool(_M_pred(*__it)); } + }; + + template + + inline _Iter_negate<_Predicate> + __negate(_Iter_pred<_Predicate> __pred) + { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } + +} +} +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 1 3 +# 32 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/concepts" 2 3 +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 2 3 +# 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + template + constexpr _Tp + __rotl(_Tp __x, int __s) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if constexpr ((_Nd & (_Nd - 1)) == 0) + { + + + constexpr unsigned __uNd = _Nd; + const unsigned __r = __s; + return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); + } + const int __r = __s % _Nd; + if (__r == 0) + return __x; + else if (__r > 0) + return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); + else + return (__x >> -__r) | (__x << ((_Nd + __r) % _Nd)); + } + + template + constexpr _Tp + __rotr(_Tp __x, int __s) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if constexpr ((_Nd & (_Nd - 1)) == 0) + { + + + constexpr unsigned __uNd = _Nd; + const unsigned __r = __s; + return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); + } + const int __r = __s % _Nd; + if (__r == 0) + return __x; + else if (__r > 0) + return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); + else + return (__x << -__r) | (__x >> ((_Nd + __r) % _Nd)); + } + + template + constexpr int + __countl_zero(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + if (__x == 0) + return _Nd; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + { + constexpr int __diff = _Nd_u - _Nd; + return __builtin_clz(__x) - __diff; + } + else if constexpr (_Nd <= _Nd_ul) + { + constexpr int __diff = _Nd_ul - _Nd; + return __builtin_clzl(__x) - __diff; + } + else if constexpr (_Nd <= _Nd_ull) + { + constexpr int __diff = _Nd_ull - _Nd; + return __builtin_clzll(__x) - __diff; + } + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + unsigned long long __high = __x >> _Nd_ull; + if (__high != 0) + { + constexpr int __diff = (2 * _Nd_ull) - _Nd; + return __builtin_clzll(__high) - __diff; + } + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + return (_Nd - _Nd_ull) + __builtin_clzll(__low); + } + } + + template + constexpr int + __countl_one(_Tp __x) noexcept + { + return std::__countl_zero<_Tp>((_Tp)~__x); + } + + template + constexpr int + __countr_zero(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + if (__x == 0) + return _Nd; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + return __builtin_ctz(__x); + else if constexpr (_Nd <= _Nd_ul) + return __builtin_ctzl(__x); + else if constexpr (_Nd <= _Nd_ull) + return __builtin_ctzll(__x); + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + if (__low != 0) + return __builtin_ctzll(__low); + unsigned long long __high = __x >> _Nd_ull; + return __builtin_ctzll(__high) + _Nd_ull; + } + } + + template + constexpr int + __countr_one(_Tp __x) noexcept + { + return std::__countr_zero((_Tp)~__x); + } + + template + constexpr int + __popcount(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + + constexpr auto _Nd_ull = __int_traits::__digits; + constexpr auto _Nd_ul = __int_traits::__digits; + constexpr auto _Nd_u = __int_traits::__digits; + + if constexpr (_Nd <= _Nd_u) + return __builtin_popcount(__x); + else if constexpr (_Nd <= _Nd_ul) + return __builtin_popcountl(__x); + else if constexpr (_Nd <= _Nd_ull) + return __builtin_popcountll(__x); + else + { + static_assert(_Nd <= (2 * _Nd_ull), + "Maximum supported integer size is 128-bit"); + + constexpr auto __max_ull = __int_traits::__max; + unsigned long long __low = __x & __max_ull; + unsigned long long __high = __x >> _Nd_ull; + return __builtin_popcountll(__low) + __builtin_popcountll(__high); + } + } + + template + constexpr bool + __has_single_bit(_Tp __x) noexcept + { return std::__popcount(__x) == 1; } + + template + constexpr _Tp + __bit_ceil(_Tp __x) noexcept + { + using __gnu_cxx::__int_traits; + constexpr auto _Nd = __int_traits<_Tp>::__digits; + if (__x == 0 || __x == 1) + return 1; + auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1u)); + + + + + if (!std::__is_constant_evaluated()) + { + do { if (std::__is_constant_evaluated() && !bool(__shift_exponent != __int_traits<_Tp>::__digits)) std::__glibcxx_assert_fail(); } while (false); + } + + using __promoted_type = decltype(__x << 1); + if constexpr (!is_same<__promoted_type, _Tp>::value) + { + + + + + + const int __extra_exp = sizeof(__promoted_type) / sizeof(_Tp) / 2; + __shift_exponent |= (__shift_exponent & _Nd) << __extra_exp; + } + return (_Tp)1u << __shift_exponent; + } + + template + constexpr _Tp + __bit_floor(_Tp __x) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + if (__x == 0) + return 0; + return (_Tp)1u << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); + } + + template + constexpr int + __bit_width(_Tp __x) noexcept + { + constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; + return _Nd - std::__countl_zero(__x); + } +# 482 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 + +} +# 77 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + template + constexpr + inline int + __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) + { + + static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); +# 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); + } +# 152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline void + iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) + { + + + + +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + swap(*__a, *__b); + + } +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + _ForwardIterator2 + swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + ; + + for (; __first1 != __last1; ++__first1, (void)++__first2) + std::iter_swap(__first1, __first2); + return __first2; + } +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b) + { + + + + if (__b < __a) + return __b; + return __a; + } +# 254 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b) + { + + + + if (__a < __b) + return __b; + return __a; + } +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__b, __a)) + return __b; + return __a; + } +# 300 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__a, __b)) + return __b; + return __a; + } + + + + template + + inline _Iterator + __niter_base(_Iterator __it) + noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) + { return __it; } +# 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + decltype(std::__niter_base(std::declval<_Ite>())) + __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, + std::random_access_iterator_tag>&) + noexcept(std::is_nothrow_copy_constructible<_Ite>::value); + + + + + + template + + inline _From + __niter_wrap(_From __from, _To __res) + { return __from + (std::__niter_base(__res) - std::__niter_base(__from)); } + + + template + + inline _Iterator + __niter_wrap(const _Iterator&, _Iterator __res) + { return __res; } + + + + + + + + template + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, (void)++__first) + *__result = *__first; + return __result; + } + }; + + + template + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + for (; __first != __last; ++__result, (void)++__first) + *__result = std::move(*__first); + return __result; + } + }; + + + template<> + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = *__first; + ++__first; + ++__result; + } + return __result; + } + + template + static void + __assign_one(_Tp* __to, _Up* __from) + { *__to = *__from; } + }; + + + template<> + struct __copy_move + { + template + + static _OI + __copy_m(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::difference_type _Distance; + for(_Distance __n = __last - __first; __n > 0; --__n) + { + *__result = std::move(*__first); + ++__first; + ++__result; + } + return __result; + } + + template + static void + __assign_one(_Tp* __to, _Up* __from) + { *__to = std::move(*__from); } + }; + + + template + struct __copy_move<_IsMove, true, random_access_iterator_tag> + { + template + + static _Up* + __copy_m(_Tp* __first, _Tp* __last, _Up* __result) + { + const ptrdiff_t _Num = __last - __first; + if (__builtin_expect(_Num > 1, true)) + __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); + else if (_Num == 1) + std::__copy_move<_IsMove, false, random_access_iterator_tag>:: + __assign_one(__result, __first); + return __result + _Num; + } + }; + + + + template + struct _Deque_iterator; + + struct _Bit_iterator; + + + + + + + template + struct char_traits; + + template + class istreambuf_iterator; + + template + class ostreambuf_iterator; + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(_CharT*, _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_move_a2(const _CharT*, const _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + _CharT*>::__type + __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, + std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type + __copy_move_a2( + istreambuf_iterator<_CharT, char_traits<_CharT> >, + istreambuf_iterator<_CharT, char_traits<_CharT> >, + std::_Deque_iterator<_CharT, _CharT&, _CharT*>); + + + template + + inline _OI + __copy_move_a2(_II __first, _II __last, _OI __result) + { + typedef typename iterator_traits<_II>::iterator_category _Category; + + + + + + return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value, + _Category>::__copy_m(__first, __last, __result); + } + + template + _OI + __copy_move_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _OI); + + template + std::_Deque_iterator<_OTp, _OTp&, _OTp*> + __copy_move_a1(std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_OTp, _OTp&, _OTp*>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, + std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type + __copy_move_a1(_II, _II, std::_Deque_iterator<_Tp, _Tp&, _Tp*>); + + template + + inline _OI + __copy_move_a1(_II __first, _II __last, _OI __result) + { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } + + template + + inline _OI + __copy_move_a(_II __first, _II __last, _OI __result) + { + return std::__niter_wrap(__result, + std::__copy_move_a1<_IsMove>(std::__niter_base(__first), + std::__niter_base(__last), + std::__niter_base(__result))); + } + + template + + _OI + __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + _OI); + + template + + __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __copy_move_a(_II, _II, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); + + template + + ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> + __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); + + template + + _OutputIterator + __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, + bool) + { + if (__n > 0) + { + while (true) + { + *__result = *__first; + ++__result; + if (--__n > 0) + ++__first; + else + break; + } + } + return __result; + } + + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, _CharT*>::__type + __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, + _Size, _CharT*, bool); + + template + typename __gnu_cxx::__enable_if< + __is_char<_CharT>::__value, + std::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type + __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, _Size, + std::_Deque_iterator<_CharT, _CharT&, _CharT*>, + bool); +# 639 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + copy(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a<__is_move_iterator<_II>::__value> + (std::__miter_base(__first), std::__miter_base(__last), __result); + } +# 672 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + move(_II __first, _II __last, _OI __result) + { + + + + + ; + + return std::__copy_move_a(std::__miter_base(__first), + std::__miter_base(__last), __result); + } + + + + + + + template + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = *--__last; + return __result; + } + }; + + + template + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + while (__first != __last) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type + __n = __last - __first; + for (; __n > 0; --__n) + *--__result = *--__last; + return __result; + } + }; + + + template<> + struct __copy_move_backward + { + template + + static _BI2 + __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) + { + typename iterator_traits<_BI1>::difference_type + __n = __last - __first; + for (; __n > 0; --__n) + *--__result = std::move(*--__last); + return __result; + } + }; + + + template + struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> + { + template + + static _Up* + __copy_move_b(_Tp* __first, _Tp* __last, _Up* __result) + { + const ptrdiff_t _Num = __last - __first; + if (__builtin_expect(_Num > 1, true)) + __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); + else if (_Num == 1) + std::__copy_move<_IsMove, false, random_access_iterator_tag>:: + __assign_one(__result - 1, __first); + return __result - _Num; + } + }; + + template + + inline _BI2 + __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) + { + typedef typename iterator_traits<_BI1>::iterator_category _Category; + + + + + + return std::__copy_move_backward<_IsMove, + __memcpyable<_BI2, _BI1>::__value, + _Category>::__copy_move_b(__first, + __last, + __result); + } + + template + + inline _BI2 + __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) + { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } + + template + _OI + __copy_move_backward_a1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _OI); + + template + std::_Deque_iterator<_OTp, _OTp&, _OTp*> + __copy_move_backward_a1( + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_ITp, _IRef, _IPtr>, + std::_Deque_iterator<_OTp, _OTp&, _OTp*>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, + std::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type + __copy_move_backward_a1(_II, _II, + std::_Deque_iterator<_Tp, _Tp&, _Tp*>); + + template + + inline _OI + __copy_move_backward_a(_II __first, _II __last, _OI __result) + { + return std::__niter_wrap(__result, + std::__copy_move_backward_a1<_IsMove> + (std::__niter_base(__first), std::__niter_base(__last), + std::__niter_base(__result))); + } + + template + + _OI + __copy_move_backward_a( + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + _OI); + + template + + __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __copy_move_backward_a(_II, _II, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); + + template + + ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> + __copy_move_backward_a( + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, + const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); +# 875 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _BI2 + copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + ; + + return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> + (std::__miter_base(__first), std::__miter_base(__last), __result); + } +# 910 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _BI2 + move_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + + + + + + ; + + return std::__copy_move_backward_a(std::__miter_base(__first), + std::__miter_base(__last), + __result); + } + + + + + + + template + + inline typename + __gnu_cxx::__enable_if::__value, void>::__type + __fill_a1(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + for (; __first != __last; ++__first) + *__first = __value; + } + + template + + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type + __fill_a1(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __first != __last; ++__first) + *__first = __tmp; + } + + + template + + inline typename + __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type + __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c) + { + const _Tp __tmp = __c; +# 971 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + if (const size_t __len = __last - __first) + __builtin_memset(__first, static_cast(__tmp), __len); + } + + template + + inline void + __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, + ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, + const _Tp& __value) + { std::__fill_a1(__first.base(), __last.base(), __value); } + + template + void + __fill_a1(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, + const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, + const _VTp&); + + + void + __fill_a1(std::_Bit_iterator, std::_Bit_iterator, + const bool&); + + template + + inline void + __fill_a(_FIte __first, _FIte __last, const _Tp& __value) + { std::__fill_a1(__first, __last, __value); } + + template + + void + __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, + const _Tp&); +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline void + fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) + { + + + + ; + + std::__fill_a(__first, __last, __value); + } + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" + + inline constexpr int + __size_to_integer(int __n) { return __n; } + inline constexpr unsigned + __size_to_integer(unsigned __n) { return __n; } + inline constexpr long + __size_to_integer(long __n) { return __n; } + inline constexpr unsigned long + __size_to_integer(unsigned long __n) { return __n; } + inline constexpr long long + __size_to_integer(long long __n) { return __n; } + inline constexpr unsigned long long + __size_to_integer(unsigned long long __n) { return __n; } + + + __extension__ inline constexpr __int128 + __size_to_integer(__int128 __n) { return __n; } + __extension__ inline constexpr unsigned __int128 + __size_to_integer(unsigned __int128 __n) { return __n; } +# 1073 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + inline constexpr long long + __size_to_integer(float __n) { return (long long)__n; } + inline constexpr long long + __size_to_integer(double __n) { return (long long)__n; } + inline constexpr long long + __size_to_integer(long double __n) { return (long long)__n; } + + __extension__ inline constexpr long long + __size_to_integer(__float128 __n) { return (long long)__n; } + +#pragma GCC diagnostic pop + + template + + inline typename + __gnu_cxx::__enable_if::__value, _OutputIterator>::__type + __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) + { + for (; __n > 0; --__n, (void) ++__first) + *__first = __value; + return __first; + } + + template + + inline typename + __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type + __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) + { + const _Tp __tmp = __value; + for (; __n > 0; --__n, (void) ++__first) + *__first = __tmp; + return __first; + } + + template + + ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> + __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, + _Size __n, const _Tp& __value, + std::input_iterator_tag); + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::output_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + return __fill_n_a1(__first, __n, __value); + } + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::input_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + return __fill_n_a1(__first, __n, __value); + } + + template + + inline _OutputIterator + __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, + std::random_access_iterator_tag) + { + + static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); + + if (__n <= 0) + return __first; + + ; + + std::__fill_a(__first, __first + __n, __value); + return __first + __n; + } +# 1175 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _OI + fill_n(_OI __first, _Size __n, const _Tp& __value) + { + + + + return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, + std::__iterator_category(__first)); + } + + template + struct __equal + { + template + + static bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + for (; __first1 != __last1; ++__first1, (void) ++__first2) + if (!(*__first1 == *__first2)) + return false; + return true; + } + }; + + template<> + struct __equal + { + template + + static bool + equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) + { + if (const size_t __len = (__last1 - __first1)) + return !std::__memcmp(__first1, __first2, __len); + return true; + } + }; + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, bool>::__type + __equal_aux1(std::_Deque_iterator<_Tp, _Ref, _Ptr>, + std::_Deque_iterator<_Tp, _Ref, _Ptr>, + _II); + + template + bool + __equal_aux1(std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + typename __gnu_cxx::__enable_if< + __is_random_access_iter<_II>::__value, bool>::__type + __equal_aux1(_II, _II, + std::_Deque_iterator<_Tp, _Ref, _Ptr>); + + template + + inline bool + __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + const bool __simple = ((__is_integer<_ValueType1>::__value + || __is_pointer<_ValueType1>::__value) + && __memcmpable<_II1, _II2>::__value); + return std::__equal<__simple>::equal(__first1, __last1, __first2); + } + + template + + inline bool + __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) + { + return std::__equal_aux1(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2)); + } + + template + + bool + __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + _II2); + + template + + bool + __equal_aux(_II1, _II1, + const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); + + template + + bool + __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); + + template + struct __lc_rai + { + template + + static _II1 + __newlast1(_II1, _II1 __last1, _II2, _II2) + { return __last1; } + + template + + static bool + __cnd2(_II __first, _II __last) + { return __first != __last; } + }; + + template<> + struct __lc_rai + { + template + + static _RAI1 + __newlast1(_RAI1 __first1, _RAI1 __last1, + _RAI2 __first2, _RAI2 __last2) + { + const typename iterator_traits<_RAI1>::difference_type + __diff1 = __last1 - __first1; + const typename iterator_traits<_RAI2>::difference_type + __diff2 = __last2 - __first2; + return __diff2 < __diff1 ? __first1 + __diff2 : __last1; + } + + template + static bool + __cnd2(_RAI, _RAI) + { return true; } + }; + + template + + bool + __lexicographical_compare_impl(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, + _Compare __comp) + { + typedef typename iterator_traits<_II1>::iterator_category _Category1; + typedef typename iterator_traits<_II2>::iterator_category _Category2; + typedef std::__lc_rai<_Category1, _Category2> __rai_type; + + __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); + for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); + ++__first1, (void)++__first2) + { + if (__comp(__first1, __first2)) + return true; + if (__comp(__first2, __first1)) + return false; + } + return __first1 == __last1 && __first2 != __last2; + } + + template + struct __lexicographical_compare + { + template + + static bool + __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + using __gnu_cxx::__ops::__iter_less_iter; + return std::__lexicographical_compare_impl(__first1, __last1, + __first2, __last2, + __iter_less_iter()); + } + + template + + static int + __3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + while (__first1 != __last1) + { + if (__first2 == __last2) + return +1; + if (*__first1 < *__first2) + return -1; + if (*__first2 < *__first1) + return +1; + ++__first1; + ++__first2; + } + return int(__first2 == __last2) - 1; + } + }; + + template<> + struct __lexicographical_compare + { + template + + static bool + __lc(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { return __3way(__first1, __last1, __first2, __last2) < 0; } + + template + + static ptrdiff_t + __3way(const _Tp* __first1, const _Tp* __last1, + const _Up* __first2, const _Up* __last2) + { + const size_t __len1 = __last1 - __first1; + const size_t __len2 = __last2 - __first2; + if (const size_t __len = std::min(__len1, __len2)) + if (int __result = std::__memcmp(__first1, __first2, __len)) + return __result; + return ptrdiff_t(__len1 - __len2); + } + }; + + template + + inline bool + __lexicographical_compare_aux1(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + typedef typename iterator_traits<_II1>::value_type _ValueType1; + typedef typename iterator_traits<_II2>::value_type _ValueType2; + const bool __simple = + (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value + && __is_pointer<_II1>::__value + && __is_pointer<_II2>::__value + + + + + + + + ); + + return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, + __first2, __last2); + } + + template + bool + __lexicographical_compare_aux1( + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + _Tp2*, _Tp2*); + + template + bool + __lexicographical_compare_aux1(_Tp1*, _Tp1*, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + bool + __lexicographical_compare_aux1( + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, + std::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); + + template + + inline bool + __lexicographical_compare_aux(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + return std::__lexicographical_compare_aux1(std::__niter_base(__first1), + std::__niter_base(__last1), + std::__niter_base(__first2), + std::__niter_base(__last2)); + } + + template + + bool + __lexicographical_compare_aux( + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + _II2, _II2); + + template + + bool + __lexicographical_compare_aux( + _II1, _II1, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); + + template + + bool + __lexicographical_compare_aux( + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, + const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); + + template + + _ForwardIterator + __lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIterator>::difference_type + _DistanceType; + + _DistanceType __len = std::distance(__first, __last); + + while (__len > 0) + { + _DistanceType __half = __len >> 1; + _ForwardIterator __middle = __first; + std::advance(__middle, __half); + if (__comp(__middle, __val)) + { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else + __len = __half; + } + return __first; + } +# 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline _ForwardIterator + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + + + + + ; + + return std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val()); + } + + + + template + inline constexpr _Tp + __lg(_Tp __n) + { + + return std::__bit_width(make_unsigned_t<_Tp>(__n)) - 1; +# 1563 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + } + + +# 1579 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + + + + + + + ; + + return std::__equal_aux(__first1, __last1, __first2); + } +# 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + for (; __first1 != __last1; ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return true; + } + + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++17-extensions" + + + template + + inline bool + __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + using _RATag = random_access_iterator_tag; + using _Cat1 = typename iterator_traits<_II1>::iterator_category; + using _Cat2 = typename iterator_traits<_II2>::iterator_category; + using _RAIters = __and_, is_same<_Cat2, _RATag>>; + if constexpr (_RAIters::value) + { + if ((__last1 - __first1) != (__last2 - __first2)) + return false; + return std::equal(__first1, __last1, __first2); + } + else + { + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!(*__first1 == *__first2)) + return false; + return __first1 == __last1 && __first2 == __last2; + } + } + + + template + + inline bool + __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, + _BinaryPredicate __binary_pred) + { + using _RATag = random_access_iterator_tag; + using _Cat1 = typename iterator_traits<_II1>::iterator_category; + using _Cat2 = typename iterator_traits<_II2>::iterator_category; + using _RAIters = __and_, is_same<_Cat2, _RATag>>; + if constexpr (_RAIters::value) + { + if ((__last1 - __first1) != (__last2 - __first2)) + return false; + return std::equal(__first1, __last1, __first2, + __binary_pred); + } + else + { + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return __first1 == __last1 && __first2 == __last2; + } + } +#pragma GCC diagnostic pop +# 1701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + + + + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2); + } +# 1734 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2, + __binary_pred); + } +# 1766 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + + + + + + + + + + ; + ; + + return std::__lexicographical_compare_aux(__first1, __last1, + __first2, __last2); + } +# 1801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2, _Compare __comp) + { + + + + ; + ; + + return std::__lexicographical_compare_impl + (__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__comp)); + } +# 1916 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 1944 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2) + { + + + + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 1978 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _BinaryPredicate __binary_pred) + { + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + template + + pair<_InputIterator1, _InputIterator2> + __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + while (__first1 != __last1 && __first2 != __last2 + && __binary_pred(__first1, __first2)) + { + ++__first1; + ++__first2; + } + return pair<_InputIterator1, _InputIterator2>(__first1, __first2); + } +# 2026 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2) + { + + + + + + + ; + ; + + return std::__mismatch(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 2062 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + [[__nodiscard__]] + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__mismatch(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); + } + + + + + + template + + inline _InputIterator + __find_if(_InputIterator __first, _InputIterator __last, + _Predicate __pred, input_iterator_tag) + { + while (__first != __last && !__pred(__first)) + ++__first; + return __first; + } + + + template + + _RandomAccessIterator + __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Predicate __pred, random_access_iterator_tag) + { + typename iterator_traits<_RandomAccessIterator>::difference_type + __trip_count = (__last - __first) >> 2; + + for (; __trip_count > 0; --__trip_count) + { + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + + if (__pred(__first)) + return __first; + ++__first; + } + + switch (__last - __first) + { + case 3: + if (__pred(__first)) + return __first; + ++__first; + + case 2: + if (__pred(__first)) + return __first; + ++__first; + + case 1: + if (__pred(__first)) + return __first; + ++__first; + + case 0: + default: + return __last; + } + } + + template + + inline _Iterator + __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) + { + return __find_if(__first, __last, __pred, + std::__iterator_category(__first)); + } + + template + + typename iterator_traits<_InputIterator>::difference_type + __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) + { + typename iterator_traits<_InputIterator>::difference_type __n = 0; + for (; __first != __last; ++__first) + if (__pred(__first)) + ++__n; + return __n; + } + + template + + _ForwardIterator + __remove_if(_ForwardIterator __first, _ForwardIterator __last, + _Predicate __pred) + { + __first = std::__find_if(__first, __last, __pred); + if (__first == __last) + return __first; + _ForwardIterator __result = __first; + ++__first; + for (; __first != __last; ++__first) + if (!__pred(__first)) + { + *__result = std::move(*__first); + ++__result; + } + return __result; + } + + template + + _ForwardIterator1 + __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + if (__first1 == __last1 || __first2 == __last2) + return __first1; + + + _ForwardIterator2 __p1(__first2); + if (++__p1 == __last2) + return std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + + _ForwardIterator1 __current = __first1; + + for (;;) + { + __first1 = + std::__find_if(__first1, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); + + if (__first1 == __last1) + return __last1; + + _ForwardIterator2 __p = __p1; + __current = __first1; + if (++__current == __last1) + return __last1; + + while (__predicate(__current, __p)) + { + if (++__p == __last2) + return __first1; + if (++__current == __last1) + return __last1; + } + ++__first1; + } + return __first1; + } + + + template + + bool + __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _BinaryPredicate __pred) + { + + + for (; __first1 != __last1; ++__first1, (void)++__first2) + if (!__pred(__first1, __first2)) + break; + + if (__first1 == __last1) + return true; + + + + _ForwardIterator2 __last2 = __first2; + std::advance(__last2, std::distance(__first1, __last1)); + for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) + { + if (__scan != std::__find_if(__first1, __scan, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) + continue; + + auto __matches + = std::__count_if(__first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); + if (0 == __matches || + std::__count_if(__scan, __last1, + __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) + != __matches) + return false; + } + return true; + } +# 2286 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline bool + is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2) + { + + + + + + + ; + + return std::__is_permutation(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } + + + +# 2328 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 + template + + inline _ForwardIterator1 + search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, + _ForwardIterator2 __first2, _ForwardIterator2 __last2, + _BinaryPredicate __predicate) + { + + + + + + + ; + ; + + return std::__search(__first1, __last1, __first2, __last2, + __gnu_cxx::__ops::__iter_comp_iter(__predicate)); + } + + + +} +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 1 3 +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + enum float_round_style + { + round_indeterminate = -1, + round_toward_zero = 0, + round_to_nearest = 1, + round_toward_infinity = 2, + round_toward_neg_infinity = 3 + }; + + + + + + + + enum float_denorm_style + { + + denorm_indeterminate = -1, + + denorm_absent = 0, + + denorm_present = 1 + }; +# 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + struct __numeric_limits_base + { + + + static constexpr bool is_specialized = false; + + + + + static constexpr int digits = 0; + + + static constexpr int digits10 = 0; + + + + + static constexpr int max_digits10 = 0; + + + + static constexpr bool is_signed = false; + + + static constexpr bool is_integer = false; + + + + + static constexpr bool is_exact = false; + + + + static constexpr int radix = 0; + + + + static constexpr int min_exponent = 0; + + + + static constexpr int min_exponent10 = 0; + + + + + static constexpr int max_exponent = 0; + + + + static constexpr int max_exponent10 = 0; + + + static constexpr bool has_infinity = false; + + + + static constexpr bool has_quiet_NaN = false; + + + + static constexpr bool has_signaling_NaN = false; + + + static constexpr float_denorm_style has_denorm = denorm_absent; + + + + static constexpr bool has_denorm_loss = false; + + + + static constexpr bool is_iec559 = false; + + + + + static constexpr bool is_bounded = false; +# 288 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + static constexpr bool is_modulo = false; + + + static constexpr bool traps = false; + + + static constexpr bool tinyness_before = false; + + + + + static constexpr float_round_style round_style = + round_toward_zero; + }; +# 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template + struct numeric_limits : public __numeric_limits_base + { + + + static constexpr _Tp + min() noexcept { return _Tp(); } + + + static constexpr _Tp + max() noexcept { return _Tp(); } + + + + + static constexpr _Tp + lowest() noexcept { return _Tp(); } + + + + + static constexpr _Tp + epsilon() noexcept { return _Tp(); } + + + static constexpr _Tp + round_error() noexcept { return _Tp(); } + + + static constexpr _Tp + infinity() noexcept { return _Tp(); } + + + + static constexpr _Tp + quiet_NaN() noexcept { return _Tp(); } + + + + static constexpr _Tp + signaling_NaN() noexcept { return _Tp(); } + + + + + static constexpr _Tp + denorm_min() noexcept { return _Tp(); } + }; + + + + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; + + template + struct numeric_limits + : public numeric_limits<_Tp> { }; +# 383 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr bool + min() noexcept { return false; } + + static constexpr bool + max() noexcept { return true; } + + + static constexpr bool + lowest() noexcept { return min(); } + + static constexpr int digits = 1; + static constexpr int digits10 = 0; + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr bool + epsilon() noexcept { return false; } + + static constexpr bool + round_error() noexcept { return false; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr bool + infinity() noexcept { return false; } + + static constexpr bool + quiet_NaN() noexcept { return false; } + + static constexpr bool + signaling_NaN() noexcept { return false; } + + static constexpr bool + denorm_min() noexcept { return false; } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + + + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char + min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); } + + static constexpr char + max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } + + + static constexpr char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((char)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char + epsilon() noexcept { return 0; } + + static constexpr char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr + char infinity() noexcept { return char(); } + + static constexpr char + quiet_NaN() noexcept { return char(); } + + static constexpr char + signaling_NaN() noexcept { return char(); } + + static constexpr char + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr signed char + min() noexcept { return -0x7f - 1; } + + static constexpr signed char + max() noexcept { return 0x7f; } + + + static constexpr signed char + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr signed char + epsilon() noexcept { return 0; } + + static constexpr signed char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr signed char + infinity() noexcept { return static_cast(0); } + + static constexpr signed char + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr signed char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr signed char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned char + min() noexcept { return 0; } + + static constexpr unsigned char + max() noexcept { return 0x7f * 2U + 1; } + + + static constexpr unsigned char + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned char + epsilon() noexcept { return 0; } + + static constexpr unsigned char + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned char + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned char + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned char + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr wchar_t + min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); } + + static constexpr wchar_t + max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); } + + + static constexpr wchar_t + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = ((wchar_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr wchar_t + epsilon() noexcept { return 0; } + + static constexpr wchar_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr wchar_t + infinity() noexcept { return wchar_t(); } + + static constexpr wchar_t + quiet_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + signaling_NaN() noexcept { return wchar_t(); } + + static constexpr wchar_t + denorm_min() noexcept { return wchar_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 796 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char16_t + min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); } + + static constexpr char16_t + max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); } + + static constexpr char16_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char16_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char16_t + epsilon() noexcept { return 0; } + + static constexpr char16_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char16_t + infinity() noexcept { return char16_t(); } + + static constexpr char16_t + quiet_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + signaling_NaN() noexcept { return char16_t(); } + + static constexpr char16_t + denorm_min() noexcept { return char16_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr char32_t + min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); } + + static constexpr char32_t + max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); } + + static constexpr char32_t + lowest() noexcept { return min(); } + + static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); + static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); + static constexpr int max_digits10 = 0; + static constexpr bool is_signed = ((char32_t)(-1) < 0); + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr char32_t + epsilon() noexcept { return 0; } + + static constexpr char32_t + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr char32_t + infinity() noexcept { return char32_t(); } + + static constexpr char32_t + quiet_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + signaling_NaN() noexcept { return char32_t(); } + + static constexpr char32_t + denorm_min() noexcept { return char32_t(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = !is_signed; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style = round_toward_zero; + }; + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr short + min() noexcept { return -0x7fff - 1; } + + static constexpr short + max() noexcept { return 0x7fff; } + + + static constexpr short + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); + static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr short + epsilon() noexcept { return 0; } + + static constexpr short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr short + infinity() noexcept { return short(); } + + static constexpr short + quiet_NaN() noexcept { return short(); } + + static constexpr short + signaling_NaN() noexcept { return short(); } + + static constexpr short + denorm_min() noexcept { return short(); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned short + min() noexcept { return 0; } + + static constexpr unsigned short + max() noexcept { return 0x7fff * 2U + 1; } + + + static constexpr unsigned short + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned short + epsilon() noexcept { return 0; } + + static constexpr unsigned short + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned short + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned short + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned short + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr int + min() noexcept { return -0x7fffffff - 1; } + + static constexpr int + max() noexcept { return 0x7fffffff; } + + + static constexpr int + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); + static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr int + epsilon() noexcept { return 0; } + + static constexpr int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr int + infinity() noexcept { return static_cast(0); } + + static constexpr int + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr int + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr int + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned int + min() noexcept { return 0; } + + static constexpr unsigned int + max() noexcept { return 0x7fffffff * 2U + 1; } + + + static constexpr unsigned int + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned int + epsilon() noexcept { return 0; } + + static constexpr unsigned int + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned int + infinity() noexcept { return static_cast(0); } + + static constexpr unsigned int + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned int + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long + min() noexcept { return -0x7fffffffffffffffL - 1; } + + static constexpr long + max() noexcept { return 0x7fffffffffffffffL; } + + + static constexpr long + lowest() noexcept { return min(); } + + + static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); + static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long + epsilon() noexcept { return 0; } + + static constexpr long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long + infinity() noexcept { return static_cast(0); } + + static constexpr long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long + signaling_NaN() noexcept { return static_cast(0); } + + static constexpr long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long + min() noexcept { return 0; } + + static constexpr unsigned long + max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } + + + static constexpr unsigned long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long + epsilon() noexcept { return 0; } + + static constexpr unsigned long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long long + min() noexcept { return -0x7fffffffffffffffLL - 1; } + + static constexpr long long + max() noexcept { return 0x7fffffffffffffffLL; } + + + static constexpr long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(long long) * 8 - ((long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr long long + epsilon() noexcept { return 0; } + + static constexpr long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr long long + infinity() noexcept { return static_cast(0); } + + static constexpr long long + quiet_NaN() noexcept { return static_cast(0); } + + static constexpr long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr long long + denorm_min() noexcept { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr unsigned long long + min() noexcept { return 0; } + + static constexpr unsigned long long + max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } + + + static constexpr unsigned long long + lowest() noexcept { return min(); } + + + static constexpr int digits + = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); + static constexpr int digits10 + = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); + + static constexpr int max_digits10 = 0; + + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + + static constexpr unsigned long long + epsilon() noexcept { return 0; } + + static constexpr unsigned long long + round_error() noexcept { return 0; } + + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm + = denorm_absent; + static constexpr bool has_denorm_loss = false; + + static constexpr unsigned long long + infinity() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + quiet_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + signaling_NaN() noexcept + { return static_cast(0); } + + static constexpr unsigned long long + denorm_min() noexcept + { return static_cast(0); } + + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + + static constexpr bool traps = true; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_toward_zero; + }; +# 1637 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + __extension__ template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; __extension__ template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; +# 1669 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr float + min() noexcept { return 1.17549435082228750796873653722224568e-38F; } + + static constexpr float + max() noexcept { return 3.40282346638528859811704183484516925e+38F; } + + + static constexpr float + lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } + + + static constexpr int digits = 24; + static constexpr int digits10 = 6; + + static constexpr int max_digits10 + = (2 + (24) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr float + epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } + + static constexpr float + round_error() noexcept { return 0.5F; } + + static constexpr int min_exponent = (-125); + static constexpr int min_exponent10 = (-37); + static constexpr int max_exponent = 128; + static constexpr int max_exponent10 = 38; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr float + infinity() noexcept { return __builtin_huge_valf(); } + + static constexpr float + quiet_NaN() noexcept { return __builtin_nanf(""); } + + static constexpr float + signaling_NaN() noexcept { return __builtin_nansf(""); } + + static constexpr float + denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr double + min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } + + static constexpr double + max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } + + + static constexpr double + lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } + + + static constexpr int digits = 53; + static constexpr int digits10 = 15; + + static constexpr int max_digits10 + = (2 + (53) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr double + epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } + + static constexpr double + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = (-1021); + static constexpr int min_exponent10 = (-307); + static constexpr int max_exponent = 1024; + static constexpr int max_exponent10 = 308; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr double + infinity() noexcept { return __builtin_huge_val(); } + + static constexpr double + quiet_NaN() noexcept { return __builtin_nan(""); } + + static constexpr double + signaling_NaN() noexcept { return __builtin_nans(""); } + + static constexpr double + denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before + = false; + static constexpr float_round_style round_style + = round_to_nearest; + }; + + + + + + + template<> + struct numeric_limits + { + static constexpr bool is_specialized = true; + + static constexpr long double + min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } + + static constexpr long double + max() noexcept { return 1.18973149535723176502126385303097021e+4932L; } + + + static constexpr long double + lowest() noexcept { return -1.18973149535723176502126385303097021e+4932L; } + + + static constexpr int digits = 64; + static constexpr int digits10 = 18; + + static constexpr int max_digits10 + = (2 + (64) * 643L / 2136); + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr long double + epsilon() noexcept { return 1.08420217248550443400745280086994171e-19L; } + + static constexpr long double + round_error() noexcept { return 0.5L; } + + static constexpr int min_exponent = (-16381); + static constexpr int min_exponent10 = (-4931); + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + static constexpr bool has_signaling_NaN = has_quiet_NaN; + static constexpr float_denorm_style has_denorm + = bool(1) ? denorm_present : denorm_absent; + static constexpr bool has_denorm_loss + = false; + + static constexpr long double + infinity() noexcept { return __builtin_huge_vall(); } + + static constexpr long double + quiet_NaN() noexcept { return __builtin_nanl(""); } + + static constexpr long double + signaling_NaN() noexcept { return __builtin_nansl(""); } + + static constexpr long double + denorm_min() noexcept { return 3.64519953188247460252840593361941982e-4951L; } + + static constexpr bool is_iec559 + = has_infinity && has_quiet_NaN && has_denorm == denorm_present; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = + false; + static constexpr float_round_style round_style = + round_to_nearest; + }; +# 1989 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +__extension__ template<> struct numeric_limits<_Float32> { static constexpr bool is_specialized = true; static constexpr _Float32 min() noexcept { return 1.17549435082228750796873653722224568e-38F32; } static constexpr _Float32 max() noexcept { return 3.40282346638528859811704183484516925e+38F32; } static constexpr _Float32 lowest() noexcept { return -3.40282346638528859811704183484516925e+38F32; } static constexpr int digits = 24; static constexpr int digits10 = 6; static constexpr int max_digits10 = (2 + (24) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float32 epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F32; } static constexpr _Float32 round_error() noexcept { return 0.5F32; } static constexpr int min_exponent = (-125); static constexpr int min_exponent10 = (-37); static constexpr int max_exponent = 128; static constexpr int max_exponent10 = 38; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float32 infinity() noexcept { return __builtin_huge_valf32(); } static constexpr _Float32 quiet_NaN() noexcept { return __builtin_nanf32(""); } static constexpr _Float32 signaling_NaN() noexcept { return __builtin_nansf32(""); } static constexpr _Float32 denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F32; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; + + +__extension__ template<> struct numeric_limits<_Float64> { static constexpr bool is_specialized = true; static constexpr _Float64 min() noexcept { return 2.22507385850720138309023271733240406e-308F64; } static constexpr _Float64 max() noexcept { return 1.79769313486231570814527423731704357e+308F64; } static constexpr _Float64 lowest() noexcept { return -1.79769313486231570814527423731704357e+308F64; } static constexpr int digits = 53; static constexpr int digits10 = 15; static constexpr int max_digits10 = (2 + (53) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float64 epsilon() noexcept { return 2.22044604925031308084726333618164062e-16F64; } static constexpr _Float64 round_error() noexcept { return 0.5F64; } static constexpr int min_exponent = (-1021); static constexpr int min_exponent10 = (-307); static constexpr int max_exponent = 1024; static constexpr int max_exponent10 = 308; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float64 infinity() noexcept { return __builtin_huge_valf64(); } static constexpr _Float64 quiet_NaN() noexcept { return __builtin_nanf64(""); } static constexpr _Float64 signaling_NaN() noexcept { return __builtin_nansf64(""); } static constexpr _Float64 denorm_min() noexcept { return 4.94065645841246544176568792868221372e-324F64; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; + + +__extension__ template<> struct numeric_limits<_Float128> { static constexpr bool is_specialized = true; static constexpr _Float128 min() noexcept { return 3.36210314311209350626267781732175260e-4932F128; } static constexpr _Float128 max() noexcept { return 1.18973149535723176508575932662800702e+4932F128; } static constexpr _Float128 lowest() noexcept { return -1.18973149535723176508575932662800702e+4932F128; } static constexpr int digits = 113; static constexpr int digits10 = 33; static constexpr int max_digits10 = (2 + (113) * 643L / 2136); static constexpr bool is_signed = true; static constexpr bool is_integer = false; static constexpr bool is_exact = false; static constexpr int radix = 2; static constexpr _Float128 epsilon() noexcept { return 1.92592994438723585305597794258492732e-34F128; } static constexpr _Float128 round_error() noexcept { return 0.5F128; } static constexpr int min_exponent = (-16381); static constexpr int min_exponent10 = (-4931); static constexpr int max_exponent = 16384; static constexpr int max_exponent10 = 4932; static constexpr bool has_infinity = 1; static constexpr bool has_quiet_NaN = 1; static constexpr bool has_signaling_NaN = has_quiet_NaN; static constexpr float_denorm_style has_denorm = bool(1) ? denorm_present : denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr _Float128 infinity() noexcept { return __builtin_huge_valf128(); } static constexpr _Float128 quiet_NaN() noexcept { return __builtin_nanf128(""); } static constexpr _Float128 signaling_NaN() noexcept { return __builtin_nansf128(""); } static constexpr _Float128 denorm_min() noexcept { return 6.47517511943802511092443895822764655e-4966F128; } static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_to_nearest; }; +# 2087 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + __extension__ + template<> + struct numeric_limits<__float128> + { + static constexpr bool is_specialized = true; + + static constexpr __float128 + min() noexcept + { + + + + + return __extension__ 0x1.0p-16382Q; + + } + + static constexpr __float128 + max() noexcept + { + + + + + + + + return __extension__ 0x1.ffffffffffffffffffffffffffffp+16383Q; + + } + + static constexpr __float128 + lowest() noexcept + { return -max(); } + + static constexpr int digits = 113; + static constexpr int digits10 = 33; + + static constexpr int max_digits10 = 35; + + static constexpr bool is_signed = true; + static constexpr bool is_integer = false; + static constexpr bool is_exact = false; + static constexpr int radix = 2; + + static constexpr __float128 + epsilon() noexcept + { return double(1.9259299443872359e-34); } + + static constexpr __float128 + round_error() noexcept { return 0.5; } + + static constexpr int min_exponent = -16381; + static constexpr int min_exponent10 = -4931; + static constexpr int max_exponent = 16384; + static constexpr int max_exponent10 = 4932; + + static constexpr bool has_infinity = 1; + static constexpr bool has_quiet_NaN = 1; + + + static constexpr bool has_signaling_NaN = true; + + + + static constexpr float_denorm_style has_denorm + = denorm_present; + static constexpr bool has_denorm_loss = false; + + static constexpr __float128 + infinity() noexcept + { return __builtin_huge_val(); } + + static constexpr __float128 + quiet_NaN() noexcept + { return __builtin_nan(""); } + + static constexpr __float128 + signaling_NaN() noexcept + { + + return __builtin_nansq(""); + + + + + + } + + static constexpr __float128 + denorm_min() noexcept + { + + + + + return __extension__ 0x1.0p-16494Q; + + } + + static constexpr bool is_iec559 = has_signaling_NaN; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = false; + + static constexpr bool traps = false; + static constexpr bool tinyness_before = false; + static constexpr float_round_style round_style + = round_to_nearest; +# 2218 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 + }; + + + + +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + namespace __detail + { + + + + template + struct __floating_point_constant + { + static const _Tp __value; + }; + + + + template + struct __numeric_constants + { + + static _Tp __pi() throw() + { return static_cast<_Tp>(3.1415926535897932384626433832795029L); } + + static _Tp __pi_2() throw() + { return static_cast<_Tp>(1.5707963267948966192313216916397514L); } + + static _Tp __pi_3() throw() + { return static_cast<_Tp>(1.0471975511965977461542144610931676L); } + + static _Tp __pi_4() throw() + { return static_cast<_Tp>(0.7853981633974483096156608458198757L); } + + static _Tp __1_pi() throw() + { return static_cast<_Tp>(0.3183098861837906715377675267450287L); } + + static _Tp __2_sqrtpi() throw() + { return static_cast<_Tp>(1.1283791670955125738961589031215452L); } + + static _Tp __sqrt2() throw() + { return static_cast<_Tp>(1.4142135623730950488016887242096981L); } + + static _Tp __sqrt3() throw() + { return static_cast<_Tp>(1.7320508075688772935274463415058723L); } + + static _Tp __sqrtpio2() throw() + { return static_cast<_Tp>(1.2533141373155002512078826424055226L); } + + static _Tp __sqrt1_2() throw() + { return static_cast<_Tp>(0.7071067811865475244008443621048490L); } + + static _Tp __lnpi() throw() + { return static_cast<_Tp>(1.1447298858494001741434273513530587L); } + + static _Tp __gamma_e() throw() + { return static_cast<_Tp>(0.5772156649015328606065120900824024L); } + + static _Tp __euler() throw() + { return static_cast<_Tp>(2.7182818284590452353602874713526625L); } + }; +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + template + inline bool __isnan(_Tp __x) + { return std::isnan(__x); } +# 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 + } + + + + + +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + namespace __detail + { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __bernoulli_series(unsigned int __n) + { + + static const _Tp __num[28] = { + _Tp(1UL), -_Tp(1UL) / _Tp(2UL), + _Tp(1UL) / _Tp(6UL), _Tp(0UL), + -_Tp(1UL) / _Tp(30UL), _Tp(0UL), + _Tp(1UL) / _Tp(42UL), _Tp(0UL), + -_Tp(1UL) / _Tp(30UL), _Tp(0UL), + _Tp(5UL) / _Tp(66UL), _Tp(0UL), + -_Tp(691UL) / _Tp(2730UL), _Tp(0UL), + _Tp(7UL) / _Tp(6UL), _Tp(0UL), + -_Tp(3617UL) / _Tp(510UL), _Tp(0UL), + _Tp(43867UL) / _Tp(798UL), _Tp(0UL), + -_Tp(174611) / _Tp(330UL), _Tp(0UL), + _Tp(854513UL) / _Tp(138UL), _Tp(0UL), + -_Tp(236364091UL) / _Tp(2730UL), _Tp(0UL), + _Tp(8553103UL) / _Tp(6UL), _Tp(0UL) + }; + + if (__n == 0) + return _Tp(1); + + if (__n == 1) + return -_Tp(1) / _Tp(2); + + + if (__n % 2 == 1) + return _Tp(0); + + + if (__n < 28) + return __num[__n]; + + + _Tp __fact = _Tp(1); + if ((__n / 2) % 2 == 0) + __fact *= _Tp(-1); + for (unsigned int __k = 1; __k <= __n; ++__k) + __fact *= __k / (_Tp(2) * __numeric_constants<_Tp>::__pi()); + __fact *= _Tp(2); + + _Tp __sum = _Tp(0); + for (unsigned int __i = 1; __i < 1000; ++__i) + { + _Tp __term = std::pow(_Tp(__i), -_Tp(__n)); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return __fact * __sum; + } +# 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + inline _Tp + __bernoulli(int __n) + { return __bernoulli_series<_Tp>(__n); } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_bernoulli(_Tp __x) + { + _Tp __lg = (__x - _Tp(0.5L)) * std::log(__x) - __x + + _Tp(0.5L) * std::log(_Tp(2) + * __numeric_constants<_Tp>::__pi()); + + const _Tp __xx = __x * __x; + _Tp __help = _Tp(1) / __x; + for ( unsigned int __i = 1; __i < 20; ++__i ) + { + const _Tp __2i = _Tp(2 * __i); + __help /= __2i * (__2i - _Tp(1)) * __xx; + __lg += __bernoulli<_Tp>(2 * __i) * __help; + } + + return __lg; + } +# 181 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_lanczos(_Tp __x) + { + const _Tp __xm1 = __x - _Tp(1); + + static const _Tp __lanczos_cheb_7[9] = { + _Tp( 0.99999999999980993227684700473478L), + _Tp( 676.520368121885098567009190444019L), + _Tp(-1259.13921672240287047156078755283L), + _Tp( 771.3234287776530788486528258894L), + _Tp(-176.61502916214059906584551354L), + _Tp( 12.507343278686904814458936853L), + _Tp(-0.13857109526572011689554707L), + _Tp( 9.984369578019570859563e-6L), + _Tp( 1.50563273514931155834e-7L) + }; + + static const _Tp __LOGROOT2PI + = _Tp(0.9189385332046727417803297364056176L); + + _Tp __sum = __lanczos_cheb_7[0]; + for(unsigned int __k = 1; __k < 9; ++__k) + __sum += __lanczos_cheb_7[__k] / (__xm1 + __k); + + const _Tp __term1 = (__xm1 + _Tp(0.5L)) + * std::log((__xm1 + _Tp(7.5L)) + / __numeric_constants<_Tp>::__euler()); + const _Tp __term2 = __LOGROOT2PI + std::log(__sum); + const _Tp __result = __term1 + (__term2 - _Tp(7)); + + return __result; + } +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma(_Tp __x) + { + if (__x > _Tp(0.5L)) + return __log_gamma_lanczos(__x); + else + { + const _Tp __sin_fact + = std::abs(std::sin(__numeric_constants<_Tp>::__pi() * __x)); + if (__sin_fact == _Tp(0)) + std::__throw_domain_error(("Argument is nonpositive integer " "in __log_gamma") + ); + return __numeric_constants<_Tp>::__lnpi() + - std::log(__sin_fact) + - __log_gamma_lanczos(_Tp(1) - __x); + } + } +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_gamma_sign(_Tp __x) + { + if (__x > _Tp(0)) + return _Tp(1); + else + { + const _Tp __sin_fact + = std::sin(__numeric_constants<_Tp>::__pi() * __x); + if (__sin_fact > _Tp(0)) + return (1); + else if (__sin_fact < _Tp(0)) + return -_Tp(1); + else + return _Tp(0); + } + } +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __log_bincoef(unsigned int __n, unsigned int __k) + { + + static const _Tp __max_bincoeff + = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + _Tp __coeff = ::std::lgamma(_Tp(1 + __n)) + - ::std::lgamma(_Tp(1 + __k)) + - ::std::lgamma(_Tp(1 + __n - __k)); + + + + + + } +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __bincoef(unsigned int __n, unsigned int __k) + { + + static const _Tp __max_bincoeff + = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + const _Tp __log_coeff = __log_bincoef<_Tp>(__n, __k); + if (__log_coeff > __max_bincoeff) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return std::exp(__log_coeff); + } +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + inline _Tp + __gamma(_Tp __x) + { return std::exp(__log_gamma(__x)); } +# 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi_series(_Tp __x) + { + _Tp __sum = -__numeric_constants<_Tp>::__gamma_e() - _Tp(1) / __x; + const unsigned int __max_iter = 100000; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + const _Tp __term = __x / (__k * (__k + __x)); + __sum += __term; + if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) + break; + } + return __sum; + } +# 386 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi_asymp(_Tp __x) + { + _Tp __sum = std::log(__x) - _Tp(0.5L) / __x; + const _Tp __xx = __x * __x; + _Tp __xp = __xx; + const unsigned int __max_iter = 100; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + const _Tp __term = __bernoulli<_Tp>(2 * __k) / (2 * __k * __xp); + __sum -= __term; + if (std::abs(__term / __sum) < std::numeric_limits<_Tp>::epsilon()) + break; + __xp *= __xx; + } + return __sum; + } +# 417 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi(_Tp __x) + { + const int __n = static_cast(__x + 0.5L); + const _Tp __eps = _Tp(4) * std::numeric_limits<_Tp>::epsilon(); + if (__n <= 0 && std::abs(__x - _Tp(__n)) < __eps) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x < _Tp(0)) + { + const _Tp __pi = __numeric_constants<_Tp>::__pi(); + return __psi(_Tp(1) - __x) + - __pi * std::cos(__pi * __x) / std::sin(__pi * __x); + } + else if (__x > _Tp(100)) + return __psi_asymp(__x); + else + return __psi_series(__x); + } +# 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 + template + _Tp + __psi(unsigned int __n, _Tp __x) + { + if (__x <= _Tp(0)) + std::__throw_domain_error(("Argument out of range " "in __psi") + ); + else if (__n == 0) + return __psi(__x); + else + { + const _Tp __hzeta = __hurwitz_zeta(_Tp(__n + 1), __x); + + const _Tp __ln_nfact = ::std::lgamma(_Tp(__n + 1)); + + + + _Tp __result = std::exp(__ln_nfact) * __hzeta; + if (__n % 2 == 1) + __result = -__result; + return __result; + } + } + } + + + + + + +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 1 3 +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + namespace __detail + { +# 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __gamma_temme(_Tp __mu, + _Tp & __gam1, _Tp & __gam2, _Tp & __gampl, _Tp & __gammi) + { + + __gampl = _Tp(1) / ::std::tgamma(_Tp(1) + __mu); + __gammi = _Tp(1) / ::std::tgamma(_Tp(1) - __mu); + + + + + + if (std::abs(__mu) < std::numeric_limits<_Tp>::epsilon()) + __gam1 = -_Tp(__numeric_constants<_Tp>::__gamma_e()); + else + __gam1 = (__gammi - __gampl) / (_Tp(2) * __mu); + + __gam2 = (__gammi + __gampl) / (_Tp(2)); + + return; + } +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __bessel_jn(_Tp __nu, _Tp __x, + _Tp & __Jnu, _Tp & __Nnu, _Tp & __Jpnu, _Tp & __Npnu) + { + if (__x == _Tp(0)) + { + if (__nu == _Tp(0)) + { + __Jnu = _Tp(1); + __Jpnu = _Tp(0); + } + else if (__nu == _Tp(1)) + { + __Jnu = _Tp(0); + __Jpnu = _Tp(0.5L); + } + else + { + __Jnu = _Tp(0); + __Jpnu = _Tp(0); + } + __Nnu = -std::numeric_limits<_Tp>::infinity(); + __Npnu = std::numeric_limits<_Tp>::infinity(); + return; + } + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + + + + const _Tp __fp_min = std::sqrt(std::numeric_limits<_Tp>::min()); + const int __max_iter = 15000; + const _Tp __x_min = _Tp(2); + + const int __nl = (__x < __x_min + ? static_cast(__nu + _Tp(0.5L)) + : std::max(0, static_cast(__nu - __x + _Tp(1.5L)))); + + const _Tp __mu = __nu - __nl; + const _Tp __mu2 = __mu * __mu; + const _Tp __xi = _Tp(1) / __x; + const _Tp __xi2 = _Tp(2) * __xi; + _Tp __w = __xi2 / __numeric_constants<_Tp>::__pi(); + int __isign = 1; + _Tp __h = __nu * __xi; + if (__h < __fp_min) + __h = __fp_min; + _Tp __b = __xi2 * __nu; + _Tp __d = _Tp(0); + _Tp __c = __h; + int __i; + for (__i = 1; __i <= __max_iter; ++__i) + { + __b += __xi2; + __d = __b - __d; + if (std::abs(__d) < __fp_min) + __d = __fp_min; + __c = __b - _Tp(1) / __c; + if (std::abs(__c) < __fp_min) + __c = __fp_min; + __d = _Tp(1) / __d; + const _Tp __del = __c * __d; + __h *= __del; + if (__d < _Tp(0)) + __isign = -__isign; + if (std::abs(__del - _Tp(1)) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Argument x too large in __bessel_jn; " "try asymptotic expansion.") + ); + _Tp __Jnul = __isign * __fp_min; + _Tp __Jpnul = __h * __Jnul; + _Tp __Jnul1 = __Jnul; + _Tp __Jpnu1 = __Jpnul; + _Tp __fact = __nu * __xi; + for ( int __l = __nl; __l >= 1; --__l ) + { + const _Tp __Jnutemp = __fact * __Jnul + __Jpnul; + __fact -= __xi; + __Jpnul = __fact * __Jnutemp - __Jnul; + __Jnul = __Jnutemp; + } + if (__Jnul == _Tp(0)) + __Jnul = __eps; + _Tp __f= __Jpnul / __Jnul; + _Tp __Nmu, __Nnu1, __Npmu, __Jmu; + if (__x < __x_min) + { + const _Tp __x2 = __x / _Tp(2); + const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; + _Tp __fact = (std::abs(__pimu) < __eps + ? _Tp(1) : __pimu / std::sin(__pimu)); + _Tp __d = -std::log(__x2); + _Tp __e = __mu * __d; + _Tp __fact2 = (std::abs(__e) < __eps + ? _Tp(1) : std::sinh(__e) / __e); + _Tp __gam1, __gam2, __gampl, __gammi; + __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); + _Tp __ff = (_Tp(2) / __numeric_constants<_Tp>::__pi()) + * __fact * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); + __e = std::exp(__e); + _Tp __p = __e / (__numeric_constants<_Tp>::__pi() * __gampl); + _Tp __q = _Tp(1) / (__e * __numeric_constants<_Tp>::__pi() * __gammi); + const _Tp __pimu2 = __pimu / _Tp(2); + _Tp __fact3 = (std::abs(__pimu2) < __eps + ? _Tp(1) : std::sin(__pimu2) / __pimu2 ); + _Tp __r = __numeric_constants<_Tp>::__pi() * __pimu2 * __fact3 * __fact3; + _Tp __c = _Tp(1); + __d = -__x2 * __x2; + _Tp __sum = __ff + __r * __q; + _Tp __sum1 = __p; + for (__i = 1; __i <= __max_iter; ++__i) + { + __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); + __c *= __d / _Tp(__i); + __p /= _Tp(__i) - __mu; + __q /= _Tp(__i) + __mu; + const _Tp __del = __c * (__ff + __r * __q); + __sum += __del; + const _Tp __del1 = __c * __p - __i * __del; + __sum1 += __del1; + if ( std::abs(__del) < __eps * (_Tp(1) + std::abs(__sum)) ) + break; + } + if ( __i > __max_iter ) + std::__throw_runtime_error(("Bessel y series failed to converge " "in __bessel_jn.") + ); + __Nmu = -__sum; + __Nnu1 = -__sum1 * __xi2; + __Npmu = __mu * __xi * __Nmu - __Nnu1; + __Jmu = __w / (__Npmu - __f * __Nmu); + } + else + { + _Tp __a = _Tp(0.25L) - __mu2; + _Tp __q = _Tp(1); + _Tp __p = -__xi / _Tp(2); + _Tp __br = _Tp(2) * __x; + _Tp __bi = _Tp(2); + _Tp __fact = __a * __xi / (__p * __p + __q * __q); + _Tp __cr = __br + __q * __fact; + _Tp __ci = __bi + __p * __fact; + _Tp __den = __br * __br + __bi * __bi; + _Tp __dr = __br / __den; + _Tp __di = -__bi / __den; + _Tp __dlr = __cr * __dr - __ci * __di; + _Tp __dli = __cr * __di + __ci * __dr; + _Tp __temp = __p * __dlr - __q * __dli; + __q = __p * __dli + __q * __dlr; + __p = __temp; + int __i; + for (__i = 2; __i <= __max_iter; ++__i) + { + __a += _Tp(2 * (__i - 1)); + __bi += _Tp(2); + __dr = __a * __dr + __br; + __di = __a * __di + __bi; + if (std::abs(__dr) + std::abs(__di) < __fp_min) + __dr = __fp_min; + __fact = __a / (__cr * __cr + __ci * __ci); + __cr = __br + __cr * __fact; + __ci = __bi - __ci * __fact; + if (std::abs(__cr) + std::abs(__ci) < __fp_min) + __cr = __fp_min; + __den = __dr * __dr + __di * __di; + __dr /= __den; + __di /= -__den; + __dlr = __cr * __dr - __ci * __di; + __dli = __cr * __di + __ci * __dr; + __temp = __p * __dlr - __q * __dli; + __q = __p * __dli + __q * __dlr; + __p = __temp; + if (std::abs(__dlr - _Tp(1)) + std::abs(__dli) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Lentz's method failed " "in __bessel_jn.") + ); + const _Tp __gam = (__p - __f) / __q; + __Jmu = std::sqrt(__w / ((__p - __f) * __gam + __q)); + + __Jmu = ::std::copysign(__Jmu, __Jnul); + + + + + __Nmu = __gam * __Jmu; + __Npmu = (__p + __q / __gam) * __Nmu; + __Nnu1 = __mu * __xi * __Nmu - __Npmu; + } + __fact = __Jmu / __Jnul; + __Jnu = __fact * __Jnul1; + __Jpnu = __fact * __Jpnu1; + for (__i = 1; __i <= __nl; ++__i) + { + const _Tp __Nnutemp = (__mu + __i) * __xi2 * __Nnu1 - __Nmu; + __Nmu = __Nnu1; + __Nnu1 = __Nnutemp; + } + __Nnu = __Nmu; + __Npnu = __nu * __xi * __Nmu - __Nnu1; + + return; + } +# 361 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __cyl_bessel_jn_asymp(_Tp __nu, _Tp __x, _Tp & __Jnu, _Tp & __Nnu) + { + const _Tp __mu = _Tp(4) * __nu * __nu; + const _Tp __8x = _Tp(8) * __x; + + _Tp __P = _Tp(0); + _Tp __Q = _Tp(0); + + _Tp __k = _Tp(0); + _Tp __term = _Tp(1); + + int __epsP = 0; + int __epsQ = 0; + + _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + do + { + __term *= (__k == 0 + ? _Tp(1) + : -(__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x)); + + __epsP = std::abs(__term) < __eps * std::abs(__P); + __P += __term; + + __k++; + + __term *= (__mu - (2 * __k - 1) * (2 * __k - 1)) / (__k * __8x); + __epsQ = std::abs(__term) < __eps * std::abs(__Q); + __Q += __term; + + if (__epsP && __epsQ && __k > (__nu / 2.)) + break; + + __k++; + } + while (__k < 1000); + + const _Tp __chi = __x - (__nu + _Tp(0.5L)) + * __numeric_constants<_Tp>::__pi_2(); + + const _Tp __c = std::cos(__chi); + const _Tp __s = std::sin(__chi); + + const _Tp __coef = std::sqrt(_Tp(2) + / (__numeric_constants<_Tp>::__pi() * __x)); + + __Jnu = __coef * (__c * __P - __s * __Q); + __Nnu = __coef * (__s * __P + __c * __Q); + + return; + } +# 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_bessel_ij_series(_Tp __nu, _Tp __x, _Tp __sgn, + unsigned int __max_iter) + { + if (__x == _Tp(0)) + return __nu == _Tp(0) ? _Tp(1) : _Tp(0); + + const _Tp __x2 = __x / _Tp(2); + _Tp __fact = __nu * std::log(__x2); + + __fact -= ::std::lgamma(__nu + _Tp(1)); + + + + __fact = std::exp(__fact); + const _Tp __xx4 = __sgn * __x2 * __x2; + _Tp __Jn = _Tp(1); + _Tp __term = _Tp(1); + + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= __xx4 / (_Tp(__i) * (__nu + _Tp(__i))); + __Jn += __term; + if (std::abs(__term / __Jn) < std::numeric_limits<_Tp>::epsilon()) + break; + } + + return __fact * __Jn; + } +# 490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_bessel_j(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_j.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) + return __cyl_bessel_ij_series(__nu, __x, -_Tp(1), 200); + else if (__x > _Tp(1000)) + { + _Tp __J_nu, __N_nu; + __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); + return __J_nu; + } + else + { + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + return __J_nu; + } + } +# 532 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __cyl_neumann_n(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_neumann_n.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x > _Tp(1000)) + { + _Tp __J_nu, __N_nu; + __cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); + return __N_nu; + } + else + { + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + return __N_nu; + } + } +# 569 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + void + __sph_bessel_jn(unsigned int __n, _Tp __x, + _Tp & __j_n, _Tp & __n_n, _Tp & __jp_n, _Tp & __np_n) + { + const _Tp __nu = _Tp(__n) + _Tp(0.5L); + + _Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; + __bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); + + const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() + / std::sqrt(__x); + + __j_n = __factor * __J_nu; + __n_n = __factor * __N_nu; + __jp_n = __factor * __Jp_nu - __j_n / (_Tp(2) * __x); + __np_n = __factor * __Np_nu - __n_n / (_Tp(2) * __x); + + return; + } +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __sph_bessel(unsigned int __n, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __sph_bessel.") + ); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == _Tp(0)) + { + if (__n == 0) + return _Tp(1); + else + return _Tp(0); + } + else + { + _Tp __j_n, __n_n, __jp_n, __np_n; + __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); + return __j_n; + } + } +# 642 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 + template + _Tp + __sph_neumann(unsigned int __n, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __sph_neumann.") + ); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == _Tp(0)) + return -std::numeric_limits<_Tp>::infinity(); + else + { + _Tp __j_n, __n_n, __jp_n, __np_n; + __sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); + return __n_n; + } + } + } + + + + + + +} +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + namespace __detail + { +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_gamma(_Tp __x, _Tp __y) + { + + _Tp __bet; + + if (__x > __y) + { + __bet = ::std::tgamma(__x) + / ::std::tgamma(__x + __y); + __bet *= ::std::tgamma(__y); + } + else + { + __bet = ::std::tgamma(__y) + / ::std::tgamma(__x + __y); + __bet *= ::std::tgamma(__x); + } +# 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + return __bet; + } +# 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_lgamma(_Tp __x, _Tp __y) + { + + _Tp __bet = ::std::lgamma(__x) + + ::std::lgamma(__y) + - ::std::lgamma(__x + __y); + + + + + + __bet = std::exp(__bet); + return __bet; + } +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + _Tp + __beta_product(_Tp __x, _Tp __y) + { + + _Tp __bet = (__x + __y) / (__x * __y); + + unsigned int __max_iter = 1000000; + for (unsigned int __k = 1; __k < __max_iter; ++__k) + { + _Tp __term = (_Tp(1) + (__x + __y) / __k) + / ((_Tp(1) + __x / __k) * (_Tp(1) + __y / __k)); + __bet *= __term; + } + + return __bet; + } +# 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 + template + inline _Tp + __beta(_Tp __x, _Tp __y) + { + if (__isnan(__x) || __isnan(__y)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __beta_lgamma(__x, __y); + } + } + + + + + + +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 1 3 +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + namespace __detail + { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rf(_Tp __x, _Tp __y, _Tp __z) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = _Tp(5) * __min; + + if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rf.") + ); + else if (__x + __y < __lolim || __x + __z < __lolim + || __y + __z < __lolim) + std::__throw_domain_error(("Argument too small in __ellint_rf")); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(1) / _Tp(24); + const _Tp __c2 = _Tp(1) / _Tp(10); + const _Tp __c3 = _Tp(3) / _Tp(44); + const _Tp __c4 = _Tp(1) / _Tp(14); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps, _Tp(1) / _Tp(6)); + _Tp __mu; + _Tp __xndev, __yndev, __zndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + __zn) / _Tp(3); + __xndev = 2 - (__mu + __xn) / __mu; + __yndev = 2 - (__mu + __yn) / __mu; + __zndev = 2 - (__mu + __zn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + if (__epsilon < __errtol) + break; + const _Tp __xnroot = std::sqrt(__xn); + const _Tp __ynroot = std::sqrt(__yn); + const _Tp __znroot = std::sqrt(__zn); + const _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + } + + const _Tp __e2 = __xndev * __yndev - __zndev * __zndev; + const _Tp __e3 = __xndev * __yndev * __zndev; + const _Tp __s = _Tp(1) + (__c1 * __e2 - __c2 - __c3 * __e3) * __e2 + + __c4 * __e3; + + return __s / std::sqrt(__mu); + } + } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_1_series(_Tp __k) + { + + const _Tp __kk = __k * __k; + + _Tp __term = __kk / _Tp(4); + _Tp __sum = _Tp(1) + __term; + + const unsigned int __max_iter = 1000; + for (unsigned int __i = 2; __i < __max_iter; ++__i) + { + __term *= (2 * __i - 1) * __kk / (2 * __i); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return __numeric_constants<_Tp>::__pi_2() * __sum; + } +# 191 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_1(_Tp __k) + { + + if (__isnan(__k)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) >= _Tp(1)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __ellint_rf(_Tp(0), _Tp(1) - __k * __k, _Tp(1)); + } +# 219 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_1(_Tp __k, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_1.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __s = std::sin(__phi_red); + const _Tp __c = std::cos(__phi_red); + + const _Tp __F = __s + * __ellint_rf(__c * __c, + _Tp(1) - __k * __k * __s * __s, _Tp(1)); + + if (__n == 0) + return __F; + else + return __F + _Tp(2) * __n * __comp_ellint_1(__k); + } + } +# 266 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_2_series(_Tp __k) + { + + const _Tp __kk = __k * __k; + + _Tp __term = __kk; + _Tp __sum = __term; + + const unsigned int __max_iter = 1000; + for (unsigned int __i = 2; __i < __max_iter; ++__i) + { + const _Tp __i2m = 2 * __i - 1; + const _Tp __i2 = 2 * __i; + __term *= __i2m * __i2m * __kk / (__i2 * __i2); + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term / __i2m; + } + + return __numeric_constants<_Tp>::__pi_2() * (_Tp(1) - __sum); + } +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rd(_Tp __x, _Tp __y, _Tp __z) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); + const _Tp __max = std::numeric_limits<_Tp>::max(); + const _Tp __lolim = _Tp(2) / std::pow(__max, _Tp(2) / _Tp(3)); + + if (__x < _Tp(0) || __y < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rd.") + ); + else if (__x + __y < __lolim || __z < __lolim) + std::__throw_domain_error(("Argument too small " "in __ellint_rd.") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(3) / _Tp(14); + const _Tp __c2 = _Tp(1) / _Tp(6); + const _Tp __c3 = _Tp(9) / _Tp(22); + const _Tp __c4 = _Tp(3) / _Tp(26); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + _Tp __sigma = _Tp(0); + _Tp __power4 = _Tp(1); + + _Tp __mu; + _Tp __xndev, __yndev, __zndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + _Tp(3) * __zn) / _Tp(5); + __xndev = (__mu - __xn) / __mu; + __yndev = (__mu - __yn) / __mu; + __zndev = (__mu - __zn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + if (__epsilon < __errtol) + break; + _Tp __xnroot = std::sqrt(__xn); + _Tp __ynroot = std::sqrt(__yn); + _Tp __znroot = std::sqrt(__zn); + _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + __sigma += __power4 / (__znroot * (__zn + __lambda)); + __power4 *= __c0; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + } + + _Tp __ea = __xndev * __yndev; + _Tp __eb = __zndev * __zndev; + _Tp __ec = __ea - __eb; + _Tp __ed = __ea - _Tp(6) * __eb; + _Tp __ef = __ed + __ec + __ec; + _Tp __s1 = __ed * (-__c1 + __c3 * __ed + / _Tp(3) - _Tp(3) * __c4 * __zndev * __ef + / _Tp(2)); + _Tp __s2 = __zndev + * (__c2 * __ef + + __zndev * (-__c3 * __ec - __zndev * __c4 - __ea)); + + return _Tp(3) * __sigma + __power4 * (_Tp(1) + __s1 + __s2) + / (__mu * std::sqrt(__mu)); + } + } +# 399 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_2(_Tp __k) + { + + if (__isnan(__k)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) == 1) + return _Tp(1); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __comp_ellint_2.")); + else + { + const _Tp __kk = __k * __k; + + return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) + - __kk * __ellint_rd(_Tp(0), _Tp(1) - __kk, _Tp(1)) / _Tp(3); + } + } +# 433 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_2(_Tp __k, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_2.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __kk = __k * __k; + const _Tp __s = std::sin(__phi_red); + const _Tp __ss = __s * __s; + const _Tp __sss = __ss * __s; + const _Tp __c = std::cos(__phi_red); + const _Tp __cc = __c * __c; + + const _Tp __E = __s + * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + - __kk * __sss + * __ellint_rd(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + / _Tp(3); + + if (__n == 0) + return __E; + else + return __E + _Tp(2) * __n * __comp_ellint_2(__k); + } + } +# 492 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rc(_Tp __x, _Tp __y) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = _Tp(5) * __min; + + if (__x < _Tp(0) || __y < _Tp(0) || __x + __y < __lolim) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rc.") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(1) / _Tp(7); + const _Tp __c2 = _Tp(9) / _Tp(22); + const _Tp __c3 = _Tp(3) / _Tp(10); + const _Tp __c4 = _Tp(3) / _Tp(8); + + _Tp __xn = __x; + _Tp __yn = __y; + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(30), _Tp(1) / _Tp(6)); + _Tp __mu; + _Tp __sn; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + _Tp(2) * __yn) / _Tp(3); + __sn = (__yn + __mu) / __mu - _Tp(2); + if (std::abs(__sn) < __errtol) + break; + const _Tp __lambda = _Tp(2) * std::sqrt(__xn) * std::sqrt(__yn) + + __yn; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + } + + _Tp __s = __sn * __sn + * (__c3 + __sn*(__c1 + __sn * (__c4 + __sn * __c2))); + + return (_Tp(1) + __s) / std::sqrt(__mu); + } + } +# 561 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_rj(_Tp __x, _Tp __y, _Tp __z, _Tp __p) + { + const _Tp __min = std::numeric_limits<_Tp>::min(); + const _Tp __lolim = std::pow(_Tp(5) * __min, _Tp(1)/_Tp(3)); + + if (__x < _Tp(0) || __y < _Tp(0) || __z < _Tp(0)) + std::__throw_domain_error(("Argument less than zero " "in __ellint_rj.") + ); + else if (__x + __y < __lolim || __x + __z < __lolim + || __y + __z < __lolim || __p < __lolim) + std::__throw_domain_error(("Argument too small " "in __ellint_rj") + ); + else + { + const _Tp __c0 = _Tp(1) / _Tp(4); + const _Tp __c1 = _Tp(3) / _Tp(14); + const _Tp __c2 = _Tp(1) / _Tp(3); + const _Tp __c3 = _Tp(3) / _Tp(22); + const _Tp __c4 = _Tp(3) / _Tp(26); + + _Tp __xn = __x; + _Tp __yn = __y; + _Tp __zn = __z; + _Tp __pn = __p; + _Tp __sigma = _Tp(0); + _Tp __power4 = _Tp(1); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __errtol = std::pow(__eps / _Tp(8), _Tp(1) / _Tp(6)); + + _Tp __mu; + _Tp __xndev, __yndev, __zndev, __pndev; + + const unsigned int __max_iter = 100; + for (unsigned int __iter = 0; __iter < __max_iter; ++__iter) + { + __mu = (__xn + __yn + __zn + _Tp(2) * __pn) / _Tp(5); + __xndev = (__mu - __xn) / __mu; + __yndev = (__mu - __yn) / __mu; + __zndev = (__mu - __zn) / __mu; + __pndev = (__mu - __pn) / __mu; + _Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); + __epsilon = std::max(__epsilon, std::abs(__zndev)); + __epsilon = std::max(__epsilon, std::abs(__pndev)); + if (__epsilon < __errtol) + break; + const _Tp __xnroot = std::sqrt(__xn); + const _Tp __ynroot = std::sqrt(__yn); + const _Tp __znroot = std::sqrt(__zn); + const _Tp __lambda = __xnroot * (__ynroot + __znroot) + + __ynroot * __znroot; + const _Tp __alpha1 = __pn * (__xnroot + __ynroot + __znroot) + + __xnroot * __ynroot * __znroot; + const _Tp __alpha2 = __alpha1 * __alpha1; + const _Tp __beta = __pn * (__pn + __lambda) + * (__pn + __lambda); + __sigma += __power4 * __ellint_rc(__alpha2, __beta); + __power4 *= __c0; + __xn = __c0 * (__xn + __lambda); + __yn = __c0 * (__yn + __lambda); + __zn = __c0 * (__zn + __lambda); + __pn = __c0 * (__pn + __lambda); + } + + _Tp __ea = __xndev * (__yndev + __zndev) + __yndev * __zndev; + _Tp __eb = __xndev * __yndev * __zndev; + _Tp __ec = __pndev * __pndev; + _Tp __e2 = __ea - _Tp(3) * __ec; + _Tp __e3 = __eb + _Tp(2) * __pndev * (__ea - __ec); + _Tp __s1 = _Tp(1) + __e2 * (-__c1 + _Tp(3) * __c3 * __e2 / _Tp(4) + - _Tp(3) * __c4 * __e3 / _Tp(2)); + _Tp __s2 = __eb * (__c2 / _Tp(2) + + __pndev * (-__c3 - __c3 + __pndev * __c4)); + _Tp __s3 = __pndev * __ea * (__c2 - __pndev * __c3) + - __c2 * __pndev * __ec; + + return _Tp(3) * __sigma + __power4 * (__s1 + __s2 + __s3) + / (__mu * std::sqrt(__mu)); + } + } +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __comp_ellint_3(_Tp __k, _Tp __nu) + { + + if (__isnan(__k) || __isnan(__nu)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__nu == _Tp(1)) + return std::numeric_limits<_Tp>::infinity(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __comp_ellint_3.")); + else + { + const _Tp __kk = __k * __k; + + return __ellint_rf(_Tp(0), _Tp(1) - __kk, _Tp(1)) + + __nu + * __ellint_rj(_Tp(0), _Tp(1) - __kk, _Tp(1), _Tp(1) - __nu) + / _Tp(3); + } + } +# 701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 + template + _Tp + __ellint_3(_Tp __k, _Tp __nu, _Tp __phi) + { + + if (__isnan(__k) || __isnan(__nu) || __isnan(__phi)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (std::abs(__k) > _Tp(1)) + std::__throw_domain_error(("Bad argument in __ellint_3.")); + else + { + + const int __n = std::floor(__phi / __numeric_constants<_Tp>::__pi() + + _Tp(0.5L)); + const _Tp __phi_red = __phi + - __n * __numeric_constants<_Tp>::__pi(); + + const _Tp __kk = __k * __k; + const _Tp __s = std::sin(__phi_red); + const _Tp __ss = __s * __s; + const _Tp __sss = __ss * __s; + const _Tp __c = std::cos(__phi_red); + const _Tp __cc = __c * __c; + + const _Tp __Pi = __s + * __ellint_rf(__cc, _Tp(1) - __kk * __ss, _Tp(1)) + + __nu * __sss + * __ellint_rj(__cc, _Tp(1) - __kk * __ss, _Tp(1), + _Tp(1) - __nu * __ss) / _Tp(3); + + if (__n == 0) + return __Pi; + else + return __Pi + _Tp(2) * __n * __comp_ellint_3(__k, __nu); + } + } + } + + + + + +} +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 1 3 +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + namespace __detail + { + template _Tp __expint_E1(_Tp); +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1_series(_Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + _Tp __term = _Tp(1); + _Tp __esum = _Tp(0); + _Tp __osum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= - __x / __i; + if (std::abs(__term) < __eps) + break; + if (__term >= _Tp(0)) + __esum += __term / __i; + else + __osum += __term / __i; + } + + return - __esum - __osum + - __numeric_constants<_Tp>::__gamma_e() - std::log(__x); + } +# 118 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1_asymp(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __esum = _Tp(1); + _Tp __osum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + _Tp __prev = __term; + __term *= - __i / __x; + if (std::abs(__term) > std::abs(__prev)) + break; + if (__term >= _Tp(0)) + __esum += __term; + else + __osum += __term; + } + + return std::exp(- __x) * (__esum + __osum) / __x; + } +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_series(unsigned int __n, _Tp __x) + { + const unsigned int __max_iter = 1000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const int __nm1 = __n - 1; + _Tp __ans = (__nm1 != 0 + ? _Tp(1) / __nm1 : -std::log(__x) + - __numeric_constants<_Tp>::__gamma_e()); + _Tp __fact = _Tp(1); + for (int __i = 1; __i <= __max_iter; ++__i) + { + __fact *= -__x / _Tp(__i); + _Tp __del; + if ( __i != __nm1 ) + __del = -__fact / _Tp(__i - __nm1); + else + { + _Tp __psi = -__numeric_constants<_Tp>::gamma_e(); + for (int __ii = 1; __ii <= __nm1; ++__ii) + __psi += _Tp(1) / _Tp(__ii); + __del = __fact * (__psi - std::log(__x)); + } + __ans += __del; + if (std::abs(__del) < __eps * std::abs(__ans)) + return __ans; + } + std::__throw_runtime_error(("Series summation failed " "in __expint_En_series.") + ); + } +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_cont_frac(unsigned int __n, _Tp __x) + { + const unsigned int __max_iter = 1000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __fp_min = std::numeric_limits<_Tp>::min(); + const int __nm1 = __n - 1; + _Tp __b = __x + _Tp(__n); + _Tp __c = _Tp(1) / __fp_min; + _Tp __d = _Tp(1) / __b; + _Tp __h = __d; + for ( unsigned int __i = 1; __i <= __max_iter; ++__i ) + { + _Tp __a = -_Tp(__i * (__nm1 + __i)); + __b += _Tp(2); + __d = _Tp(1) / (__a * __d + __b); + __c = __b + __a / __c; + const _Tp __del = __c * __d; + __h *= __del; + if (std::abs(__del - _Tp(1)) < __eps) + { + const _Tp __ans = __h * std::exp(-__x); + return __ans; + } + } + std::__throw_runtime_error(("Continued fraction failed " "in __expint_En_cont_frac.") + ); + } +# 246 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_En_recursion(unsigned int __n, _Tp __x) + { + _Tp __En; + _Tp __E1 = __expint_E1(__x); + if (__x < _Tp(__n)) + { + + __En = __E1; + for (unsigned int __j = 2; __j < __n; ++__j) + __En = (std::exp(-__x) - __x * __En) / _Tp(__j - 1); + } + else + { + + __En = _Tp(1); + const int __N = __n + 20; + _Tp __save = _Tp(0); + for (int __j = __N; __j > 0; --__j) + { + __En = (std::exp(-__x) - __j * __En) / __x; + if (__j == __n) + __save = __En; + } + _Tp __norm = __En / __E1; + __En /= __norm; + } + + return __En; + } +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei_series(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(0); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + __term *= __x / __i; + __sum += __term / __i; + if (__term < std::numeric_limits<_Tp>::epsilon() * __sum) + break; + } + + return __numeric_constants<_Tp>::__gamma_e() + __sum + std::log(__x); + } +# 321 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei_asymp(_Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + const unsigned int __max_iter = 1000; + for (unsigned int __i = 1; __i < __max_iter; ++__i) + { + _Tp __prev = __term; + __term *= __i / __x; + if (__term < std::numeric_limits<_Tp>::epsilon()) + break; + if (__term >= __prev) + break; + __sum += __term; + } + + return std::exp(__x) * __sum / __x; + } +# 354 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_Ei(_Tp __x) + { + if (__x < _Tp(0)) + return -__expint_E1(-__x); + else if (__x < -std::log(std::numeric_limits<_Tp>::epsilon())) + return __expint_Ei_series(__x); + else + return __expint_Ei_asymp(__x); + } +# 378 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_E1(_Tp __x) + { + if (__x < _Tp(0)) + return -__expint_Ei(-__x); + else if (__x < _Tp(1)) + return __expint_E1_series(__x); + else if (__x < _Tp(100)) + return __expint_En_cont_frac(1, __x); + else + return __expint_E1_asymp(__x); + } +# 408 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_asymp(unsigned int __n, _Tp __x) + { + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + for (unsigned int __i = 1; __i <= __n; ++__i) + { + _Tp __prev = __term; + __term *= -(__n - __i + 1) / __x; + if (std::abs(__term) > std::abs(__prev)) + break; + __sum += __term; + } + + return std::exp(-__x) * __sum / __x; + } +# 442 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint_large_n(unsigned int __n, _Tp __x) + { + const _Tp __xpn = __x + __n; + const _Tp __xpn2 = __xpn * __xpn; + _Tp __term = _Tp(1); + _Tp __sum = _Tp(1); + for (unsigned int __i = 1; __i <= __n; ++__i) + { + _Tp __prev = __term; + __term *= (__n - 2 * (__i - 1) * __x) / __xpn2; + if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) + break; + __sum += __term; + } + + return std::exp(-__x) * __sum / __xpn; + } +# 476 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + _Tp + __expint(unsigned int __n, _Tp __x) + { + + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__n <= 1 && __x == _Tp(0)) + return std::numeric_limits<_Tp>::infinity(); + else + { + _Tp __E0 = std::exp(__x) / __x; + if (__n == 0) + return __E0; + + _Tp __E1 = __expint_E1(__x); + if (__n == 1) + return __E1; + + if (__x == _Tp(0)) + return _Tp(1) / static_cast<_Tp>(__n - 1); + + _Tp __En = __expint_En_recursion(__n, __x); + + return __En; + } + } +# 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 + template + inline _Tp + __expint(_Tp __x) + { + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __expint_Ei(__x); + } + } + + + + + +} +# 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 1 3 +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + namespace __detail + { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg_series(_Tp __a, _Tp __c, _Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + _Tp __term = _Tp(1); + _Tp __Fac = _Tp(1); + const unsigned int __max_iter = 100000; + unsigned int __i; + for (__i = 0; __i < __max_iter; ++__i) + { + __term *= (__a + _Tp(__i)) * __x + / ((__c + _Tp(__i)) * _Tp(1 + __i)); + if (std::abs(__term) < __eps) + { + break; + } + __Fac += __term; + } + if (__i == __max_iter) + std::__throw_runtime_error(("Series failed to converge " "in __conf_hyperg_series.") + ); + + return __Fac; + } +# 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg_luke(_Tp __a, _Tp __c, _Tp __xin) + { + const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); + const int __nmax = 20000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __x = -__xin; + const _Tp __x3 = __x * __x * __x; + const _Tp __t0 = __a / __c; + const _Tp __t1 = (__a + _Tp(1)) / (_Tp(2) * __c); + const _Tp __t2 = (__a + _Tp(2)) / (_Tp(2) * (__c + _Tp(1))); + _Tp __F = _Tp(1); + _Tp __prec; + + _Tp __Bnm3 = _Tp(1); + _Tp __Bnm2 = _Tp(1) + __t1 * __x; + _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); + + _Tp __Anm3 = _Tp(1); + _Tp __Anm2 = __Bnm2 - __t0 * __x; + _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x + + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; + + int __n = 3; + while(1) + { + _Tp __npam1 = _Tp(__n - 1) + __a; + _Tp __npcm1 = _Tp(__n - 1) + __c; + _Tp __npam2 = _Tp(__n - 2) + __a; + _Tp __npcm2 = _Tp(__n - 2) + __c; + _Tp __tnm1 = _Tp(2 * __n - 1); + _Tp __tnm3 = _Tp(2 * __n - 3); + _Tp __tnm5 = _Tp(2 * __n - 5); + _Tp __F1 = (_Tp(__n - 2) - __a) / (_Tp(2) * __tnm3 * __npcm1); + _Tp __F2 = (_Tp(__n) + __a) * __npam1 + / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); + _Tp __F3 = -__npam2 * __npam1 * (_Tp(__n - 2) - __a) + / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 + * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); + _Tp __E = -__npam1 * (_Tp(__n - 1) - __c) + / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); + + _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 + + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; + _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 + + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; + _Tp __r = __An / __Bn; + + __prec = std::abs((__F - __r) / __F); + __F = __r; + + if (__prec < __eps || __n > __nmax) + break; + + if (std::abs(__An) > __big || std::abs(__Bn) > __big) + { + __An /= __big; + __Bn /= __big; + __Anm1 /= __big; + __Bnm1 /= __big; + __Anm2 /= __big; + __Bnm2 /= __big; + __Anm3 /= __big; + __Bnm3 /= __big; + } + else if (std::abs(__An) < _Tp(1) / __big + || std::abs(__Bn) < _Tp(1) / __big) + { + __An *= __big; + __Bn *= __big; + __Anm1 *= __big; + __Bnm1 *= __big; + __Anm2 *= __big; + __Bnm2 *= __big; + __Anm3 *= __big; + __Bnm3 *= __big; + } + + ++__n; + __Bnm3 = __Bnm2; + __Bnm2 = __Bnm1; + __Bnm1 = __Bn; + __Anm3 = __Anm2; + __Anm2 = __Anm1; + __Anm1 = __An; + } + + if (__n >= __nmax) + std::__throw_runtime_error(("Iteration failed to converge " "in __conf_hyperg_luke.") + ); + + return __F; + } +# 227 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __conf_hyperg(_Tp __a, _Tp __c, _Tp __x) + { + + const _Tp __c_nint = ::std::nearbyint(__c); + + + + if (__isnan(__a) || __isnan(__c) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__c_nint == __c && __c_nint <= 0) + return std::numeric_limits<_Tp>::infinity(); + else if (__a == _Tp(0)) + return _Tp(1); + else if (__c == __a) + return std::exp(__x); + else if (__x < _Tp(0)) + return __conf_hyperg_luke(__a, __c, __x); + else + return __conf_hyperg_series(__a, __c, __x); + } +# 271 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg_series(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + _Tp __term = _Tp(1); + _Tp __Fabc = _Tp(1); + const unsigned int __max_iter = 100000; + unsigned int __i; + for (__i = 0; __i < __max_iter; ++__i) + { + __term *= (__a + _Tp(__i)) * (__b + _Tp(__i)) * __x + / ((__c + _Tp(__i)) * _Tp(1 + __i)); + if (std::abs(__term) < __eps) + { + break; + } + __Fabc += __term; + } + if (__i == __max_iter) + std::__throw_runtime_error(("Series failed to converge " "in __hyperg_series.") + ); + + return __Fabc; + } + + + + + + + + template + _Tp + __hyperg_luke(_Tp __a, _Tp __b, _Tp __c, _Tp __xin) + { + const _Tp __big = std::pow(std::numeric_limits<_Tp>::max(), _Tp(0.16L)); + const int __nmax = 20000; + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __x = -__xin; + const _Tp __x3 = __x * __x * __x; + const _Tp __t0 = __a * __b / __c; + const _Tp __t1 = (__a + _Tp(1)) * (__b + _Tp(1)) / (_Tp(2) * __c); + const _Tp __t2 = (__a + _Tp(2)) * (__b + _Tp(2)) + / (_Tp(2) * (__c + _Tp(1))); + + _Tp __F = _Tp(1); + + _Tp __Bnm3 = _Tp(1); + _Tp __Bnm2 = _Tp(1) + __t1 * __x; + _Tp __Bnm1 = _Tp(1) + __t2 * __x * (_Tp(1) + __t1 / _Tp(3) * __x); + + _Tp __Anm3 = _Tp(1); + _Tp __Anm2 = __Bnm2 - __t0 * __x; + _Tp __Anm1 = __Bnm1 - __t0 * (_Tp(1) + __t2 * __x) * __x + + __t0 * __t1 * (__c / (__c + _Tp(1))) * __x * __x; + + int __n = 3; + while (1) + { + const _Tp __npam1 = _Tp(__n - 1) + __a; + const _Tp __npbm1 = _Tp(__n - 1) + __b; + const _Tp __npcm1 = _Tp(__n - 1) + __c; + const _Tp __npam2 = _Tp(__n - 2) + __a; + const _Tp __npbm2 = _Tp(__n - 2) + __b; + const _Tp __npcm2 = _Tp(__n - 2) + __c; + const _Tp __tnm1 = _Tp(2 * __n - 1); + const _Tp __tnm3 = _Tp(2 * __n - 3); + const _Tp __tnm5 = _Tp(2 * __n - 5); + const _Tp __n2 = __n * __n; + const _Tp __F1 = (_Tp(3) * __n2 + (__a + __b - _Tp(6)) * __n + + _Tp(2) - __a * __b - _Tp(2) * (__a + __b)) + / (_Tp(2) * __tnm3 * __npcm1); + const _Tp __F2 = -(_Tp(3) * __n2 - (__a + __b + _Tp(6)) * __n + + _Tp(2) - __a * __b) * __npam1 * __npbm1 + / (_Tp(4) * __tnm1 * __tnm3 * __npcm2 * __npcm1); + const _Tp __F3 = (__npam2 * __npam1 * __npbm2 * __npbm1 + * (_Tp(__n - 2) - __a) * (_Tp(__n - 2) - __b)) + / (_Tp(8) * __tnm3 * __tnm3 * __tnm5 + * (_Tp(__n - 3) + __c) * __npcm2 * __npcm1); + const _Tp __E = -__npam1 * __npbm1 * (_Tp(__n - 1) - __c) + / (_Tp(2) * __tnm3 * __npcm2 * __npcm1); + + _Tp __An = (_Tp(1) + __F1 * __x) * __Anm1 + + (__E + __F2 * __x) * __x * __Anm2 + __F3 * __x3 * __Anm3; + _Tp __Bn = (_Tp(1) + __F1 * __x) * __Bnm1 + + (__E + __F2 * __x) * __x * __Bnm2 + __F3 * __x3 * __Bnm3; + const _Tp __r = __An / __Bn; + + const _Tp __prec = std::abs((__F - __r) / __F); + __F = __r; + + if (__prec < __eps || __n > __nmax) + break; + + if (std::abs(__An) > __big || std::abs(__Bn) > __big) + { + __An /= __big; + __Bn /= __big; + __Anm1 /= __big; + __Bnm1 /= __big; + __Anm2 /= __big; + __Bnm2 /= __big; + __Anm3 /= __big; + __Bnm3 /= __big; + } + else if (std::abs(__An) < _Tp(1) / __big + || std::abs(__Bn) < _Tp(1) / __big) + { + __An *= __big; + __Bn *= __big; + __Anm1 *= __big; + __Bnm1 *= __big; + __Anm2 *= __big; + __Bnm2 *= __big; + __Anm3 *= __big; + __Bnm3 *= __big; + } + + ++__n; + __Bnm3 = __Bnm2; + __Bnm2 = __Bnm1; + __Bnm1 = __Bn; + __Anm3 = __Anm2; + __Anm2 = __Anm1; + __Anm1 = __An; + } + + if (__n >= __nmax) + std::__throw_runtime_error(("Iteration failed to converge " "in __hyperg_luke.") + ); + + return __F; + } +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg_reflect(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + const _Tp __d = __c - __a - __b; + const int __intd = std::floor(__d + _Tp(0.5L)); + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __toler = _Tp(1000) * __eps; + const _Tp __log_max = std::log(std::numeric_limits<_Tp>::max()); + const bool __d_integer = (std::abs(__d - __intd) < __toler); + + if (__d_integer) + { + const _Tp __ln_omx = std::log(_Tp(1) - __x); + const _Tp __ad = std::abs(__d); + _Tp __F1, __F2; + + _Tp __d1, __d2; + if (__d >= _Tp(0)) + { + __d1 = __d; + __d2 = _Tp(0); + } + else + { + __d1 = _Tp(0); + __d2 = __d; + } + + const _Tp __lng_c = __log_gamma(__c); + + + if (__ad < __eps) + { + + __F1 = _Tp(0); + } + else + { + + bool __ok_d1 = true; + _Tp __lng_ad, __lng_ad1, __lng_bd1; + try + { + __lng_ad = __log_gamma(__ad); + __lng_ad1 = __log_gamma(__a + __d1); + __lng_bd1 = __log_gamma(__b + __d1); + } + catch(...) + { + __ok_d1 = false; + } + + if (__ok_d1) + { + + + + _Tp __sum1 = _Tp(1); + _Tp __term = _Tp(1); + _Tp __ln_pre1 = __lng_ad + __lng_c + __d2 * __ln_omx + - __lng_ad1 - __lng_bd1; + + + + for (int __i = 1; __i < __ad; ++__i) + { + const int __j = __i - 1; + __term *= (__a + __d2 + __j) * (__b + __d2 + __j) + / (_Tp(1) + __d2 + __j) / __i * (_Tp(1) - __x); + __sum1 += __term; + } + + if (__ln_pre1 > __log_max) + std::__throw_runtime_error(("Overflow of gamma functions" " in __hyperg_luke.") + ); + else + __F1 = std::exp(__ln_pre1) * __sum1; + } + else + { + + + __F1 = _Tp(0); + } + } + + + bool __ok_d2 = true; + _Tp __lng_ad2, __lng_bd2; + try + { + __lng_ad2 = __log_gamma(__a + __d2); + __lng_bd2 = __log_gamma(__b + __d2); + } + catch(...) + { + __ok_d2 = false; + } + + if (__ok_d2) + { + + + const int __maxiter = 2000; + const _Tp __psi_1 = -__numeric_constants<_Tp>::__gamma_e(); + const _Tp __psi_1pd = __psi(_Tp(1) + __ad); + const _Tp __psi_apd1 = __psi(__a + __d1); + const _Tp __psi_bpd1 = __psi(__b + __d1); + + _Tp __psi_term = __psi_1 + __psi_1pd - __psi_apd1 + - __psi_bpd1 - __ln_omx; + _Tp __fact = _Tp(1); + _Tp __sum2 = __psi_term; + _Tp __ln_pre2 = __lng_c + __d1 * __ln_omx + - __lng_ad2 - __lng_bd2; + + + int __j; + for (__j = 1; __j < __maxiter; ++__j) + { + + + const _Tp __term1 = _Tp(1) / _Tp(__j) + + _Tp(1) / (__ad + __j); + const _Tp __term2 = _Tp(1) / (__a + __d1 + _Tp(__j - 1)) + + _Tp(1) / (__b + __d1 + _Tp(__j - 1)); + __psi_term += __term1 - __term2; + __fact *= (__a + __d1 + _Tp(__j - 1)) + * (__b + __d1 + _Tp(__j - 1)) + / ((__ad + __j) * __j) * (_Tp(1) - __x); + const _Tp __delta = __fact * __psi_term; + __sum2 += __delta; + if (std::abs(__delta) < __eps * std::abs(__sum2)) + break; + } + if (__j == __maxiter) + std::__throw_runtime_error(("Sum F2 failed to converge " "in __hyperg_reflect") + ); + + if (__sum2 == _Tp(0)) + __F2 = _Tp(0); + else + __F2 = std::exp(__ln_pre2) * __sum2; + } + else + { + + + __F2 = _Tp(0); + } + + const _Tp __sgn_2 = (__intd % 2 == 1 ? -_Tp(1) : _Tp(1)); + const _Tp __F = __F1 + __sgn_2 * __F2; + + return __F; + } + else + { + + + + + bool __ok1 = true; + _Tp __sgn_g1ca = _Tp(0), __ln_g1ca = _Tp(0); + _Tp __sgn_g1cb = _Tp(0), __ln_g1cb = _Tp(0); + try + { + __sgn_g1ca = __log_gamma_sign(__c - __a); + __ln_g1ca = __log_gamma(__c - __a); + __sgn_g1cb = __log_gamma_sign(__c - __b); + __ln_g1cb = __log_gamma(__c - __b); + } + catch(...) + { + __ok1 = false; + } + + bool __ok2 = true; + _Tp __sgn_g2a = _Tp(0), __ln_g2a = _Tp(0); + _Tp __sgn_g2b = _Tp(0), __ln_g2b = _Tp(0); + try + { + __sgn_g2a = __log_gamma_sign(__a); + __ln_g2a = __log_gamma(__a); + __sgn_g2b = __log_gamma_sign(__b); + __ln_g2b = __log_gamma(__b); + } + catch(...) + { + __ok2 = false; + } + + const _Tp __sgn_gc = __log_gamma_sign(__c); + const _Tp __ln_gc = __log_gamma(__c); + const _Tp __sgn_gd = __log_gamma_sign(__d); + const _Tp __ln_gd = __log_gamma(__d); + const _Tp __sgn_gmd = __log_gamma_sign(-__d); + const _Tp __ln_gmd = __log_gamma(-__d); + + const _Tp __sgn1 = __sgn_gc * __sgn_gd * __sgn_g1ca * __sgn_g1cb; + const _Tp __sgn2 = __sgn_gc * __sgn_gmd * __sgn_g2a * __sgn_g2b; + + _Tp __pre1, __pre2; + if (__ok1 && __ok2) + { + _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; + _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b + + __d * std::log(_Tp(1) - __x); + if (__ln_pre1 < __log_max && __ln_pre2 < __log_max) + { + __pre1 = std::exp(__ln_pre1); + __pre2 = std::exp(__ln_pre2); + __pre1 *= __sgn1; + __pre2 *= __sgn2; + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else if (__ok1 && !__ok2) + { + _Tp __ln_pre1 = __ln_gc + __ln_gd - __ln_g1ca - __ln_g1cb; + if (__ln_pre1 < __log_max) + { + __pre1 = std::exp(__ln_pre1); + __pre1 *= __sgn1; + __pre2 = _Tp(0); + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else if (!__ok1 && __ok2) + { + _Tp __ln_pre2 = __ln_gc + __ln_gmd - __ln_g2a - __ln_g2b + + __d * std::log(_Tp(1) - __x); + if (__ln_pre2 < __log_max) + { + __pre1 = _Tp(0); + __pre2 = std::exp(__ln_pre2); + __pre2 *= __sgn2; + } + else + { + std::__throw_runtime_error(("Overflow of gamma functions " "in __hyperg_reflect") + ); + } + } + else + { + __pre1 = _Tp(0); + __pre2 = _Tp(0); + std::__throw_runtime_error(("Underflow of gamma functions " "in __hyperg_reflect") + ); + } + + const _Tp __F1 = __hyperg_series(__a, __b, _Tp(1) - __d, + _Tp(1) - __x); + const _Tp __F2 = __hyperg_series(__c - __a, __c - __b, _Tp(1) + __d, + _Tp(1) - __x); + + const _Tp __F = __pre1 * __F1 + __pre2 * __F2; + + return __F; + } + } +# 728 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 + template + _Tp + __hyperg(_Tp __a, _Tp __b, _Tp __c, _Tp __x) + { + + const _Tp __a_nint = ::std::nearbyint(__a); + const _Tp __b_nint = ::std::nearbyint(__b); + const _Tp __c_nint = ::std::nearbyint(__c); + + + + + + const _Tp __toler = _Tp(1000) * std::numeric_limits<_Tp>::epsilon(); + if (std::abs(__x) >= _Tp(1)) + std::__throw_domain_error(("Argument outside unit circle " "in __hyperg.") + ); + else if (__isnan(__a) || __isnan(__b) + || __isnan(__c) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__c_nint == __c && __c_nint <= _Tp(0)) + return std::numeric_limits<_Tp>::infinity(); + else if (std::abs(__c - __b) < __toler || std::abs(__c - __a) < __toler) + return std::pow(_Tp(1) - __x, __c - __a - __b); + else if (__a >= _Tp(0) && __b >= _Tp(0) && __c >= _Tp(0) + && __x >= _Tp(0) && __x < _Tp(0.995L)) + return __hyperg_series(__a, __b, __c, __x); + else if (std::abs(__a) < _Tp(10) && std::abs(__b) < _Tp(10)) + { + + + if (__a < _Tp(0) && std::abs(__a - __a_nint) < __toler) + return __hyperg_series(__a_nint, __b, __c, __x); + else if (__b < _Tp(0) && std::abs(__b - __b_nint) < __toler) + return __hyperg_series(__a, __b_nint, __c, __x); + else if (__x < -_Tp(0.25L)) + return __hyperg_luke(__a, __b, __c, __x); + else if (__x < _Tp(0.5L)) + return __hyperg_series(__a, __b, __c, __x); + else + if (std::abs(__c) > _Tp(10)) + return __hyperg_series(__a, __b, __c, __x); + else + return __hyperg_reflect(__a, __b, __c, __x); + } + else + return __hyperg_luke(__a, __b, __c, __x); + } + } + + + + + + +} +# 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 1 3 +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + namespace __detail + { +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __poly_legendre_p(unsigned int __l, _Tp __x) + { + + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x == +_Tp(1)) + return +_Tp(1); + else if (__x == -_Tp(1)) + return (__l % 2 == 1 ? -_Tp(1) : +_Tp(1)); + else + { + _Tp __p_lm2 = _Tp(1); + if (__l == 0) + return __p_lm2; + + _Tp __p_lm1 = __x; + if (__l == 1) + return __p_lm1; + + _Tp __p_l = 0; + for (unsigned int __ll = 2; __ll <= __l; ++__ll) + { + + + __p_l = _Tp(2) * __x * __p_lm1 - __p_lm2 + - (__x * __p_lm1 - __p_lm2) / _Tp(__ll); + __p_lm2 = __p_lm1; + __p_lm1 = __p_l; + } + + return __p_l; + } + } +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __assoc_legendre_p(unsigned int __l, unsigned int __m, _Tp __x, + _Tp __phase = _Tp(+1)) + { + + if (__m > __l) + return _Tp(0); + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__m == 0) + return __poly_legendre_p(__l, __x); + else + { + _Tp __p_mm = _Tp(1); + if (__m > 0) + { + + + _Tp __root = std::sqrt(_Tp(1) - __x) * std::sqrt(_Tp(1) + __x); + _Tp __fact = _Tp(1); + for (unsigned int __i = 1; __i <= __m; ++__i) + { + __p_mm *= __phase * __fact * __root; + __fact += _Tp(2); + } + } + if (__l == __m) + return __p_mm; + + _Tp __p_mp1m = _Tp(2 * __m + 1) * __x * __p_mm; + if (__l == __m + 1) + return __p_mp1m; + + _Tp __p_lm2m = __p_mm; + _Tp __P_lm1m = __p_mp1m; + _Tp __p_lm = _Tp(0); + for (unsigned int __j = __m + 2; __j <= __l; ++__j) + { + __p_lm = (_Tp(2 * __j - 1) * __x * __P_lm1m + - _Tp(__j + __m - 1) * __p_lm2m) / _Tp(__j - __m); + __p_lm2m = __P_lm1m; + __P_lm1m = __p_lm; + } + + return __p_lm; + } + } +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 + template + _Tp + __sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) + { + if (__isnan(__theta)) + return std::numeric_limits<_Tp>::quiet_NaN(); + + const _Tp __x = std::cos(__theta); + + if (__m > __l) + return _Tp(0); + else if (__m == 0) + { + _Tp __P = __poly_legendre_p(__l, __x); + _Tp __fact = std::sqrt(_Tp(2 * __l + 1) + / (_Tp(4) * __numeric_constants<_Tp>::__pi())); + __P *= __fact; + return __P; + } + else if (__x == _Tp(1) || __x == -_Tp(1)) + { + + return _Tp(0); + } + else + { + + + + + + const _Tp __sgn = ( __m % 2 == 1 ? -_Tp(1) : _Tp(1)); + const _Tp __y_mp1m_factor = __x * std::sqrt(_Tp(2 * __m + 3)); + + const _Tp __lncirc = ::std::log1p(-__x * __x); + + + + + + const _Tp __lnpoch = ::std::lgamma(_Tp(__m + _Tp(0.5L))) + - ::std::lgamma(_Tp(__m)); + + + + + const _Tp __lnpre_val = + -_Tp(0.25L) * __numeric_constants<_Tp>::__lnpi() + + _Tp(0.5L) * (__lnpoch + __m * __lncirc); + const _Tp __sr = std::sqrt((_Tp(2) + _Tp(1) / __m) + / (_Tp(4) * __numeric_constants<_Tp>::__pi())); + _Tp __y_mm = __sgn * __sr * std::exp(__lnpre_val); + _Tp __y_mp1m = __y_mp1m_factor * __y_mm; + + if (__l == __m) + return __y_mm; + else if (__l == __m + 1) + return __y_mp1m; + else + { + _Tp __y_lm = _Tp(0); + + + for (unsigned int __ll = __m + 2; __ll <= __l; ++__ll) + { + const _Tp __rat1 = _Tp(__ll - __m) / _Tp(__ll + __m); + const _Tp __rat2 = _Tp(__ll - __m - 1) / _Tp(__ll + __m - 1); + const _Tp __fact1 = std::sqrt(__rat1 * _Tp(2 * __ll + 1) + * _Tp(2 * __ll - 1)); + const _Tp __fact2 = std::sqrt(__rat1 * __rat2 * _Tp(2 * __ll + 1) + / _Tp(2 * __ll - 3)); + __y_lm = (__x * __y_mp1m * __fact1 + - (__ll + __m - 1) * __y_mm * __fact2) / _Tp(__ll - __m); + __y_mm = __y_mp1m; + __y_mp1m = __y_lm; + } + + return __y_lm; + } + } + } + } + + + + + + +} +# 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 1 3 +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + namespace __detail + { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __bessel_ik(_Tp __nu, _Tp __x, + _Tp & __Inu, _Tp & __Knu, _Tp & __Ipnu, _Tp & __Kpnu) + { + if (__x == _Tp(0)) + { + if (__nu == _Tp(0)) + { + __Inu = _Tp(1); + __Ipnu = _Tp(0); + } + else if (__nu == _Tp(1)) + { + __Inu = _Tp(0); + __Ipnu = _Tp(0.5L); + } + else + { + __Inu = _Tp(0); + __Ipnu = _Tp(0); + } + __Knu = std::numeric_limits<_Tp>::infinity(); + __Kpnu = -std::numeric_limits<_Tp>::infinity(); + return; + } + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + const _Tp __fp_min = _Tp(10) * std::numeric_limits<_Tp>::epsilon(); + const int __max_iter = 15000; + const _Tp __x_min = _Tp(2); + + const int __nl = static_cast(__nu + _Tp(0.5L)); + + const _Tp __mu = __nu - __nl; + const _Tp __mu2 = __mu * __mu; + const _Tp __xi = _Tp(1) / __x; + const _Tp __xi2 = _Tp(2) * __xi; + _Tp __h = __nu * __xi; + if ( __h < __fp_min ) + __h = __fp_min; + _Tp __b = __xi2 * __nu; + _Tp __d = _Tp(0); + _Tp __c = __h; + int __i; + for ( __i = 1; __i <= __max_iter; ++__i ) + { + __b += __xi2; + __d = _Tp(1) / (__b + __d); + __c = __b + _Tp(1) / __c; + const _Tp __del = __c * __d; + __h *= __del; + if (std::abs(__del - _Tp(1)) < __eps) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Argument x too large " "in __bessel_ik; " "try asymptotic expansion.") + + ); + _Tp __Inul = __fp_min; + _Tp __Ipnul = __h * __Inul; + _Tp __Inul1 = __Inul; + _Tp __Ipnu1 = __Ipnul; + _Tp __fact = __nu * __xi; + for (int __l = __nl; __l >= 1; --__l) + { + const _Tp __Inutemp = __fact * __Inul + __Ipnul; + __fact -= __xi; + __Ipnul = __fact * __Inutemp + __Inul; + __Inul = __Inutemp; + } + _Tp __f = __Ipnul / __Inul; + _Tp __Kmu, __Knu1; + if (__x < __x_min) + { + const _Tp __x2 = __x / _Tp(2); + const _Tp __pimu = __numeric_constants<_Tp>::__pi() * __mu; + const _Tp __fact = (std::abs(__pimu) < __eps + ? _Tp(1) : __pimu / std::sin(__pimu)); + _Tp __d = -std::log(__x2); + _Tp __e = __mu * __d; + const _Tp __fact2 = (std::abs(__e) < __eps + ? _Tp(1) : std::sinh(__e) / __e); + _Tp __gam1, __gam2, __gampl, __gammi; + __gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); + _Tp __ff = __fact + * (__gam1 * std::cosh(__e) + __gam2 * __fact2 * __d); + _Tp __sum = __ff; + __e = std::exp(__e); + _Tp __p = __e / (_Tp(2) * __gampl); + _Tp __q = _Tp(1) / (_Tp(2) * __e * __gammi); + _Tp __c = _Tp(1); + __d = __x2 * __x2; + _Tp __sum1 = __p; + int __i; + for (__i = 1; __i <= __max_iter; ++__i) + { + __ff = (__i * __ff + __p + __q) / (__i * __i - __mu2); + __c *= __d / __i; + __p /= __i - __mu; + __q /= __i + __mu; + const _Tp __del = __c * __ff; + __sum += __del; + const _Tp __del1 = __c * (__p - __i * __ff); + __sum1 += __del1; + if (std::abs(__del) < __eps * std::abs(__sum)) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Bessel k series failed to converge " "in __bessel_ik.") + ); + __Kmu = __sum; + __Knu1 = __sum1 * __xi2; + } + else + { + _Tp __b = _Tp(2) * (_Tp(1) + __x); + _Tp __d = _Tp(1) / __b; + _Tp __delh = __d; + _Tp __h = __delh; + _Tp __q1 = _Tp(0); + _Tp __q2 = _Tp(1); + _Tp __a1 = _Tp(0.25L) - __mu2; + _Tp __q = __c = __a1; + _Tp __a = -__a1; + _Tp __s = _Tp(1) + __q * __delh; + int __i; + for (__i = 2; __i <= __max_iter; ++__i) + { + __a -= 2 * (__i - 1); + __c = -__a * __c / __i; + const _Tp __qnew = (__q1 - __b * __q2) / __a; + __q1 = __q2; + __q2 = __qnew; + __q += __c * __qnew; + __b += _Tp(2); + __d = _Tp(1) / (__b + __a * __d); + __delh = (__b * __d - _Tp(1)) * __delh; + __h += __delh; + const _Tp __dels = __q * __delh; + __s += __dels; + if ( std::abs(__dels / __s) < __eps ) + break; + } + if (__i > __max_iter) + std::__throw_runtime_error(("Steed's method failed " "in __bessel_ik.") + ); + __h = __a1 * __h; + __Kmu = std::sqrt(__numeric_constants<_Tp>::__pi() / (_Tp(2) * __x)) + * std::exp(-__x) / __s; + __Knu1 = __Kmu * (__mu + __x + _Tp(0.5L) - __h) * __xi; + } + + _Tp __Kpmu = __mu * __xi * __Kmu - __Knu1; + _Tp __Inumu = __xi / (__f * __Kmu - __Kpmu); + __Inu = __Inumu * __Inul1 / __Inul; + __Ipnu = __Inumu * __Ipnu1 / __Inul; + for ( __i = 1; __i <= __nl; ++__i ) + { + const _Tp __Knutemp = (__mu + __i) * __xi2 * __Knu1 + __Kmu; + __Kmu = __Knu1; + __Knu1 = __Knutemp; + } + __Knu = __Kmu; + __Kpnu = __nu * __xi * __Kmu - __Knu1; + + return; + } +# 267 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + _Tp + __cyl_bessel_i(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_i.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__x * __x < _Tp(10) * (__nu + _Tp(1))) + return __cyl_bessel_ij_series(__nu, __x, +_Tp(1), 200); + else + { + _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + return __I_nu; + } + } +# 303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + _Tp + __cyl_bessel_k(_Tp __nu, _Tp __x) + { + if (__nu < _Tp(0) || __x < _Tp(0)) + std::__throw_domain_error(("Bad argument " "in __cyl_bessel_k.") + ); + else if (__isnan(__nu) || __isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + { + _Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + return __K_nu; + } + } +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __sph_bessel_ik(unsigned int __n, _Tp __x, + _Tp & __i_n, _Tp & __k_n, _Tp & __ip_n, _Tp & __kp_n) + { + const _Tp __nu = _Tp(__n) + _Tp(0.5L); + + _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; + __bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + + const _Tp __factor = __numeric_constants<_Tp>::__sqrtpio2() + / std::sqrt(__x); + + __i_n = __factor * __I_nu; + __k_n = __factor * __K_nu; + __ip_n = __factor * __Ip_nu - __i_n / (_Tp(2) * __x); + __kp_n = __factor * __Kp_nu - __k_n / (_Tp(2) * __x); + + return; + } +# 373 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 + template + void + __airy(_Tp __x, _Tp & __Ai, _Tp & __Bi, _Tp & __Aip, _Tp & __Bip) + { + const _Tp __absx = std::abs(__x); + const _Tp __rootx = std::sqrt(__absx); + const _Tp __z = _Tp(2) * __absx * __rootx / _Tp(3); + const _Tp _S_inf = std::numeric_limits<_Tp>::infinity(); + + if (__isnan(__x)) + __Bip = __Aip = __Bi = __Ai = std::numeric_limits<_Tp>::quiet_NaN(); + else if (__z == _S_inf) + { + __Aip = __Ai = _Tp(0); + __Bip = __Bi = _S_inf; + } + else if (__z == -_S_inf) + __Bip = __Aip = __Bi = __Ai = _Tp(0); + else if (__x > _Tp(0)) + { + _Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; + + __bessel_ik(_Tp(1) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + __Ai = __rootx * __K_nu + / (__numeric_constants<_Tp>::__sqrt3() + * __numeric_constants<_Tp>::__pi()); + __Bi = __rootx * (__K_nu / __numeric_constants<_Tp>::__pi() + + _Tp(2) * __I_nu / __numeric_constants<_Tp>::__sqrt3()); + + __bessel_ik(_Tp(2) / _Tp(3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); + __Aip = -__x * __K_nu + / (__numeric_constants<_Tp>::__sqrt3() + * __numeric_constants<_Tp>::__pi()); + __Bip = __x * (__K_nu / __numeric_constants<_Tp>::__pi() + + _Tp(2) * __I_nu + / __numeric_constants<_Tp>::__sqrt3()); + } + else if (__x < _Tp(0)) + { + _Tp __J_nu, __Jp_nu, __N_nu, __Np_nu; + + __bessel_jn(_Tp(1) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); + __Ai = __rootx * (__J_nu + - __N_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); + __Bi = -__rootx * (__N_nu + + __J_nu / __numeric_constants<_Tp>::__sqrt3()) / _Tp(2); + + __bessel_jn(_Tp(2) / _Tp(3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); + __Aip = __absx * (__N_nu / __numeric_constants<_Tp>::__sqrt3() + + __J_nu) / _Tp(2); + __Bip = __absx * (__J_nu / __numeric_constants<_Tp>::__sqrt3() + - __N_nu) / _Tp(2); + } + else + { + + + + __Ai = _Tp(0.35502805388781723926L); + __Bi = __Ai * __numeric_constants<_Tp>::__sqrt3(); + + + + + __Aip = -_Tp(0.25881940379280679840L); + __Bip = -__Aip * __numeric_constants<_Tp>::__sqrt3(); + } + + return; + } + } + + + + + +} +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 1 3 +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + namespace __detail + { +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + template + _Tp + __poly_hermite_recursion(unsigned int __n, _Tp __x) + { + + _Tp __H_0 = 1; + if (__n == 0) + return __H_0; + + + _Tp __H_1 = 2 * __x; + if (__n == 1) + return __H_1; + + + _Tp __H_n, __H_nm1, __H_nm2; + unsigned int __i; + for (__H_nm2 = __H_0, __H_nm1 = __H_1, __i = 2; __i <= __n; ++__i) + { + __H_n = 2 * (__x * __H_nm1 - (__i - 1) * __H_nm2); + __H_nm2 = __H_nm1; + __H_nm1 = __H_n; + } + + return __H_n; + } +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 + template + inline _Tp + __poly_hermite(unsigned int __n, _Tp __x) + { + if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else + return __poly_hermite_recursion(__n, __x); + } + } + + + + + +} +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 1 3 +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + namespace __detail + { +# 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_large_n(unsigned __n, _Tpa __alpha1, _Tp __x) + { + const _Tp __a = -_Tp(__n); + const _Tp __b = _Tp(__alpha1) + _Tp(1); + const _Tp __eta = _Tp(2) * __b - _Tp(4) * __a; + const _Tp __cos2th = __x / __eta; + const _Tp __sin2th = _Tp(1) - __cos2th; + const _Tp __th = std::acos(std::sqrt(__cos2th)); + const _Tp __pre_h = __numeric_constants<_Tp>::__pi_2() + * __numeric_constants<_Tp>::__pi_2() + * __eta * __eta * __cos2th * __sin2th; + + + const _Tp __lg_b = ::std::lgamma(_Tp(__n) + __b); + const _Tp __lnfact = ::std::lgamma(_Tp(__n + 1)); + + + + + + _Tp __pre_term1 = _Tp(0.5L) * (_Tp(1) - __b) + * std::log(_Tp(0.25L) * __x * __eta); + _Tp __pre_term2 = _Tp(0.25L) * std::log(__pre_h); + _Tp __lnpre = __lg_b - __lnfact + _Tp(0.5L) * __x + + __pre_term1 - __pre_term2; + _Tp __ser_term1 = std::sin(__a * __numeric_constants<_Tp>::__pi()); + _Tp __ser_term2 = std::sin(_Tp(0.25L) * __eta + * (_Tp(2) * __th + - std::sin(_Tp(2) * __th)) + + __numeric_constants<_Tp>::__pi_4()); + _Tp __ser = __ser_term1 + __ser_term2; + + return std::exp(__lnpre) * __ser; + } +# 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_hyperg(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + const _Tp __b = _Tp(__alpha1) + _Tp(1); + const _Tp __mx = -__x; + const _Tp __tc_sgn = (__x < _Tp(0) ? _Tp(1) + : ((__n % 2 == 1) ? -_Tp(1) : _Tp(1))); + + _Tp __tc = _Tp(1); + const _Tp __ax = std::abs(__x); + for (unsigned int __k = 1; __k <= __n; ++__k) + __tc *= (__ax / __k); + + _Tp __term = __tc * __tc_sgn; + _Tp __sum = __term; + for (int __k = int(__n) - 1; __k >= 0; --__k) + { + __term *= ((__b + _Tp(__k)) / _Tp(int(__n) - __k)) + * _Tp(__k + 1) / __mx; + __sum += __term; + } + + return __sum; + } +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre_recursion(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + + _Tp __l_0 = _Tp(1); + if (__n == 0) + return __l_0; + + + _Tp __l_1 = -__x + _Tp(1) + _Tp(__alpha1); + if (__n == 1) + return __l_1; + + + _Tp __l_n2 = __l_0; + _Tp __l_n1 = __l_1; + _Tp __l_n = _Tp(0); + for (unsigned int __nn = 2; __nn <= __n; ++__nn) + { + __l_n = (_Tp(2 * __nn - 1) + _Tp(__alpha1) - __x) + * __l_n1 / _Tp(__nn) + - (_Tp(__nn - 1) + _Tp(__alpha1)) * __l_n2 / _Tp(__nn); + __l_n2 = __l_n1; + __l_n1 = __l_n; + } + + return __l_n; + } +# 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + _Tp + __poly_laguerre(unsigned int __n, _Tpa __alpha1, _Tp __x) + { + if (__x < _Tp(0)) + std::__throw_domain_error(("Negative argument " "in __poly_laguerre.") + ); + + else if (__isnan(__x)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__n == 0) + return _Tp(1); + else if (__n == 1) + return _Tp(1) + _Tp(__alpha1) - __x; + else if (__x == _Tp(0)) + { + _Tp __prod = _Tp(__alpha1) + _Tp(1); + for (unsigned int __k = 2; __k <= __n; ++__k) + __prod *= (_Tp(__alpha1) + _Tp(__k)) / _Tp(__k); + return __prod; + } + else if (__n > 10000000 && _Tp(__alpha1) > -_Tp(1) + && __x < _Tp(2) * (_Tp(__alpha1) + _Tp(1)) + _Tp(4 * __n)) + return __poly_laguerre_large_n(__n, __alpha1, __x); + else if (_Tp(__alpha1) >= _Tp(0) + || (__x > _Tp(0) && _Tp(__alpha1) < -_Tp(__n + 1))) + return __poly_laguerre_recursion(__n, __alpha1, __x); + else + return __poly_laguerre_hyperg(__n, __alpha1, __x); + } +# 296 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) + { return __poly_laguerre(__n, __m, __x); } +# 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __laguerre(unsigned int __n, _Tp __x) + { return __poly_laguerre(__n, 0, __x); } + } + + + + + + +} +# 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + namespace __detail + { +# 78 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_sum(_Tp __s) + { + + if (__s < _Tp(1)) + std::__throw_domain_error(("Bad argument in zeta sum.")); + + const unsigned int max_iter = 10000; + _Tp __zeta = _Tp(0); + for (unsigned int __k = 1; __k < max_iter; ++__k) + { + _Tp __term = std::pow(static_cast<_Tp>(__k), -__s); + if (__term < std::numeric_limits<_Tp>::epsilon()) + { + break; + } + __zeta += __term; + } + + return __zeta; + } +# 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_alt(_Tp __s) + { + _Tp __sgn = _Tp(1); + _Tp __zeta = _Tp(0); + for (unsigned int __i = 1; __i < 10000000; ++__i) + { + _Tp __term = __sgn / std::pow(__i, __s); + if (std::abs(__term) < std::numeric_limits<_Tp>::epsilon()) + break; + __zeta += __term; + __sgn *= _Tp(-1); + } + __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); + + return __zeta; + } +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_glob(_Tp __s) + { + _Tp __zeta = _Tp(0); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + + + if (__s < _Tp(0)) + { + + if (::std::fmod(__s,_Tp(2)) == _Tp(0)) + return _Tp(0); + else + + { + _Tp __zeta = __riemann_zeta_glob(_Tp(1) - __s); + __zeta *= std::pow(_Tp(2) + * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * std::exp(::std::lgamma(_Tp(1) - __s)) + + + + / __numeric_constants<_Tp>::__pi(); + return __zeta; + } + } + + _Tp __num = _Tp(0.5L); + const unsigned int __maxit = 10000; + for (unsigned int __i = 0; __i < __maxit; ++__i) + { + bool __punt = false; + _Tp __sgn = _Tp(1); + _Tp __term = _Tp(0); + for (unsigned int __j = 0; __j <= __i; ++__j) + { + + _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) + - ::std::lgamma(_Tp(1 + __j)) + - ::std::lgamma(_Tp(1 + __i - __j)); + + + + + + if (__bincoeff > __max_bincoeff) + { + + __punt = true; + break; + } + __bincoeff = std::exp(__bincoeff); + __term += __sgn * __bincoeff * std::pow(_Tp(1 + __j), -__s); + __sgn *= _Tp(-1); + } + if (__punt) + break; + __term *= __num; + __zeta += __term; + if (std::abs(__term/__zeta) < __eps) + break; + __num *= _Tp(0.5L); + } + + __zeta /= _Tp(1) - std::pow(_Tp(2), _Tp(1) - __s); + + return __zeta; + } +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta_product(_Tp __s) + { + static const _Tp __prime[] = { + _Tp(2), _Tp(3), _Tp(5), _Tp(7), _Tp(11), _Tp(13), _Tp(17), _Tp(19), + _Tp(23), _Tp(29), _Tp(31), _Tp(37), _Tp(41), _Tp(43), _Tp(47), + _Tp(53), _Tp(59), _Tp(61), _Tp(67), _Tp(71), _Tp(73), _Tp(79), + _Tp(83), _Tp(89), _Tp(97), _Tp(101), _Tp(103), _Tp(107), _Tp(109) + }; + static const unsigned int __num_primes = sizeof(__prime) / sizeof(_Tp); + + _Tp __zeta = _Tp(1); + for (unsigned int __i = 0; __i < __num_primes; ++__i) + { + const _Tp __fact = _Tp(1) - std::pow(__prime[__i], -__s); + __zeta *= __fact; + if (_Tp(1) - __fact < std::numeric_limits<_Tp>::epsilon()) + break; + } + + __zeta = _Tp(1) / __zeta; + + return __zeta; + } +# 293 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __riemann_zeta(_Tp __s) + { + if (__isnan(__s)) + return std::numeric_limits<_Tp>::quiet_NaN(); + else if (__s == _Tp(1)) + return std::numeric_limits<_Tp>::infinity(); + else if (__s < -_Tp(19)) + { + _Tp __zeta = __riemann_zeta_product(_Tp(1) - __s); + __zeta *= std::pow(_Tp(2) * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * std::exp(::std::lgamma(_Tp(1) - __s)) + + + + / __numeric_constants<_Tp>::__pi(); + return __zeta; + } + else if (__s < _Tp(20)) + { + + bool __glob = true; + if (__glob) + return __riemann_zeta_glob(__s); + else + { + if (__s > _Tp(1)) + return __riemann_zeta_sum(__s); + else + { + _Tp __zeta = std::pow(_Tp(2) + * __numeric_constants<_Tp>::__pi(), __s) + * std::sin(__numeric_constants<_Tp>::__pi_2() * __s) + + * ::std::tgamma(_Tp(1) - __s) + + + + * __riemann_zeta_sum(_Tp(1) - __s); + return __zeta; + } + } + } + else + return __riemann_zeta_product(__s); + } +# 365 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + _Tp + __hurwitz_zeta_glob(_Tp __a, _Tp __s) + { + _Tp __zeta = _Tp(0); + + const _Tp __eps = std::numeric_limits<_Tp>::epsilon(); + + const _Tp __max_bincoeff = std::numeric_limits<_Tp>::max_exponent10 + * std::log(_Tp(10)) - _Tp(1); + + const unsigned int __maxit = 10000; + for (unsigned int __i = 0; __i < __maxit; ++__i) + { + bool __punt = false; + _Tp __sgn = _Tp(1); + _Tp __term = _Tp(0); + for (unsigned int __j = 0; __j <= __i; ++__j) + { + + _Tp __bincoeff = ::std::lgamma(_Tp(1 + __i)) + - ::std::lgamma(_Tp(1 + __j)) + - ::std::lgamma(_Tp(1 + __i - __j)); + + + + + + if (__bincoeff > __max_bincoeff) + { + + __punt = true; + break; + } + __bincoeff = std::exp(__bincoeff); + __term += __sgn * __bincoeff * std::pow(_Tp(__a + __j), -__s); + __sgn *= _Tp(-1); + } + if (__punt) + break; + __term /= _Tp(__i + 1); + if (std::abs(__term / __zeta) < __eps) + break; + __zeta += __term; + } + + __zeta /= __s - _Tp(1); + + return __zeta; + } +# 430 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 + template + inline _Tp + __hurwitz_zeta(_Tp __a, _Tp __s) + { return __hurwitz_zeta_glob(__a, __s); } + } + + + + + + +} +# 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 203 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + assoc_laguerref(unsigned int __n, unsigned int __m, float __x) + { return __detail::__assoc_laguerre(__n, __m, __x); } + + + + + + + + inline long double + assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x) + { return __detail::__assoc_laguerre(__n, __m, __x); } +# 248 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__assoc_laguerre<__type>(__n, __m, __x); + } +# 264 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + assoc_legendref(unsigned int __l, unsigned int __m, float __x) + { return __detail::__assoc_legendre_p(__l, __m, __x); } + + + + + + + inline long double + assoc_legendrel(unsigned int __l, unsigned int __m, long double __x) + { return __detail::__assoc_legendre_p(__l, __m, __x); } +# 294 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__assoc_legendre_p<__type>(__l, __m, __x); + } +# 309 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + betaf(float __a, float __b) + { return __detail::__beta(__a, __b); } + + + + + + + + inline long double + betal(long double __a, long double __b) + { return __detail::__beta(__a, __b); } +# 339 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type + beta(_Tpa __a, _Tpb __b) + { + typedef typename __gnu_cxx::__promote_2<_Tpa, _Tpb>::__type __type; + return __detail::__beta<__type>(__a, __b); + } +# 355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_1f(float __k) + { return __detail::__comp_ellint_1(__k); } + + + + + + + + inline long double + comp_ellint_1l(long double __k) + { return __detail::__comp_ellint_1(__k); } +# 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + comp_ellint_1(_Tp __k) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__comp_ellint_1<__type>(__k); + } +# 403 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_2f(float __k) + { return __detail::__comp_ellint_2(__k); } + + + + + + + + inline long double + comp_ellint_2l(long double __k) + { return __detail::__comp_ellint_2(__k); } +# 434 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + comp_ellint_2(_Tp __k) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__comp_ellint_2<__type>(__k); + } +# 450 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + comp_ellint_3f(float __k, float __nu) + { return __detail::__comp_ellint_3(__k, __nu); } + + + + + + + + inline long double + comp_ellint_3l(long double __k, long double __nu) + { return __detail::__comp_ellint_3(__k, __nu); } +# 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type + comp_ellint_3(_Tp __k, _Tpn __nu) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type; + return __detail::__comp_ellint_3<__type>(__k, __nu); + } +# 501 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_if(float __nu, float __x) + { return __detail::__cyl_bessel_i(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_il(long double __nu, long double __x) + { return __detail::__cyl_bessel_i(__nu, __x); } +# 531 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_i(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_i<__type>(__nu, __x); + } +# 547 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_jf(float __nu, float __x) + { return __detail::__cyl_bessel_j(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_jl(long double __nu, long double __x) + { return __detail::__cyl_bessel_j(__nu, __x); } +# 577 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_j(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_j<__type>(__nu, __x); + } +# 593 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_bessel_kf(float __nu, float __x) + { return __detail::__cyl_bessel_k(__nu, __x); } + + + + + + + + inline long double + cyl_bessel_kl(long double __nu, long double __x) + { return __detail::__cyl_bessel_k(__nu, __x); } +# 629 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_bessel_k(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_bessel_k<__type>(__nu, __x); + } +# 645 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + cyl_neumannf(float __nu, float __x) + { return __detail::__cyl_neumann_n(__nu, __x); } + + + + + + + + inline long double + cyl_neumannl(long double __nu, long double __x) + { return __detail::__cyl_neumann_n(__nu, __x); } +# 677 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type + cyl_neumann(_Tpnu __nu, _Tp __x) + { + typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type; + return __detail::__cyl_neumann_n<__type>(__nu, __x); + } +# 693 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_1f(float __k, float __phi) + { return __detail::__ellint_1(__k, __phi); } + + + + + + + + inline long double + ellint_1l(long double __k, long double __phi) + { return __detail::__ellint_1(__k, __phi); } +# 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type + ellint_1(_Tp __k, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; + return __detail::__ellint_1<__type>(__k, __phi); + } +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_2f(float __k, float __phi) + { return __detail::__ellint_2(__k, __phi); } + + + + + + + + inline long double + ellint_2l(long double __k, long double __phi) + { return __detail::__ellint_2(__k, __phi); } +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type + ellint_2(_Tp __k, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type; + return __detail::__ellint_2<__type>(__k, __phi); + } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + ellint_3f(float __k, float __nu, float __phi) + { return __detail::__ellint_3(__k, __nu, __phi); } + + + + + + + + inline long double + ellint_3l(long double __k, long double __nu, long double __phi) + { return __detail::__ellint_3(__k, __nu, __phi); } +# 826 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type + ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type; + return __detail::__ellint_3<__type>(__k, __nu, __phi); + } +# 841 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + expintf(float __x) + { return __detail::__expint(__x); } + + + + + + + + inline long double + expintl(long double __x) + { return __detail::__expint(__x); } +# 866 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + expint(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__expint<__type>(__x); + } +# 882 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + hermitef(unsigned int __n, float __x) + { return __detail::__poly_hermite(__n, __x); } + + + + + + + + inline long double + hermitel(unsigned int __n, long double __x) + { return __detail::__poly_hermite(__n, __x); } +# 914 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + hermite(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__poly_hermite<__type>(__n, __x); + } +# 930 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + laguerref(unsigned int __n, float __x) + { return __detail::__laguerre(__n, __x); } + + + + + + + + inline long double + laguerrel(unsigned int __n, long double __x) + { return __detail::__laguerre(__n, __x); } +# 958 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + laguerre(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__laguerre<__type>(__n, __x); + } +# 974 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + legendref(unsigned int __l, float __x) + { return __detail::__poly_legendre_p(__l, __x); } + + + + + + + + inline long double + legendrel(unsigned int __l, long double __x) + { return __detail::__poly_legendre_p(__l, __x); } +# 1003 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + legendre(unsigned int __l, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__poly_legendre_p<__type>(__l, __x); + } +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + riemann_zetaf(float __s) + { return __detail::__riemann_zeta(__s); } + + + + + + + + inline long double + riemann_zetal(long double __s) + { return __detail::__riemann_zeta(__s); } +# 1054 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + riemann_zeta(_Tp __s) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__riemann_zeta<__type>(__s); + } +# 1070 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_besself(unsigned int __n, float __x) + { return __detail::__sph_bessel(__n, __x); } + + + + + + + + inline long double + sph_bessell(unsigned int __n, long double __x) + { return __detail::__sph_bessel(__n, __x); } +# 1098 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_bessel(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_bessel<__type>(__n, __x); + } +# 1114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_legendref(unsigned int __l, unsigned int __m, float __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + sph_legendrel(unsigned int __l, unsigned int __m, long double __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_legendre<__type>(__l, __m, __theta); + } +# 1161 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + sph_neumannf(unsigned int __n, float __x) + { return __detail::__sph_neumann(__n, __x); } + + + + + + + + inline long double + sph_neumannl(unsigned int __n, long double __x) + { return __detail::__sph_neumann(__n, __x); } +# 1189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote<_Tp>::__type + sph_neumann(unsigned int __n, _Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + return __detail::__sph_neumann<__type>(__n, __x); + } + + + + +} + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + airy_aif(float __x) + { + float __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + inline long double + airy_ail(long double __x) + { + long double __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + template + inline typename __gnu_cxx::__promote<_Tp>::__type + airy_ai(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + __type __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip); + return __Ai; + } + + + + + inline float + airy_bif(float __x) + { + float __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } + + + + + inline long double + airy_bil(long double __x) + { + long double __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } + + + + + template + inline typename __gnu_cxx::__promote<_Tp>::__type + airy_bi(_Tp __x) + { + typedef typename __gnu_cxx::__promote<_Tp>::__type __type; + __type __Ai, __Bi, __Aip, __Bip; + std::__detail::__airy<__type>(__x, __Ai, __Bi, __Aip, __Bip); + return __Bi; + } +# 1292 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + conf_hypergf(float __a, float __c, float __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + conf_hypergl(long double __a, long double __c, long double __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type + conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x) + { + typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type; + return std::__detail::__conf_hyperg<__type>(__a, __c, __x); + } +# 1340 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline float + hypergf(float __a, float __b, float __c, float __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1351 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + inline long double + hypergl(long double __a, long double __b, long double __c, long double __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1372 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 + template + inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type + hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) + { + typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp> + ::__type __type; + return std::__detail::__hyperg<__type>(__a, __b, __c, __x); + } + + + +} +# 3907 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 2 3 + + +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 2 3 + +using std::abs; +using std::acos; +using std::asin; +using std::atan; +using std::atan2; +using std::cos; +using std::sin; +using std::tan; +using std::cosh; +using std::sinh; +using std::tanh; +using std::exp; +using std::frexp; +using std::ldexp; +using std::log; +using std::log10; +using std::modf; +using std::pow; +using std::sqrt; +using std::ceil; +using std::fabs; +using std::floor; +using std::fmod; + + +using std::fpclassify; +using std::isfinite; +using std::isinf; +using std::isnan; +using std::isnormal; +using std::signbit; +using std::isgreater; +using std::isgreaterequal; +using std::isless; +using std::islessequal; +using std::islessgreater; +using std::isunordered; + + + +using std::acosh; +using std::asinh; +using std::atanh; +using std::cbrt; +using std::copysign; +using std::erf; +using std::erfc; +using std::exp2; +using std::expm1; +using std::fdim; +using std::fma; +using std::fmax; +using std::fmin; +using std::hypot; +using std::ilogb; +using std::lgamma; +using std::llrint; +using std::llround; +using std::log1p; +using std::log2; +using std::logb; +using std::lrint; +using std::lround; +using std::nearbyint; +using std::nextafter; +using std::nexttoward; +using std::remainder; +using std::remquo; +using std::rint; +using std::round; +using std::scalbln; +using std::scalbn; +using std::tgamma; +using std::trunc; +# 4578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 1 3 +# 4579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +# 4582 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 1 3 +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 + +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +# 4583 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" + +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(long double x); +} +# 4832 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std +{ + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __pow_helper(T, int); + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __cmath_power(T, unsigned int); +} + +using std::abs; +using std::fabs; +using std::ceil; +using std::floor; +using std::sqrt; + +using std::pow; + +using std::log; +using std::log10; +using std::fmod; +using std::modf; +using std::exp; +using std::frexp; +using std::ldexp; +using std::asin; +using std::sin; +using std::sinh; +using std::acos; +using std::cos; +using std::cosh; +using std::atan; +using std::atan2; +using std::tan; +using std::tanh; +# 5243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 5252 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int abs(long long int); +# 5272 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int abs(long int a); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float abs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double abs(double); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fabs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ceil(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float floor(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sqrt(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float pow(float, float); + + + + +template +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) +typename __gnu_cxx::__promote_2<_Tp, _Up>::__type pow(_Tp, _Up); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log10(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fmod(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float modf(float, float*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float frexp(float, int*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ldexp(float, int); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float asin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float acos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cosh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan2(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tanh(float); +# 5399 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 5505 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float logb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr int ilogb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbn(float a, int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbln(float a, long int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float exp2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float expm1(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log1p(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float acosh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float asinh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float atanh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float hypot(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float cbrt(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erf(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erfc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float lgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float tgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float copysign(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nextafter(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float remainder(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float remquo(float a, float b, int *quo); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float round(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float trunc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float rint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nearbyint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fdim(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fma(float a, float b, float c); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmax(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmin(float a, float b); +} +# 5644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp10(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rsqrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rcbrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinpi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cospi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincospi(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincos(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float jn(const int n, const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float yn(const int n, const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i0(const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdf(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcx(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const double a, const float b); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const float a, const double b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int min(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int min(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const long long int b); +# 5785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float min(const float a, const float b); +# 5796 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const double b); +# 5806 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const float a, const double b); +# 5816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const float b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int max(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int max(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const long long int b); +# 5915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float max(const float a, const float b); +# 5926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const double b); +# 5936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const float a, const double b); +# 5946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const float b); +# 5958 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C"{ +inline __attribute__((device)) void *__nv_aligned_device_malloc(size_t size, size_t align) +{ + __attribute__((device)) void *__nv_aligned_device_malloc_impl(size_t, size_t); + return __nv_aligned_device_malloc_impl(size, align); +} +} +# 6248 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 1 +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 78 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" 2 +# 758 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +static inline __attribute__((host)) __attribute__((device)) float exp10(const float a) +{ + return exp10f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rsqrt(const float a) +{ + return rsqrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rcbrt(const float a) +{ + return rcbrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float sinpi(const float a) +{ + return sinpif(a); +} + +static inline __attribute__((host)) __attribute__((device)) float cospi(const float a) +{ + return cospif(a); +} + +static inline __attribute__((host)) __attribute__((device)) void sincospi(const float a, float *const sptr, float *const cptr) +{ + sincospif(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) void sincos(const float a, float *const sptr, float *const cptr) +{ + sincosf(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) float j0(const float a) +{ + return j0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float j1(const float a) +{ + return j1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float jn(const int n, const float a) +{ + return jnf(n, a); +} + +static inline __attribute__((host)) __attribute__((device)) float y0(const float a) +{ + return y0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float y1(const float a) +{ + return y1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float yn(const int n, const float a) +{ + return ynf(n, a); +} + +static inline __attribute__((device)) float cyl_bessel_i0(const float a) +{ + return cyl_bessel_i0f(a); +} + +static inline __attribute__((device)) float cyl_bessel_i1(const float a) +{ + return cyl_bessel_i1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfinv(const float a) +{ + return erfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcinv(const float a) +{ + return erfcinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdfinv(const float a) +{ + return normcdfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdf(const float a) +{ + return normcdff(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcx(const float a) +{ + return erfcxf(a); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const double a, const float b) +{ + return copysign(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const float a, const double b) +{ + return copysign(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const unsigned int b) +{ + return umin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const int a, const unsigned int b) +{ + return umin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const int b) +{ + return umin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int min(const long int a, const long int b) +{ + long int retval; + + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(min(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int min(const long long int a, const long long int b) +{ + return llmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b) +{ + return ullmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const long long int a, const unsigned long long int b) +{ + return ullmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const long long int b) +{ + return ullmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float min(const float a, const float b) +{ + return fminf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const double b) +{ + return fmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const float a, const double b) +{ + return fmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const float b) +{ + return fmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const unsigned int b) +{ + return umax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const int a, const unsigned int b) +{ + return umax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const int b) +{ + return umax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int max(const long int a, const long int b) +{ + long int retval; + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(max(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int max(const long long int a, const long long int b) +{ + return llmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b) +{ + return ullmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const long long int a, const unsigned long long int b) +{ + return ullmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const long long int b) +{ + return ullmax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float max(const float a, const float b) +{ + return fmaxf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const double b) +{ + return fmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const float a, const double b) +{ + return fmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const float b) +{ + return fmax(a, static_cast(b)); +} +# 1135 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +inline __attribute__((host)) __attribute__((device)) int min(const int a, const int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned int umin(const unsigned int a, const unsigned int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) long long int llmin(const long long int a, const long long int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned long long int ullmin(const unsigned long long int a, + const unsigned long long int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) int max(const int a, const int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned int umax(const unsigned int a, const unsigned int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) long long int llmax(const long long int a, const long long int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned long long int ullmax(const unsigned long long int a, + const unsigned long long int b) +{ + return (a > b) ? a : b; +} +# 6249 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" 2 +# 304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" 2 +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +extern "C" +{ +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mulhi(int x, int y); +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umulhi(unsigned int x, unsigned int y); +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __mul64hi(long long int x, long long int y); +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __umul64hi(unsigned long long int x, unsigned long long int y); +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int_as_float(int x); +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float_as_int(float x); +# 163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint_as_float(unsigned int x); +# 172 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float_as_uint(float x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __syncthreads(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __prof_trigger(int); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence_block(void); +__attribute__((device)) __attribute__((cudart_builtin)) + +__attribute__((__noreturn__)) + + + +__attribute__((device_builtin)) void __trap(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __brkpt(); +# 196 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __saturatef(float x); +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __sad(int x, int y, unsigned int z); +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __usad(unsigned int x, unsigned int y, unsigned int z); +# 243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mul24(int x, int y); +# 253 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umul24(unsigned int x, unsigned int y); +# 269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float fdividef(float x, float y); +# 289 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdividef(float x, float y); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) double fdivide(double x, double y); +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __sinf(float x) +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __cosf(float x) +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanf(float x) +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanhf(float x) +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void __sincosf(float x, float *sptr, float *cptr) +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __expf(float x) +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __exp10f(float x) +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log2f(float x) +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log10f(float x) +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __logf(float x) +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __powf(float x, float y) +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 3 4 + noexcept (true) +# 443 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" + ; +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rn(float x); +# 463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rz(float x); +# 473 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_ru(float); +# 483 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rd(float x); +# 493 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rn(float x); +# 503 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rz(float x); +# 513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_ru(float x); +# 523 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rd(float x); +# 532 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rn(int x); +# 541 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rz(int x); +# 550 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_ru(int x); +# 559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rd(int x); +# 568 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rn(unsigned int x); +# 577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rz(unsigned int x); +# 586 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_ru(unsigned int x); +# 595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rd(unsigned int x); +# 605 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rn(float x); +# 615 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rz(float x); +# 625 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_ru(float x); +# 635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rd(float x); +# 645 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rn(float x); +# 655 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rz(float x); +# 665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_ru(float x); +# 675 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rd(float x); +# 684 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rn(long long int x); +# 693 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rz(long long int x); +# 702 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_ru(long long int x); +# 711 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rd(long long int x); +# 720 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rn(unsigned long long int x); +# 729 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rz(unsigned long long int x); +# 738 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_ru(unsigned long long int x); +# 747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rd(unsigned long long int x); +# 766 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rn(float x, float y); +# 785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rz(float x, float y); +# 804 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_ru(float x, float y); +# 823 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rd(float x, float y); +# 842 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rn(float x, float y); +# 861 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rz(float x, float y); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_ru(float x, float y); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rd(float x, float y); +# 917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rn(float x, float y); +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rz(float x, float y); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_ru(float x, float y); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rd(float x, float y); +# 1015 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rn(float x, float y, float z); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rz(float x, float y, float z); +# 1103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_ru(float x, float y, float z); +# 1147 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rd(float x, float y, float z); +# 1164 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rn(float x); +# 1181 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rz(float x); +# 1198 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_ru(float x); +# 1215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rd(float x); +# 1233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rn(float x); +# 1251 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rz(float x); +# 1269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_ru(float x); +# 1287 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rd(float x); +# 1305 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frsqrt_rn(float x); +# 1324 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rn(float x, float y); +# 1343 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rz(float x, float y); +# 1362 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_ru(float x, float y); +# 1381 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rd(float x, float y); +# 1390 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clz(int x); +# 1401 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffs(int x); +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popc(unsigned int x); +# 1419 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __brev(unsigned int x); +# 1428 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clzll(long long int x); +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffsll(long long int x); +# 1450 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popcll(unsigned long long int x); +# 1459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __brevll(unsigned long long int x); +# 1482 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __byte_perm(unsigned int x, unsigned int y, unsigned int s); +# 1494 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __hadd(int x, int y); +# 1507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __rhadd(int x, int y); +# 1519 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __uhadd(unsigned int x, unsigned int y); +# 1532 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __urhadd(unsigned int x, unsigned int y); +# 1543 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __double2int_rz(double x); +# 1553 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __double2uint_rz(double x); +# 1563 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __double2ll_rz(double x); +# 1573 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __double2ull_rz(double x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm0(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm1(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm2(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm3(void); +# 1603 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs2(unsigned int a); +# 1614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss2(unsigned int a); +# 1625 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd2(unsigned int a, unsigned int b); +# 1636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss2 (unsigned int a, unsigned int b); +# 1646 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus2 (unsigned int a, unsigned int b); +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs2(unsigned int a, unsigned int b); +# 1668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu2(unsigned int a, unsigned int b); +# 1679 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu2(unsigned int a, unsigned int b); +# 1690 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq2(unsigned int a, unsigned int b); +# 1701 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges2(unsigned int a, unsigned int b); +# 1712 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu2(unsigned int a, unsigned int b); +# 1723 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts2(unsigned int a, unsigned int b); +# 1734 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu2(unsigned int a, unsigned int b); +# 1745 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples2(unsigned int a, unsigned int b); +# 1756 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu2(unsigned int a, unsigned int b); +# 1767 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts2(unsigned int a, unsigned int b); +# 1778 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu2(unsigned int a, unsigned int b); +# 1789 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne2(unsigned int a, unsigned int b); +# 1800 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu2(unsigned int a, unsigned int b); +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs2(unsigned int a, unsigned int b); +# 1822 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu2(unsigned int a, unsigned int b); +# 1833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins2(unsigned int a, unsigned int b); +# 1844 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu2(unsigned int a, unsigned int b); +# 1855 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq2(unsigned int a, unsigned int b); +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges2(unsigned int a, unsigned int b); +# 1877 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu2(unsigned int a, unsigned int b); +# 1888 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts2(unsigned int a, unsigned int b); +# 1899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu2(unsigned int a, unsigned int b); +# 1910 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles2(unsigned int a, unsigned int b); +# 1921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu2(unsigned int a, unsigned int b); +# 1932 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts2(unsigned int a, unsigned int b); +# 1943 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu2(unsigned int a, unsigned int b); +# 1954 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne2(unsigned int a, unsigned int b); +# 1965 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu2(unsigned int a, unsigned int b); +# 1976 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub2(unsigned int a, unsigned int b); +# 1987 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss2 (unsigned int a, unsigned int b); +# 1998 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus2 (unsigned int a, unsigned int b); +# 2008 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg2(unsigned int a); +# 2018 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss2(unsigned int a); +# 2029 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs2(unsigned int a, unsigned int b); +# 2040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads2(unsigned int a, unsigned int b); +# 2050 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs4(unsigned int a); +# 2061 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss4(unsigned int a); +# 2072 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd4(unsigned int a, unsigned int b); +# 2083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss4 (unsigned int a, unsigned int b); +# 2093 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus4 (unsigned int a, unsigned int b); +# 2104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs4(unsigned int a, unsigned int b); +# 2115 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu4(unsigned int a, unsigned int b); +# 2126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu4(unsigned int a, unsigned int b); +# 2137 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq4(unsigned int a, unsigned int b); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges4(unsigned int a, unsigned int b); +# 2159 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu4(unsigned int a, unsigned int b); +# 2170 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts4(unsigned int a, unsigned int b); +# 2181 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu4(unsigned int a, unsigned int b); +# 2192 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples4(unsigned int a, unsigned int b); +# 2203 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu4(unsigned int a, unsigned int b); +# 2214 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts4(unsigned int a, unsigned int b); +# 2225 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu4(unsigned int a, unsigned int b); +# 2236 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne4(unsigned int a, unsigned int b); +# 2247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu4(unsigned int a, unsigned int b); +# 2258 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs4(unsigned int a, unsigned int b); +# 2269 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu4(unsigned int a, unsigned int b); +# 2280 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins4(unsigned int a, unsigned int b); +# 2291 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu4(unsigned int a, unsigned int b); +# 2302 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq4(unsigned int a, unsigned int b); +# 2313 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles4(unsigned int a, unsigned int b); +# 2324 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu4(unsigned int a, unsigned int b); +# 2335 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts4(unsigned int a, unsigned int b); +# 2346 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu4(unsigned int a, unsigned int b); +# 2357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges4(unsigned int a, unsigned int b); +# 2368 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu4(unsigned int a, unsigned int b); +# 2379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts4(unsigned int a, unsigned int b); +# 2390 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu4(unsigned int a, unsigned int b); +# 2401 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne4(unsigned int a, unsigned int b); +# 2412 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu4(unsigned int a, unsigned int b); +# 2423 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub4(unsigned int a, unsigned int b); +# 2434 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss4(unsigned int a, unsigned int b); +# 2445 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus4(unsigned int a, unsigned int b); +# 2455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg4(unsigned int a); +# 2465 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss4(unsigned int a); +# 2476 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs4(unsigned int a, unsigned int b); +# 2487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads4(unsigned int a, unsigned int b); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b); +# 2509 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b); +# 2518 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b); +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b); +# 2539 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32(const int a, const int b, const int c); +# 2551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2572 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2581 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32(const int a, const int b, const int c); +# 2593 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2602 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32_relu(const int a, const int b, const int c); +# 2635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32_relu(const int a, const int b, const int c); +# 2656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32(const int a, const int b, const int c); +# 2677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2686 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2698 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2707 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32(const int a, const int b, const int c); +# 2719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2728 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c); +# 2740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c); +# 2750 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32_relu(const int a, const int b, const int c); +# 2762 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2772 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32_relu(const int a, const int b, const int c); +# 2784 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c); +# 2793 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmax_s32(const int a, const int b, bool* const pred); +# 2802 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool* const pred); +# 2811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmin_s32(const int a, const int b, bool* const pred); +# 2820 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool* const pred); +# 2834 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2848 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2862 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); +# 2876 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo); + + + + + + +} +# 2899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" 2 +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +static __attribute__((host)) __attribute__((device)) short __internal_cast_u2s(unsigned short x) +{ + short res; + + (void)memcpy(&res, &x, sizeof(x)); + + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b){ + + + + + + + int ans = max(a, b); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b){ + unsigned int res; + + + + + + + + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + int ansI_lo = max(aS_lo, bS_lo); + int ansI_hi = max(aS_hi, bS_hi); + + + if(ansI_lo < 0){ ansI_lo = 0; } + if(ansI_hi < 0){ ansI_hi = 0; } + + + unsigned ansU_lo = (unsigned)ansI_lo; + unsigned ansU_hi = (unsigned)ansI_hi; + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b){ + + + + + + + int ans = min(a, b); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b){ + unsigned int res; + + + + + + + + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + int ansI_lo = min(aS_lo, bS_lo); + int ansI_hi = min(aS_hi, bS_hi); + + + if(ansI_lo < 0){ ansI_lo = 0; } + if(ansI_hi < 0){ ansI_hi = 0; } + + + unsigned ansU_lo = (unsigned)ansI_lo; + unsigned ansU_hi = (unsigned)ansI_hi; + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32(const int a, const int b, const int c){ +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(max(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned int ansU_lo = (unsigned int)max(max(aS_lo, bS_lo), cS_lo); + unsigned int ansU_hi = (unsigned int)max(max(aS_hi, bS_hi), cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 301 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(max(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + unsigned short ansU_lo = (unsigned short)max(max(aU_lo, bU_lo), cU_lo); + unsigned short ansU_hi = (unsigned short)max(max(aU_hi, bU_hi), cU_hi); + + + res = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32(const int a, const int b, const int c){ +# 347 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(min(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned int ansU_lo = (unsigned int)min(min(aS_lo, bS_lo), cS_lo); + unsigned int ansU_hi = (unsigned int)min(min(aS_hi, bS_hi), cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(min(a, b), c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 419 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + unsigned short ansU_lo = (unsigned short)min(min(aU_lo, bU_lo), cU_lo); + unsigned short ansU_hi = (unsigned short)min(min(aU_hi, bU_hi), cU_hi); + + + res = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax3_s32_relu(const int a, const int b, const int c){ +# 449 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(max(a, b), c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, max(max(aS_lo, bS_lo), cS_lo)); + unsigned ansU_hi = (unsigned)max(0, max(max(aS_hi, bS_hi), cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin3_s32_relu(const int a, const int b, const int c){ +# 507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(min(a, b), c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned res; +# 525 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, min(min(aS_lo, bS_lo), cS_lo)); + unsigned ansU_hi = (unsigned)max(0, min(min(aS_hi, bS_hi), cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32(const int a, const int b, const int c){ +# 566 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 582 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + aU_lo += bU_lo; + aU_hi += bU_hi; + + + short sS_lo = __internal_cast_u2s(aU_lo); + short sS_hi = __internal_cast_u2s(aU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(sS_lo, cS_lo); + unsigned ansU_hi = (unsigned)max(sS_hi, cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 622 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return max(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 638 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + unsigned short ansU_lo = (unsigned short)max((unsigned short)(aU_lo + bU_lo), cU_lo); + unsigned short ansU_hi = (unsigned short)max((unsigned short)(aU_hi + bU_hi), cU_hi); + + + res = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32(const int a, const int b, const int c){ +# 668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 684 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + aU_lo += bU_lo; + aU_hi += bU_hi; + + + short sS_lo = __internal_cast_u2s(aU_lo); + short sS_hi = __internal_cast_u2s(aU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)min(sS_lo, cS_lo); + unsigned ansU_hi = (unsigned)min(sS_hi, cS_hi); + + + res = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c){ +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + return min(a + b, c); + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + + unsigned short ansU_lo = (unsigned short)min((unsigned short)(aU_lo + bU_lo), cU_lo); + unsigned short ansU_hi = (unsigned short)min((unsigned short)(aU_hi + bU_hi), cU_hi); + + + res = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmax_s32_relu(const int a, const int b, const int c){ +# 770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(a + b, c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 788 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + aU_lo += bU_lo; + aU_hi += bU_hi; + + + short sS_lo = __internal_cast_u2s(aU_lo); + short sS_hi = __internal_cast_u2s(aU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, max(sS_lo, cS_lo)); + unsigned ansU_hi = (unsigned)max(0, max(sS_hi, cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __viaddmin_s32_relu(const int a, const int b, const int c){ +# 828 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(a + b, c); + + return (ans > 0) ? ans : 0; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c){ + unsigned int res; +# 846 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + unsigned short cU_lo = (unsigned short)(c & 0xFFFFU); + unsigned short cU_hi = (unsigned short)(c >> 16); + + aU_lo += bU_lo; + aU_hi += bU_hi; + + + short sS_lo = __internal_cast_u2s(aU_lo); + short sS_hi = __internal_cast_u2s(aU_hi); + + short cS_lo = __internal_cast_u2s(cU_lo); + short cS_hi = __internal_cast_u2s(cU_hi); + + + unsigned ansU_lo = (unsigned)max(0, min(sS_lo, cS_lo)); + unsigned ansU_hi = (unsigned)max(0, min(sS_hi, cS_hi)); + + + res = ansU_lo | (ansU_hi << 16); + + + return res; +} + + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmax_s32(const int a, const int b, bool* const pred){ +# 892 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = max(a, b); + + *pred = (a >= b); + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool* const pred){ +# 913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned int ans = max(a, b); + + *pred = (a >= b); + return ans; + +} + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vibmin_s32(const int a, const int b, bool* const pred){ +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + int ans = min(a, b); + + *pred = (a <= b); + return ans; + +} + + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool* const pred){ +# 957 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned int ans = min(a, b); + + *pred = (a <= b); + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 986 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + unsigned int ansU_lo = (unsigned int)max(aS_lo, bS_lo); + unsigned int ansU_hi = (unsigned int)max(aS_hi, bS_hi); + + *pred_hi = (aS_hi >= bS_hi); + *pred_lo = (aS_lo >= bS_lo); + + + unsigned int ans = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + unsigned short ansU_lo = (unsigned short)max(aU_lo, bU_lo); + unsigned short ansU_hi = (unsigned short)max(aU_hi, bU_hi); + + *pred_hi = (aU_hi >= bU_hi); + *pred_lo = (aU_lo >= bU_lo); + + + unsigned int ans = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + short aS_lo = __internal_cast_u2s(aU_lo); + short aS_hi = __internal_cast_u2s(aU_hi); + + short bS_lo = __internal_cast_u2s(bU_lo); + short bS_hi = __internal_cast_u2s(bU_hi); + + + unsigned int ansU_lo = (unsigned int)min(aS_lo, bS_lo); + unsigned int ansU_hi = (unsigned int)min(aS_hi, bS_hi); + + *pred_hi = (aS_hi <= bS_hi); + *pred_lo = (aS_lo <= bS_lo); + + + unsigned int ans = (ansU_lo & 0x0000FFFFU) | (ansU_hi << 16); + + return ans; + +} + +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" + unsigned short aU_lo = (unsigned short)(a & 0xFFFFU); + unsigned short aU_hi = (unsigned short)(a >> 16); + + unsigned short bU_lo = (unsigned short)(b & 0xFFFFU); + unsigned short bU_hi = (unsigned short)(b >> 16); + + + unsigned short ansU_lo = (unsigned short)min(aU_lo, bU_lo); + unsigned short ansU_hi = (unsigned short)min(aU_hi, bU_hi); + + *pred_hi = (aU_hi <= bU_hi); + *pred_lo = (aU_lo <= bU_lo); + + + unsigned int ans = ((unsigned int) ansU_lo) | (((unsigned int) ansU_hi) << 16); + + return ans; + +} +# 2900 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" 1 +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) { } + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) { } +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __any(int cond); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __all(int cond); +} +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) { } + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) { } + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) { } + +static __inline__ __attribute__((device)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool any(bool cond) { } + +static __inline__ __attribute__((device)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool all(bool cond) { } +# 2903 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 + + + + +extern "C" +{ +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 266 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 423 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 580 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 749 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 773 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 809 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 821 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 857 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 881 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 890 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 944 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 962 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 980 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 998 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1007 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1016 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1025 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 1050 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1113 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1141 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); +} + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode); + + + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode = cudaRoundNearest); + + + + + + + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 1 +# 83 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" 2 + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __fma_rz(a, b, c) : + mode == cudaRoundPosInf ? __fma_ru(a, b, c) : + mode == cudaRoundMinInf ? __fma_rd(a, b, c) : + __fma_rn(a, b, c); +} + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dmul_rz(a, b) : + mode == cudaRoundPosInf ? __dmul_ru(a, b) : + mode == cudaRoundMinInf ? __dmul_rd(a, b) : + __dmul_rn(a, b); +} + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dadd_rz(a, b) : + mode == cudaRoundPosInf ? __dadd_ru(a, b) : + mode == cudaRoundMinInf ? __dadd_rd(a, b) : + __dadd_rn(a, b); +} + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dsub_rz(a, b) : + mode == cudaRoundPosInf ? __dsub_ru(a, b) : + mode == cudaRoundMinInf ? __dsub_rd(a, b) : + __dsub_rn(a, b); +} + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2int_rn(a) : + mode == cudaRoundPosInf ? __double2int_ru(a) : + mode == cudaRoundMinInf ? __double2int_rd(a) : + __double2int_rz(a); +} + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2uint_rn(a) : + mode == cudaRoundPosInf ? __double2uint_ru(a) : + mode == cudaRoundMinInf ? __double2uint_rd(a) : + __double2uint_rz(a); +} + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ll_rn(a) : + mode == cudaRoundPosInf ? __double2ll_ru(a) : + mode == cudaRoundMinInf ? __double2ll_rd(a) : + __double2ll_rz(a); +} + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ull_rn(a) : + mode == cudaRoundPosInf ? __double2ull_ru(a) : + mode == cudaRoundMinInf ? __double2ull_rd(a) : + __double2ull_rz(a); +} + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ll2double_rz(a) : + mode == cudaRoundPosInf ? __ll2double_ru(a) : + mode == cudaRoundMinInf ? __ll2double_rd(a) : + __ll2double_rn(a); +} + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ull2double_rz(a) : + mode == cudaRoundPosInf ? __ull2double_ru(a) : + mode == cudaRoundMinInf ? __ull2double_rd(a) : + __ull2double_rn(a); +} + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode) +{ + return (double)a; +} +# 1185 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" 2 +# 2904 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" 1 +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) { } +# 2905 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 1 +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) { } +# 2906 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" 1 +# 56 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" 1 +# 57 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_atomic_functions.h" 2 +# 2907 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" 1 +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +static __inline__ __attribute__((device)) double atomicAdd(double *address, double val) { } + +static __inline__ __attribute__((device)) +int atomicAdd_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicAdd_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAdd_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAdd_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAdd_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAdd_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +float atomicAdd_block(float *address, float val) { } + +static __inline__ __attribute__((device)) +float atomicAdd_system(float *address, float val) { } + +static __inline__ __attribute__((device)) +double atomicAdd_block(double *address, double val) { } + +static __inline__ __attribute__((device)) +double atomicAdd_system(double *address, double val) { } + +static __inline__ __attribute__((device)) +int atomicSub_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicSub_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicSub_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicSub_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +int atomicExch_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicExch_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicExch_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicExch_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicExch_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicExch_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +float atomicExch_block(float *address, float val) { } + +static __inline__ __attribute__((device)) +float atomicExch_system(float *address, float val) { } + +static __inline__ __attribute__((device)) +int atomicMin_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicMin_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicMin_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicMin_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMin_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMin_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMin_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMin_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicMax_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicMax_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicMax_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicMax_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMax_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMax_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMax_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMax_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicInc_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicInc_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicDec_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicDec_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +int atomicCAS_block(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) +int atomicCAS_system(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicCAS_block(unsigned int *address, unsigned int compare, + unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicCAS_system(unsigned int *address, unsigned int compare, + unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long int atomicCAS_block(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val) { } + +static __inline__ __attribute__((device)) +unsigned long long int atomicCAS_system(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val) { } + +static __inline__ __attribute__((device)) +int atomicAnd_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicAnd_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicAnd_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicAnd_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAnd_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAnd_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAnd_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAnd_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicOr_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicOr_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicOr_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicOr_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicOr_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicOr_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicOr_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicOr_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicXor_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicXor_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicXor_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicXor_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicXor_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicXor_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicXor_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicXor_system(unsigned long long *address, unsigned long long val) { } +# 2908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" 1 +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) void __threadfence_system(void); +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rn(double x, double y); +# 139 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rz(double x, double y); +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_ru(double x, double y); +# 179 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rd(double x, double y); +# 194 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rn(double x); +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rz(double x); +# 224 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_ru(double x); +# 239 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rd(double x); +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rn(double x); +# 269 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rz(double x); +# 284 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_ru(double x); +# 299 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rd(double x); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __ballot(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_count(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_and(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_or(int); +extern __attribute__((device)) __attribute__((device_builtin)) long long int clock64(void); +# 314 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rn(float x, float y, float z); +# 323 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rd(float x, float y, float z); +# 332 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_ru(float x, float y, float z); +# 341 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rz(float x, float y, float z); +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 407 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 451 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 539 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 558 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 577 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 596 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 615 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 634 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 653 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 672 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 691 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 709 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 727 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 745 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 763 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 772 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 781 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 790 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 799 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 809 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 829 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 839 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 849 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 859 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 879 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 889 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 899 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 944 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 953 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 962 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 971 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 980 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 998 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1007 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1016 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1025 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); + + +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int ballot(bool pred) { } + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) { } + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) { } + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) { } + + + + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) { } + +static __inline__ __attribute__((device)) unsigned int __isGridConstant(const void *ptr) { } + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *ptr) { } + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_grid_constant(const void *ptr) { } + + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) { } + +static __inline__ __attribute__((device)) void * __cvta_grid_constant_to_generic(size_t rawbits) { } +# 1090 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static __inline__ __attribute__((host)) __attribute__((device)) unsigned short __nv_bswap16(unsigned short x) { + + return __builtin_bswap16(x); + + + + + +} +# 1109 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static __inline__ __attribute__((host)) __attribute__((device)) unsigned int __nv_bswap32(unsigned int x) { + + return __builtin_bswap32(x); + + + + + + +} +# 1129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static __inline__ __attribute__((host)) __attribute__((device)) unsigned long long __nv_bswap64(unsigned long long x) { + + return __builtin_bswap64(x); + + + + + + +} +# 2909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" 1 +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +static __attribute__((device)) __inline__ unsigned __fns(unsigned mask, unsigned base, int offset) { } +static __attribute__((device)) __inline__ void __barrier_sync(unsigned id) { } +static __attribute__((device)) __inline__ void __barrier_sync_count(unsigned id, unsigned cnt) { } +static __attribute__((device)) __inline__ void __syncwarp(unsigned mask=0xFFFFFFFF) { } +static __attribute__((device)) __inline__ int __all_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ int __any_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ int __uni_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ unsigned __ballot_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ unsigned __activemask() { } +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl(int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl(unsigned int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_up(int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_up(unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_down(int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_down(unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_xor(int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_xor(unsigned int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl(float var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_up(float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_down(float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_xor(float var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width=32) { } + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl(unsigned long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl(long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_up(long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_down(long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_xor(long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl(double var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_up(double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_down(double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_xor(double var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width=32) { } + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl(long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl(unsigned long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_up(long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_up(unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_down(long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_down(unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_xor(long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_xor(unsigned long var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width=32) { } +# 2910 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" 1 +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ long __ldg(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldg(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldg(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldg(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) { } + + + + +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldca(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldca(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldca(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) { } +# 465 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 490 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 502 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 2911 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_35_intrinsics.h" 1 +# 2912 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" 1 +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_lo(int srcA, int srcB, int c) { } +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_lo(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_lo(short2 srcA, char4 srcB, int c) { } +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_lo(ushort2 srcA, uchar4 srcB, unsigned int c) { } +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_hi(int srcA, int srcB, int c) { } +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_hi(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_hi(short2 srcA, char4 srcB, int c) { } +# 182 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_hi(ushort2 srcA, uchar4 srcB, unsigned int c) { } +# 197 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp4a(int srcA, int srcB, int c) { } +# 206 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp4a(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp4a(char4 srcA, char4 srcB, int c) { } +# 225 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp4a(uchar4 srcA, uchar4 srcB, unsigned int c) { } +# 2913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 85 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 87 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" 2 +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned long long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, long long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, float value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, double value) { } + +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, int value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned long long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, long long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, float value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, double value, int *pred) { } + +static __attribute__((device)) __inline__ void __nanosleep(unsigned int ns) { } + +static __attribute__((device)) __inline__ unsigned short int atomicCAS(unsigned short int *address, unsigned short int compare, unsigned short int val) { } +# 2914 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 1 +# 81 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 84 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" 2 +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +static __attribute__((device)) __inline__ unsigned __reduce_add_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_min_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_max_sync(unsigned mask, unsigned value) { } + +static __attribute__((device)) __inline__ int __reduce_add_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ int __reduce_min_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ int __reduce_max_sync(unsigned mask, int value) { } + +static __attribute__((device)) __inline__ unsigned __reduce_and_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_or_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_xor_sync(unsigned mask, unsigned value) { } + + + + +extern "C" { +inline __attribute__((device)) void *__nv_associate_access_property(const void *ptr, + unsigned long long property) { + extern __attribute__((device)) void *__nv_associate_access_property_impl(const void *, + unsigned long long); + return __nv_associate_access_property_impl(ptr, property); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_4(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_4_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_4_impl(dst, src, src_size); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_8(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_8_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_8_impl(dst, src, src_size); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_16(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_16_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_16_impl(dst, src, src_size); +} + +} +# 2915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 1 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 80 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" 2 +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +static __attribute__((device)) __inline__ unsigned __isCtaShared(const void *ptr) { } +static __attribute__((device)) __inline__ unsigned __isClusterShared(const void *ptr) { } +static __attribute__((device)) __inline__ void *__cluster_map_shared_rank(const void *ptr, unsigned target_block_rank) { } +static __attribute__((device)) __inline__ unsigned __cluster_query_shared_rank(const void *ptr) { } +static __attribute__((device)) __inline__ uint2 __cluster_map_shared_multicast(const void *ptr, unsigned cluster_cta_mask) { } +static __attribute__((device)) __inline__ unsigned __clusterDimIsSpecified() { } +static __attribute__((device)) __inline__ dim3 __clusterDim() { } +static __attribute__((device)) __inline__ dim3 __clusterRelativeBlockIdx() { } +static __attribute__((device)) __inline__ dim3 __clusterGridDimInClusters() { } +static __attribute__((device)) __inline__ dim3 __clusterIdx() { } +static __attribute__((device)) __inline__ unsigned __clusterRelativeBlockRank() { } +static __attribute__((device)) __inline__ unsigned __clusterSizeInBlocks() { } +static __attribute__((device)) __inline__ void __cluster_barrier_arrive() { } +static __attribute__((device)) __inline__ void __cluster_barrier_arrive_relaxed() { } +static __attribute__((device)) __inline__ void __cluster_barrier_wait() { } +static __attribute__((device)) __inline__ void __threadfence_cluster() { } + +static __attribute__((device)) __inline__ float2 atomicAdd(float2 *__address, float2 val) { } +static __attribute__((device)) __inline__ float2 atomicAdd_block(float2 *__address, float2 val) { } +static __attribute__((device)) __inline__ float2 atomicAdd_system(float2 *__address, float2 val) { } +static __attribute__((device)) __inline__ float4 atomicAdd(float4 *__address, float4 val) { } +static __attribute__((device)) __inline__ float4 atomicAdd_block(float4 *__address, float4 val) { } +static __attribute__((device)) __inline__ float4 atomicAdd_system(float4 *__address, float4 val) { } +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +extern "C" { + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicCAS(void *, void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicCAS_block(void *, void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicCAS_system(void *, void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicExch(void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicExch_block(void *, void *, void *); + __attribute__((device)) __attribute__((device_builtin)) void __u128AtomicExch_system(void *, void *, void *); +} + + + + + + +template +struct __nv_atomic_enable_if { }; + +template +struct __nv_atomic_enable_if { typedef _T __type; }; +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template +struct __nv_atomic_triv_cp_helper { + + + + + + + static const bool __val = __is_trivially_copyable(_T); + + + + +}; +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicCAS(_T *__address, _T __compare, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicCAS((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__compare)))), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicCAS_block(_T *__address, _T __compare, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicCAS_block((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__compare)))), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicCAS_system(_T *__address, _T __compare, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicCAS_system((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__compare)))), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicExch(_T *__address, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicExch((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicExch_block(_T *__address, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicExch_block((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} + +template +static __attribute__((device)) __inline__ typename __nv_atomic_enable_if= 16 && __nv_atomic_triv_cp_helper<_T>::__val, _T>::__type +atomicExch_system(_T *__address, _T __val) { + union _U {_T __ret; __attribute__((device)) __inline__ _U() {}}; _U __u; + __u128AtomicExch_system((void *)(__address), + (void *)(&(const_cast(reinterpret_cast(__val)))), + (void *)(&(const_cast(reinterpret_cast(__u.__ret))))); + return __u.__ret; +} +# 2916 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 1 +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/builtin_types.h" 1 +# 80 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_defines.h" 1 +# 82 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" 2 +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __ffma2_rn(float2 x, float2 y, float2 z) { } +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __ffma2_rz(float2 x, float2 y, float2 z) { } +# 124 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __ffma2_rd(float2 x, float2 y, float2 z) { } +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __ffma2_ru(float2 x, float2 y, float2 z) { } +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fadd2_rn(float2 x, float2 y) { } +# 161 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fadd2_rz(float2 x, float2 y) { } +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fadd2_rd(float2 x, float2 y) { } +# 185 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fadd2_ru(float2 x, float2 y) { } +# 198 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fmul2_rn(float2 x, float2 y) { } +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fmul2_rz(float2 x, float2 y) { } +# 222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fmul2_rd(float2 x, float2 y) { } +# 234 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +static __attribute__((device)) __inline__ float2 __fmul2_ru(float2 x, float2 y) { } +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" 1 +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template struct __nv_itex_trait { }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +{ + __nv_tex_surf_handler("__itex1Dfetch", ptr, obj, x); +} + +template +static __attribute__((device)) T tex1Dfetch(cudaTextureObject_t texObject, int x) +{ + T ret; + tex1Dfetch(&ret, texObject, x); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1D(T *ptr, cudaTextureObject_t obj, float x) +{ + __nv_tex_surf_handler("__itex1D", ptr, obj, x); +} + + +template +static __attribute__((device)) T tex1D(cudaTextureObject_t texObject, float x) +{ + T ret; + tex1D(&ret, texObject, x); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +{ + __nv_tex_surf_handler("__itex2D", ptr, obj, x, y); +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y) +{ + T ret; + tex2D(&ret, texObject, x, y); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y, + bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2D_sparse", ptr, obj, x, y, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y, bool* isResident) +{ + T ret; + tex2D(&ret, texObject, x, y, isResident); + return ret; +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + __nv_tex_surf_handler("__itex3D", ptr, obj, x, y, z); +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z) +{ + T ret; + tex3D(&ret, texObject, x, y, z); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z, + bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex3D_sparse", ptr, obj, x, y, z, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z, bool* isResident) +{ + T ret; + tex3D(&ret, texObject, x, y, z, isResident); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +{ + __nv_tex_surf_handler("__itex1DLayered", ptr, obj, x, layer); +} + +template +static __attribute__((device)) T tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +{ + T ret; + tex1DLayered(&ret, texObject, x, layer); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +{ + __nv_tex_surf_handler("__itex2DLayered", ptr, obj, x, y, layer); +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +{ + T ret; + tex2DLayered(&ret, texObject, x, y, layer); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DLayered_sparse", ptr, obj, x, y, layer, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer, bool* isResident) +{ + T ret; + tex2DLayered(&ret, texObject, x, y, layer, isResident); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + __nv_tex_surf_handler("__itexCubemap", ptr, obj, x, y, z); +} + + +template +static __attribute__((device)) T texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +{ + T ret; + texCubemap(&ret, texObject, x, y, z); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +{ + __nv_tex_surf_handler("__itexCubemapLayered", ptr, obj, x, y, z, layer); +} + +template +static __attribute__((device)) T texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +{ + T ret; + texCubemapLayered(&ret, texObject, x, y, z, layer); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +{ + __nv_tex_surf_handler("__itex2Dgather", ptr, obj, x, y, comp); +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +{ + T ret; + tex2Dgather(&ret, to, x, y, comp); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, bool* isResident, int comp = 0) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2Dgather_sparse", ptr, obj, x, y, comp, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, bool* isResident, int comp = 0) +{ + T ret; + tex2Dgather(&ret, to, x, y, isResident, comp); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +{ + __nv_tex_surf_handler("__itex1DLod", ptr, obj, x, level); +} + +template +static __attribute__((device)) T tex1DLod(cudaTextureObject_t texObject, float x, float level) +{ + T ret; + tex1DLod(&ret, texObject, x, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +{ + __nv_tex_surf_handler("__itex2DLod", ptr, obj, x, y, level); +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +{ + T ret; + tex2DLod(&ret, texObject, x, y, level); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DLod_sparse", ptr, obj, x, y, level, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level, bool* isResident) +{ + T ret; + tex2DLod(&ret, texObject, x, y, level, isResident); + return ret; +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + __nv_tex_surf_handler("__itex3DLod", ptr, obj, x, y, z, level); +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + T ret; + tex3DLod(&ret, texObject, x, y, z, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex3DLod_sparse", ptr, obj, x, y, z, level, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level, bool* isResident) +{ + T ret; + tex3DLod(&ret, texObject, x, y, z, level, isResident); + return ret; +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +{ + __nv_tex_surf_handler("__itex1DLayeredLod", ptr, obj, x, layer, level); +} + +template +static __attribute__((device)) T tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +{ + T ret; + tex1DLayeredLod(&ret, texObject, x, layer, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +{ + __nv_tex_surf_handler("__itex2DLayeredLod", ptr, obj, x, y, layer, level); +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +{ + T ret; + tex2DLayeredLod(&ret, texObject, x, y, layer, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DLayeredLod_sparse", ptr, obj, x, y, layer, level, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level, bool* isResident) +{ + T ret; + tex2DLayeredLod(&ret, texObject, x, y, layer, level, isResident); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + __nv_tex_surf_handler("__itexCubemapLod", ptr, obj, x, y, z, level); +} + +template +static __attribute__((device)) T texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + T ret; + texCubemapLod(&ret, texObject, x, y, z, level); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itexCubemapGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + T ret; + texCubemapGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +{ + __nv_tex_surf_handler("__itexCubemapLayeredLod", ptr, obj, x, y, z, layer, level); +} + +template +static __attribute__((device)) T texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +{ + T ret; + texCubemapLayeredLod(&ret, texObject, x, y, z, layer, level); + return ret; +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +{ + __nv_tex_surf_handler("__itex1DGrad", ptr, obj, x, dPdx, dPdy); +} + +template +static __attribute__((device)) T tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +{ + T ret; + tex1DGrad(&ret, texObject, x, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +{ + __nv_tex_surf_handler("__itex2DGrad_v2", ptr, obj, x, y, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +{ + T ret; + tex2DGrad(&ret, texObject, x, y, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DGrad_sparse", ptr, obj, x, y, &dPdx, &dPdy, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy, bool* isResident) +{ + T ret; + tex2DGrad(&ret, texObject, x, y, dPdx, dPdy, isResident); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itex3DGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + T ret; + tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex3DGrad_sparse", ptr, obj, x, y, z, &dPdx, &dPdy, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy, bool* isResident) +{ + T ret; + tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy, isResident); + return ret; +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +{ + __nv_tex_surf_handler("__itex1DLayeredGrad", ptr, obj, x, layer, dPdx, dPdy); +} + +template +static __attribute__((device)) T tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +{ + T ret; + tex1DLayeredGrad(&ret, texObject, x, layer, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + __nv_tex_surf_handler("__itex2DLayeredGrad_v2", ptr, obj, x, y, layer, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + T ret; + tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy); + return ret; +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy, bool* isResident) +{ + unsigned char res; + __nv_tex_surf_handler("__itex2DLayeredGrad_sparse", ptr, obj, x, y, layer, &dPdx, &dPdy, &res); + *isResident = (res != 0); +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy, bool* isResident) +{ + T ret; + tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy, isResident); + return ret; +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + __nv_tex_surf_handler("__itexCubemapLayeredGrad_v2", ptr, obj, x, y, z, layer, &dPdx, &dPdy); +} + +template +static __attribute__((device)) T texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + T ret; + texCubemapLayeredGrad(&ret, texObject, x, y, z, layer, dPdx, dPdy); + return ret; +} +# 2919 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" 1 +# 58 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template struct __nv_isurf_trait { }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1Dread", ptr, obj, x, mode); +} + +template +static __attribute__((device)) T surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf1Dread(&ret, surfObject, x, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2Dread", ptr, obj, x, y, mode); +} + +template +static __attribute__((device)) T surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf2Dread(&ret, surfObject, x, y, boundaryMode); + return ret; +} + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf3Dread", ptr, obj, x, y, z, mode); +} + +template +static __attribute__((device)) T surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf3Dread(&ret, surfObject, x, y, z, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1DLayeredread", ptr, obj, x, layer, mode); +} + +template +static __attribute__((device)) T surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf1DLayeredread(&ret, surfObject, x, layer, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2DLayeredread", ptr, obj, x, y, layer, mode); +} + +template +static __attribute__((device)) T surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surf2DLayeredread(&ret, surfObject, x, y, layer, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapread", ptr, obj, x, y, face, mode); +} + +template +static __attribute__((device)) T surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surfCubemapread(&ret, surfObject, x, y, face, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapLayeredread", ptr, obj, x, y, layerface, mode); +} + +template +static __attribute__((device)) T surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + T ret; + surfCubemapLayeredread(&ret, surfObject, x, y, layerface, boundaryMode); + return ret; +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1Dwrite_v2", &val, obj, x, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2Dwrite_v2", &val, obj, x, y, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf3Dwrite_v2", &val, obj, x, y, z, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf1DLayeredwrite_v2", &val, obj, x, layer, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurf2DLayeredwrite_v2", &val, obj, x, y, layer, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapwrite_v2", &val, obj, x, y, face, mode); +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + __nv_tex_surf_handler("__isurfCubemapLayeredwrite_v2", &val, obj, x, y, layerface, mode); +} +# 2920 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/cudacc_ext.h" 1 +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" 2 + + +extern "C" __attribute__((host)) __attribute__((device)) unsigned __cudaPushCallConfiguration(dim3 gridDim, + dim3 blockDim, + size_t sharedMem = 0, + struct CUstream_st *stream = 0); +# 2969 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +enum { + __NV_ATOMIC_RELAXED, + __NV_ATOMIC_CONSUME, + __NV_ATOMIC_ACQUIRE, + __NV_ATOMIC_RELEASE, + __NV_ATOMIC_ACQ_REL, + __NV_ATOMIC_SEQ_CST +}; + +enum { + __NV_THREAD_SCOPE_THREAD, + __NV_THREAD_SCOPE_BLOCK, + __NV_THREAD_SCOPE_CLUSTER, + __NV_THREAD_SCOPE_DEVICE, + __NV_THREAD_SCOPE_SYSTEM +}; +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 1 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" 1 +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" +extern "C" { + + +uint3 __attribute__((device_builtin)) extern const threadIdx; +uint3 __attribute__((device_builtin)) extern const blockIdx; +dim3 __attribute__((device_builtin)) extern const blockDim; +dim3 __attribute__((device_builtin)) extern const gridDim; +int __attribute__((device_builtin)) extern const warpSize; + + + + +} +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 1 3 +# 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 + +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 1 3 +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace rel_ops + { +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 99 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + } + + +} +# 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 + + + + +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 1 3 +# 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 + +# 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + template + class initializer_list + { + public: + typedef _E value_type; + typedef const _E& reference; + typedef const _E& const_reference; + typedef size_t size_type; + typedef const _E* iterator; + typedef const _E* const_iterator; + + private: + iterator _M_array; + size_type _M_len; + + + constexpr initializer_list(const_iterator __a, size_type __l) + : _M_array(__a), _M_len(__l) { } + + public: + constexpr initializer_list() noexcept + : _M_array(0), _M_len(0) { } + + + constexpr size_type + size() const noexcept { return _M_len; } + + + constexpr const_iterator + begin() const noexcept { return _M_array; } + + + constexpr const_iterator + end() const noexcept { return begin() + size(); } + }; + + + + + + + + template + constexpr const _Tp* + begin(initializer_list<_Tp> __ils) noexcept + { return __ils.begin(); } + + + + + + + + template + constexpr const _Tp* + end(initializer_list<_Tp> __ils) noexcept + { return __ils.end(); } +} +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 +# 96 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 1 3 +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 + +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/version.h" 3 +# 97 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + template + + inline _Tp + exchange(_Tp& __obj, _Up&& __new_val) + noexcept(__and_, + is_nothrow_assignable<_Tp&, _Up>>::value) + { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } + + + + template + [[nodiscard]] + constexpr add_const_t<_Tp>& + as_const(_Tp& __t) noexcept + { return __t; } + + template + void as_const(const _Tp&&) = delete; +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 + +} +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" 2 +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" + +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernel( + T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + void (*kernel)(ExpTypes...), + ActTypes &&... args +) +{ + return [&](ExpTypes... coercedArgs){ + void *pArgs[] = { &coercedArgs... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); + }(std::forward(args)...); +} +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + const cudaKernel_t kernel, + ActTypes &&... args +) +{ + void *pArgs[] = { &args... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); +} +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel( + T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 454 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaEventCreate( + cudaEvent_t *event, + unsigned int flags +) +{ + return ::cudaEventCreateWithFlags(event, flags); +} +# 498 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaGraphInstantiate( + cudaGraphExec_t *pGraphExec, + cudaGraph_t graph, + cudaGraphNode_t *pErrorNode, + char *pLogBuffer, + size_t bufferSize +) +{ + (void)pErrorNode; + (void)pLogBuffer; + (void)bufferSize; + return ::cudaGraphInstantiate(pGraphExec, graph, 0); +} +# 569 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + void **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc(ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostAlloc( + T **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostGetDevicePointer( + T **pDevice, + void *pHost, + unsigned int flags +) +{ + return ::cudaHostGetDevicePointer((void**)(void*)pDevice, pHost, flags); +} +# 698 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocManaged( + T **devPtr, + size_t size, + unsigned int flags = 0x01 +) +{ + return ::cudaMallocManaged((void**)(void*)devPtr, size, flags); +} +# 716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +cudaError_t cudaMemAdvise( + T *devPtr, + size_t count, + enum cudaMemoryAdvise advice, + struct cudaMemLocation location +) +{ + return ::cudaMemAdvise_v2((const void *)devPtr, count, advice, location); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMemPrefetchAsync( + T *devPtr, + size_t count, + struct cudaMemLocation location, + unsigned int flags, + cudaStream_t stream = 0 +) +{ + return ::cudaMemPrefetchAsync_v2((const void *)devPtr, count, location, flags, stream); +} +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaStreamAttachMemAsync( + cudaStream_t stream, + T *devPtr, + size_t length = 0, + unsigned int flags = 0x04 +) +{ + return ::cudaStreamAttachMemAsync(stream, (void*)devPtr, length, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMalloc( + T **devPtr, + size_t size +) +{ + return ::cudaMalloc((void**)(void*)devPtr, size); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + T **ptr, + size_t size, + unsigned int flags = 0 +) +{ + return cudaMallocHost((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocPitch( + T **devPtr, + size_t *pitch, + size_t width, + size_t height +) +{ + return ::cudaMallocPitch((void**)(void*)devPtr, pitch, width, height); +} +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + void **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaStream_t stream +) +{ + return ::cudaMallocAsync((void**)(void*)ptr, size, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocFromPoolAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyBatchAsync( + T **dsts, U **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes *attrs, + size_t *attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t hStream +) +{ + return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, attrs, attrsIdxs, numAttrs, failIdx, hStream); +} +# 938 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyBatchAsync( + T **dsts, U **srcs, size_t *sizes, size_t count, struct cudaMemcpyAttributes attr, size_t *failIdx, cudaStream_t hStream +) +{ + size_t attrsIdxs = 0; + return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, &attr, &attrsIdxs, 1, failIdx, hStream); +} +# 984 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbol( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice +) +{ + return ::cudaMemcpyToSymbol((const void*)&symbol, src, count, offset, kind); +} +# 1038 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyToSymbolAsync((const void*)&symbol, src, count, offset, kind, stream); +} +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbol( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost +) +{ + return ::cudaMemcpyFromSymbol(dst, (const void*)&symbol, count, offset, kind); +} +# 1140 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyFromSymbolAsync(dst, (const void*)&symbol, count, offset, kind, stream); +} +# 1209 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void*)&symbol, src, count, offset, kind); +} +# 1280 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void*)&symbol, count, offset, kind); +} +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void*)&symbol, src, count, offset, kind); +} +# 1379 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void*)&symbol, count, offset, kind); +} +# 1437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void*)&symbol, src, count, offset, kind); +} +# 1496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void*)&symbol, count, offset, kind); +} + + +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, enum cudaGraphExecUpdateResult *updateResult_out) +{ + cudaGraphExecUpdateResultInfo resultInfo; + cudaError_t status = cudaGraphExecUpdate(hGraphExec, hGraph, &resultInfo); + if (hErrorNode_out) { + *hErrorNode_out = resultInfo.errorNode; + } + if (updateResult_out) { + *updateResult_out = resultInfo.result; + } + return status; +} +# 1549 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + unsigned int flags) +{ + return ::cudaUserObjectCreate( + object_out, + objectToWrap, + [](void *vpObj) { delete reinterpret_cast(vpObj); }, + initialRefcount, + flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + cudaUserObjectFlags flags) +{ + return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned int)flags); +} +# 1599 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolAddress( + void **devPtr, + const T &symbol +) +{ + return ::cudaGetSymbolAddress(devPtr, (const void*)&symbol); +} +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolSize( + size_t *size, + const T &symbol +) +{ + return ::cudaGetSymbolSize(size, (const void*)&symbol); +} +# 1683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetCacheConfig( + T *func, + enum cudaFuncCache cacheConfig +) +{ + return ::cudaFuncSetCacheConfig((const void*)func, cacheConfig); +} + +template +static __inline__ +__attribute__((deprecated)) +__attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig( + T *func, + enum cudaSharedMemConfig config +) +{ + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + + + + return ::cudaFuncSetSharedMemConfig((const void*)func, config); + +#pragma GCC diagnostic pop + +} +# 1743 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, 0x00); +} +# 1796 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize, + unsigned int flags) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, flags); +} + + + + +class __cudaOccupancyB2DHelper { + size_t n; +public: + inline __attribute__((host)) __attribute__((device)) __cudaOccupancyB2DHelper(size_t n_) : n(n_) {} + inline __attribute__((host)) __attribute__((device)) size_t operator()(int) + { + return n; + } +}; +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + cudaError_t status; + + + int device; + struct cudaFuncAttributes attr; + + + int maxThreadsPerMultiProcessor; + int warpSize; + int devMaxThreadsPerBlock; + int multiProcessorCount; + int funcMaxThreadsPerBlock; + int occupancyLimit; + int granularity; + + + int maxBlockSize = 0; + int numBlocks = 0; + int maxOccupancy = 0; + + + int blockSizeToTryAligned; + int blockSizeToTry; + int blockSizeLimitAligned; + int occupancyInBlocks; + int occupancyInThreads; + size_t dynamicSMemSize; + + + + + + if (!minGridSize || !blockSize || !func) { + return cudaErrorInvalidValue; + } + + + + + + status = ::cudaGetDevice(&device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &maxThreadsPerMultiProcessor, + cudaDevAttrMaxThreadsPerMultiProcessor, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &warpSize, + cudaDevAttrWarpSize, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &devMaxThreadsPerBlock, + cudaDevAttrMaxThreadsPerBlock, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &multiProcessorCount, + cudaDevAttrMultiProcessorCount, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaFuncGetAttributes(&attr, func); + if (status != cudaSuccess) { + return status; + } + + funcMaxThreadsPerBlock = attr.maxThreadsPerBlock; + + + + + + occupancyLimit = maxThreadsPerMultiProcessor; + granularity = warpSize; + + if (blockSizeLimit == 0) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (devMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (funcMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = funcMaxThreadsPerBlock; + } + + blockSizeLimitAligned = ((blockSizeLimit + (granularity - 1)) / granularity) * granularity; + + for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { + + + + if (blockSizeLimit < blockSizeToTryAligned) { + blockSizeToTry = blockSizeLimit; + } else { + blockSizeToTry = blockSizeToTryAligned; + } + + dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); + + status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + &occupancyInBlocks, + func, + blockSizeToTry, + dynamicSMemSize, + flags); + + if (status != cudaSuccess) { + return status; + } + + occupancyInThreads = blockSizeToTry * occupancyInBlocks; + + if (occupancyInThreads > maxOccupancy) { + maxBlockSize = blockSizeToTry; + numBlocks = occupancyInBlocks; + maxOccupancy = occupancyInThreads; + } + + + + if (occupancyLimit == maxOccupancy) { + break; + } + } + + + + + + + + *minGridSize = numBlocks * multiProcessorCount; + *blockSize = maxBlockSize; + + return status; +} +# 2062 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMem( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0x00); +} +# 2108 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSize( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, 0x00); +} +# 2147 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock( + size_t *dynamicSmemSize, + T *func, + int numBlocks, + int blockSize) +{ + return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void*)func, numBlocks, blockSize); +} +# 2206 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeWithFlags( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, flags); +} +# 2251 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxPotentialClusterSize( + int *clusterSize, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void*)func, config); +} +# 2295 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveClusters( + int *numClusters, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxActiveClusters(numClusters, (const void*)func, config); +} +# 2336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetAttributes( + struct cudaFuncAttributes *attr, + T *entry +) +{ + return ::cudaFuncGetAttributes(attr, (const void*)entry); +} +# 2402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetAttribute( + T *func, + enum cudaFuncAttribute attr, + int value +) +{ + return ::cudaFuncSetAttribute((const void*)func, attr, value); +} +# 2435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetName( + const char **name, + T *func +) +{ + return ::cudaFuncGetName(name, (const void *)func); +} +# 2458 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetKernel( + cudaKernel_t *kernelPtr, + T *func +) +{ + return ::cudaGetKernel(kernelPtr, (const void *)func); +} +# 2496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetGlobal(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +{ + return ::cudaLibraryGetGlobal((void**)(void*)dptr, bytes, library, name); +} +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetManaged(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +{ + return ::cudaLibraryGetManaged((void**)(void*)dptr, bytes, library, name); +} +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLibraryGetUnifiedFunction(T **fptr, cudaLibrary_t library, const char *symbol) +{ + return ::cudaLibraryGetUnifiedFunction((void**)(void*)fptr, library, symbol); +} +# 2576 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 0 "" 2 +# 1 "CMakeCUDACompilerId.cu" +# 477 "CMakeCUDACompilerId.cu" +char const* info_compiler = "INFO" ":" "compiler[" "NVIDIA" "]"; + +char const* info_simulate = "INFO" ":" "simulate[" "GNU" "]"; +# 790 "CMakeCUDACompilerId.cu" +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((12) / 10000000)%10)), ('0' + (((12) / 1000000)%10)), ('0' + (((12) / 100000)%10)), ('0' + (((12) / 10000)%10)), ('0' + (((12) / 1000)%10)), ('0' + (((12) / 100)%10)), ('0' + (((12) / 10)%10)), ('0' + ((12) % 10)), + + '.', ('0' + (((8) / 10000000)%10)), ('0' + (((8) / 1000000)%10)), ('0' + (((8) / 100000)%10)), ('0' + (((8) / 10000)%10)), ('0' + (((8) / 1000)%10)), ('0' + (((8) / 100)%10)), ('0' + (((8) / 10)%10)), ('0' + ((8) % 10)), + + '.', ('0' + (((93) / 10000000)%10)), ('0' + (((93) / 1000000)%10)), ('0' + (((93) / 100000)%10)), ('0' + (((93) / 10000)%10)), ('0' + (((93) / 1000)%10)), ('0' + (((93) / 100)%10)), ('0' + (((93) / 10)%10)), ('0' + ((93) % 10)), + + + + + + ']','\0'}; +# 819 "CMakeCUDACompilerId.cu" +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + ('0' + (((14) / 10000000)%10)), ('0' + (((14) / 1000000)%10)), ('0' + (((14) / 100000)%10)), ('0' + (((14) / 10000)%10)), ('0' + (((14) / 1000)%10)), ('0' + (((14) / 100)%10)), ('0' + (((14) / 10)%10)), ('0' + ((14) % 10)), + + '.', ('0' + (((2) / 10000000)%10)), ('0' + (((2) / 1000000)%10)), ('0' + (((2) / 100000)%10)), ('0' + (((2) / 10000)%10)), ('0' + (((2) / 1000)%10)), ('0' + (((2) / 100)%10)), ('0' + (((2) / 10)%10)), ('0' + ((2) % 10)), + + + + + + + + ']','\0'}; + + + + + + +char const* info_platform = "INFO" ":" "platform[" "Linux" "]"; +char const* info_arch = "INFO" ":" "arch[" "]"; + + + + +char const* info_host_compiler = "INFO" ":" "host_compiler[" "GNU" "]"; + + + + +char const info_host_compiler_version[] = { + 'I', 'N', 'F', 'O', ':','h','o','s','t','_', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((14) / 10000000)%10)), ('0' + (((14) / 1000000)%10)), ('0' + (((14) / 100000)%10)), ('0' + (((14) / 10000)%10)), ('0' + (((14) / 1000)%10)), ('0' + (((14) / 100)%10)), ('0' + (((14) / 10)%10)), ('0' + ((14) % 10)), + + '.', ('0' + (((2) / 10000000)%10)), ('0' + (((2) / 1000000)%10)), ('0' + (((2) / 100000)%10)), ('0' + (((2) / 10000)%10)), ('0' + (((2) / 1000)%10)), ('0' + (((2) / 100)%10)), ('0' + (((2) / 10)%10)), ('0' + ((2) % 10)), + + '.', ('0' + (((1) / 10000000)%10)), ('0' + (((1) / 1000000)%10)), ('0' + (((1) / 100000)%10)), ('0' + (((1) / 10000)%10)), ('0' + (((1) / 1000)%10)), ('0' + (((1) / 100)%10)), ('0' + (((1) / 10)%10)), ('0' + ((1) % 10)), + + + + + + ']','\0'}; +# 882 "CMakeCUDACompilerId.cu" +const char* info_language_standard_default = "INFO" ":" "standard_default[" + + + + + + + + "17" + + + + + + + +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" + + + "ON" + + + +"]"; + + + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + + require += info_version[argc]; + + + require += info_simulate[argc]; + + + require += info_simulate_version[argc]; + + + require += info_host_compiler[argc]; + + + require += info_host_compiler_version[argc]; + + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c new file mode 100644 index 0000000..4b1ecad --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c @@ -0,0 +1,51 @@ +# 1 "CMakeCUDACompilerId.cu" +# 477 "CMakeCUDACompilerId.cu" +extern const char *info_compiler; + +extern const char *info_simulate; +# 790 "CMakeCUDACompilerId.cu" +static const char info_version[50]; +# 819 "CMakeCUDACompilerId.cu" +static const char info_simulate_version[41]; +# 839 "CMakeCUDACompilerId.cu" +extern const char *info_platform; +extern const char *info_arch; + + + + +extern const char *info_host_compiler; + + + + +static const char info_host_compiler_version[55]; +# 882 "CMakeCUDACompilerId.cu" +extern const char *info_language_standard_default; +# 900 "CMakeCUDACompilerId.cu" +extern const char *info_language_extensions_default; +# 477 "CMakeCUDACompilerId.cu" +const char *info_compiler = ((const char *)"INFO:compiler[NVIDIA]"); + +const char *info_simulate = ((const char *)"INFO:simulate[GNU]"); +# 790 "CMakeCUDACompilerId.cu" +static const char info_version[50] = {((char)73),((char)78),((char)70),((char)79),((char)58),((char)99),((char)111),((char)109),((char)112),((char)105),((char)108),((char)101),((char)114),((char)95),((char)118),((char)101),((char)114),((char)115),((char)105),((char)111),((char)110),((char)91),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)50),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)56),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)57),((char)51),((char)93),((char)0)}; +# 819 "CMakeCUDACompilerId.cu" +static const char info_simulate_version[41] = {((char)73),((char)78),((char)70),((char)79),((char)58),((char)115),((char)105),((char)109),((char)117),((char)108),((char)97),((char)116),((char)101),((char)95),((char)118),((char)101),((char)114),((char)115),((char)105),((char)111),((char)110),((char)91),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)52),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)50),((char)93),((char)0)}; +# 839 "CMakeCUDACompilerId.cu" +const char *info_platform = ((const char *)"INFO:platform[Linux]"); +const char *info_arch = ((const char *)"INFO:arch[]"); + + + + +const char *info_host_compiler = ((const char *)"INFO:host_compiler[GNU]"); + + + + +static const char info_host_compiler_version[55] = {((char)73),((char)78),((char)70),((char)79),((char)58),((char)104),((char)111),((char)115),((char)116),((char)95),((char)99),((char)111),((char)109),((char)112),((char)105),((char)108),((char)101),((char)114),((char)95),((char)118),((char)101),((char)114),((char)115),((char)105),((char)111),((char)110),((char)91),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)52),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)50),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)93),((char)0)}; +# 882 "CMakeCUDACompilerId.cu" +const char *info_language_standard_default = ((const char *)"INFO:standard_default[17]"); +# 900 "CMakeCUDACompilerId.cu" +const char *info_language_extensions_default = ((const char *)"INFO:extensions_default[ON]"); diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp new file mode 100644 index 0000000..599e687 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp @@ -0,0 +1,36281 @@ +# 1 "CMakeCUDACompilerId.cu" +#pragma GCC diagnostic ignored "-Wunused-local-typedefs" +# 1 +#pragma GCC diagnostic push +# 1 +#pragma GCC diagnostic ignored "-Wunused-variable" +# 1 +#pragma GCC diagnostic ignored "-Wunused-function" +# 1 +static char __nv_inited_managed_rt = 0; static void **__nv_fatbinhandle_for_managed_rt; static void __nv_save_fatbinhandle_for_managed_rt(void **in){__nv_fatbinhandle_for_managed_rt = in;} static char __nv_init_managed_rt_with_module(void **); static inline void __nv_init_managed_rt(void) { __nv_inited_managed_rt = (__nv_inited_managed_rt ? __nv_inited_managed_rt : __nv_init_managed_rt_with_module(__nv_fatbinhandle_for_managed_rt));} +# 1 +#pragma GCC diagnostic pop +# 1 +#pragma GCC diagnostic ignored "-Wunused-variable" + +# 1 +#define __nv_is_extended_device_lambda_closure_type(X) false +#define __nv_is_extended_host_device_lambda_closure_type(X) false +#define __nv_is_extended_device_lambda_with_preserved_return_type(X) false +#if defined(__nv_is_extended_device_lambda_closure_type) && defined(__nv_is_extended_host_device_lambda_closure_type)&& defined(__nv_is_extended_device_lambda_with_preserved_return_type) +#endif + +# 1 +# 61 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic push +# 64 +#pragma GCC diagnostic ignored "-Wunused-function" +# 31 "/usr/include/bits/types.h" 3 +typedef unsigned char __u_char; +# 32 +typedef unsigned short __u_short; +# 33 +typedef unsigned __u_int; +# 34 +typedef unsigned long __u_long; +# 37 +typedef signed char __int8_t; +# 38 +typedef unsigned char __uint8_t; +# 39 +typedef signed short __int16_t; +# 40 +typedef unsigned short __uint16_t; +# 41 +typedef signed int __int32_t; +# 42 +typedef unsigned __uint32_t; +# 44 +typedef signed long __int64_t; +# 45 +typedef unsigned long __uint64_t; +# 52 +typedef __int8_t __int_least8_t; +# 53 +typedef __uint8_t __uint_least8_t; +# 54 +typedef __int16_t __int_least16_t; +# 55 +typedef __uint16_t __uint_least16_t; +# 56 +typedef __int32_t __int_least32_t; +# 57 +typedef __uint32_t __uint_least32_t; +# 58 +typedef __int64_t __int_least64_t; +# 59 +typedef __uint64_t __uint_least64_t; +# 63 +typedef long __quad_t; +# 64 +typedef unsigned long __u_quad_t; +# 72 +typedef long __intmax_t; +# 73 +typedef unsigned long __uintmax_t; +# 145 "/usr/include/bits/types.h" 3 +typedef unsigned long __dev_t; +# 146 +typedef unsigned __uid_t; +# 147 +typedef unsigned __gid_t; +# 148 +typedef unsigned long __ino_t; +# 149 +typedef unsigned long __ino64_t; +# 150 +typedef unsigned __mode_t; +# 151 +typedef unsigned long __nlink_t; +# 152 +typedef long __off_t; +# 153 +typedef long __off64_t; +# 154 +typedef int __pid_t; +# 155 +typedef struct { int __val[2]; } __fsid_t; +# 156 +typedef long __clock_t; +# 157 +typedef unsigned long __rlim_t; +# 158 +typedef unsigned long __rlim64_t; +# 159 +typedef unsigned __id_t; +# 160 +typedef long __time_t; +# 161 +typedef unsigned __useconds_t; +# 162 +typedef long __suseconds_t; +# 163 +typedef long __suseconds64_t; +# 165 +typedef int __daddr_t; +# 166 +typedef int __key_t; +# 169 +typedef int __clockid_t; +# 172 +typedef void *__timer_t; +# 175 +typedef long __blksize_t; +# 180 +typedef long __blkcnt_t; +# 181 +typedef long __blkcnt64_t; +# 184 +typedef unsigned long __fsblkcnt_t; +# 185 +typedef unsigned long __fsblkcnt64_t; +# 188 +typedef unsigned long __fsfilcnt_t; +# 189 +typedef unsigned long __fsfilcnt64_t; +# 192 +typedef long __fsword_t; +# 194 +typedef long __ssize_t; +# 197 +typedef long __syscall_slong_t; +# 199 +typedef unsigned long __syscall_ulong_t; +# 203 +typedef __off64_t __loff_t; +# 204 +typedef char *__caddr_t; +# 207 +typedef long __intptr_t; +# 210 +typedef unsigned __socklen_t; +# 215 +typedef int __sig_atomic_t; +# 28 "/usr/include/ctype.h" 3 +extern "C" { +# 47 "/usr/include/ctype.h" 3 +enum { +# 48 +_ISupper = ((0 < 8) ? (1 << 0) << 8 : ((1 << 0) >> 8)), +# 49 +_ISlower = ((1 < 8) ? (1 << 1) << 8 : ((1 << 1) >> 8)), +# 50 +_ISalpha = ((2 < 8) ? (1 << 2) << 8 : ((1 << 2) >> 8)), +# 51 +_ISdigit = ((3 < 8) ? (1 << 3) << 8 : ((1 << 3) >> 8)), +# 52 +_ISxdigit = ((4 < 8) ? (1 << 4) << 8 : ((1 << 4) >> 8)), +# 53 +_ISspace = ((5 < 8) ? (1 << 5) << 8 : ((1 << 5) >> 8)), +# 54 +_ISprint = ((6 < 8) ? (1 << 6) << 8 : ((1 << 6) >> 8)), +# 55 +_ISgraph = ((7 < 8) ? (1 << 7) << 8 : ((1 << 7) >> 8)), +# 56 +_ISblank = ((8 < 8) ? (1 << 8) << 8 : ((1 << 8) >> 8)), +# 57 +_IScntrl, +# 58 +_ISpunct = ((10 < 8) ? (1 << 10) << 8 : ((1 << 10) >> 8)), +# 59 +_ISalnum = ((11 < 8) ? (1 << 11) << 8 : ((1 << 11) >> 8)) +# 60 +}; +# 79 "/usr/include/ctype.h" 3 +extern const unsigned short **__ctype_b_loc() noexcept(true) +# 80 + __attribute((const)); +# 81 +extern const __int32_t **__ctype_tolower_loc() noexcept(true) +# 82 + __attribute((const)); +# 83 +extern const __int32_t **__ctype_toupper_loc() noexcept(true) +# 84 + __attribute((const)); +# 108 "/usr/include/ctype.h" 3 +extern int isalnum(int) noexcept(true); +# 109 +extern int isalpha(int) noexcept(true); +# 110 +extern int iscntrl(int) noexcept(true); +# 111 +extern int isdigit(int) noexcept(true); +# 112 +extern int islower(int) noexcept(true); +# 113 +extern int isgraph(int) noexcept(true); +# 114 +extern int isprint(int) noexcept(true); +# 115 +extern int ispunct(int) noexcept(true); +# 116 +extern int isspace(int) noexcept(true); +# 117 +extern int isupper(int) noexcept(true); +# 118 +extern int isxdigit(int) noexcept(true); +# 122 +extern int tolower(int __c) noexcept(true); +# 125 +extern int toupper(int __c) noexcept(true); +# 130 +extern int isblank(int) noexcept(true); +# 135 +extern int isctype(int __c, int __mask) noexcept(true); +# 142 +extern int isascii(int __c) noexcept(true); +# 146 +extern int toascii(int __c) noexcept(true); +# 150 +extern int _toupper(int) noexcept(true); +# 151 +extern int _tolower(int) noexcept(true); +# 27 "/usr/include/bits/types/__locale_t.h" 3 +struct __locale_struct { +# 30 +struct __locale_data *__locales[13]; +# 33 +const unsigned short *__ctype_b; +# 34 +const int *__ctype_tolower; +# 35 +const int *__ctype_toupper; +# 38 +const char *__names[13]; +# 39 +}; +# 41 +typedef __locale_struct *__locale_t; +# 24 "/usr/include/bits/types/locale_t.h" 3 +typedef __locale_t locale_t; +# 251 "/usr/include/ctype.h" 3 +extern int isalnum_l(int, locale_t) noexcept(true); +# 252 +extern int isalpha_l(int, locale_t) noexcept(true); +# 253 +extern int iscntrl_l(int, locale_t) noexcept(true); +# 254 +extern int isdigit_l(int, locale_t) noexcept(true); +# 255 +extern int islower_l(int, locale_t) noexcept(true); +# 256 +extern int isgraph_l(int, locale_t) noexcept(true); +# 257 +extern int isprint_l(int, locale_t) noexcept(true); +# 258 +extern int ispunct_l(int, locale_t) noexcept(true); +# 259 +extern int isspace_l(int, locale_t) noexcept(true); +# 260 +extern int isupper_l(int, locale_t) noexcept(true); +# 261 +extern int isxdigit_l(int, locale_t) noexcept(true); +# 263 +extern int isblank_l(int, locale_t) noexcept(true); +# 267 +extern int __tolower_l(int __c, locale_t __l) noexcept(true); +# 268 +extern int tolower_l(int __c, locale_t __l) noexcept(true); +# 271 +extern int __toupper_l(int __c, locale_t __l) noexcept(true); +# 272 +extern int toupper_l(int __c, locale_t __l) noexcept(true); +# 327 "/usr/include/ctype.h" 3 +} +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_types.h" +#if 0 +# 68 +enum cudaRoundMode { +# 70 +cudaRoundNearest, +# 71 +cudaRoundZero, +# 72 +cudaRoundPosInf, +# 73 +cudaRoundMinInf +# 74 +}; +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 104 +struct char1 { +# 106 +signed char x; +# 107 +}; +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 109 +struct uchar1 { +# 111 +unsigned char x; +# 112 +}; +#endif +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 115 +struct __attribute((aligned(2))) char2 { +# 117 +signed char x, y; +# 118 +}; +#endif +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 120 +struct __attribute((aligned(2))) uchar2 { +# 122 +unsigned char x, y; +# 123 +}; +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 125 +struct char3 { +# 127 +signed char x, y, z; +# 128 +}; +#endif +# 130 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 130 +struct uchar3 { +# 132 +unsigned char x, y, z; +# 133 +}; +#endif +# 135 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 135 +struct __attribute((aligned(4))) char4 { +# 137 +signed char x, y, z, w; +# 138 +}; +#endif +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 140 +struct __attribute((aligned(4))) uchar4 { +# 142 +unsigned char x, y, z, w; +# 143 +}; +#endif +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 145 +struct short1 { +# 147 +short x; +# 148 +}; +#endif +# 150 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 150 +struct ushort1 { +# 152 +unsigned short x; +# 153 +}; +#endif +# 155 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 155 +struct __attribute((aligned(4))) short2 { +# 157 +short x, y; +# 158 +}; +#endif +# 160 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 160 +struct __attribute((aligned(4))) ushort2 { +# 162 +unsigned short x, y; +# 163 +}; +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 165 +struct short3 { +# 167 +short x, y, z; +# 168 +}; +#endif +# 170 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 170 +struct ushort3 { +# 172 +unsigned short x, y, z; +# 173 +}; +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 175 +struct __attribute((aligned(8))) short4 { short x; short y; short z; short w; }; +#endif +# 176 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 176 +struct __attribute((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; +#endif +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 178 +struct int1 { +# 180 +int x; +# 181 +}; +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 183 +struct uint1 { +# 185 +unsigned x; +# 186 +}; +#endif +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 188 +struct __attribute((aligned(8))) int2 { int x; int y; }; +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 189 +struct __attribute((aligned(8))) uint2 { unsigned x; unsigned y; }; +#endif +# 191 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 191 +struct int3 { +# 193 +int x, y, z; +# 194 +}; +#endif +# 196 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 196 +struct uint3 { +# 198 +unsigned x, y, z; +# 199 +}; +#endif +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 201 +struct __attribute((aligned(16))) int4 { +# 203 +int x, y, z, w; +# 204 +}; +#endif +# 206 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 206 +struct __attribute((aligned(16))) uint4 { +# 208 +unsigned x, y, z, w; +# 209 +}; +#endif +# 211 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 211 +struct long1 { +# 213 +long x; +# 214 +}; +#endif +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 216 +struct ulong1 { +# 218 +unsigned long x; +# 219 +}; +#endif +# 226 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 226 +struct __attribute((aligned((2) * sizeof(long)))) long2 { +# 228 +long x, y; +# 229 +}; +#endif +# 231 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 231 +struct __attribute((aligned((2) * sizeof(unsigned long)))) ulong2 { +# 233 +unsigned long x, y; +# 234 +}; +#endif +# 238 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 238 +struct long3 { +# 240 +long x, y, z; +# 241 +}; +#endif +# 243 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 243 +struct ulong3 { +# 245 +unsigned long x, y, z; +# 246 +}; +#endif +# 248 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 248 +struct __attribute((aligned(16))) long4 { +# 250 +long x, y, z, w; +# 251 +}; +#endif +# 253 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 253 +struct __attribute((aligned(16))) ulong4 { +# 255 +unsigned long x, y, z, w; +# 256 +}; +#endif +# 258 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 258 +struct float1 { +# 260 +float x; +# 261 +}; +#endif +# 280 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 280 +struct __attribute((aligned(8))) float2 { float x; float y; }; +#endif +# 285 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 285 +struct float3 { +# 287 +float x, y, z; +# 288 +}; +#endif +# 290 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 290 +struct __attribute((aligned(16))) float4 { +# 292 +float x, y, z, w; +# 293 +}; +#endif +# 295 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 295 +struct longlong1 { +# 297 +long long x; +# 298 +}; +#endif +# 300 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 300 +struct ulonglong1 { +# 302 +unsigned long long x; +# 303 +}; +#endif +# 305 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 305 +struct __attribute((aligned(16))) longlong2 { +# 307 +long long x, y; +# 308 +}; +#endif +# 310 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 310 +struct __attribute((aligned(16))) ulonglong2 { +# 312 +unsigned long long x, y; +# 313 +}; +#endif +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 315 +struct longlong3 { +# 317 +long long x, y, z; +# 318 +}; +#endif +# 320 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 320 +struct ulonglong3 { +# 322 +unsigned long long x, y, z; +# 323 +}; +#endif +# 325 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 325 +struct __attribute((aligned(16))) longlong4 { +# 327 +long long x, y, z, w; +# 328 +}; +#endif +# 330 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 330 +struct __attribute((aligned(16))) ulonglong4 { +# 332 +unsigned long long x, y, z, w; +# 333 +}; +#endif +# 335 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 335 +struct double1 { +# 337 +double x; +# 338 +}; +#endif +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 340 +struct __attribute((aligned(16))) double2 { +# 342 +double x, y; +# 343 +}; +#endif +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 345 +struct double3 { +# 347 +double x, y, z; +# 348 +}; +#endif +# 350 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 350 +struct __attribute((aligned(16))) double4 { +# 352 +double x, y, z, w; +# 353 +}; +#endif +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef char1 +# 367 +char1; +#endif +# 368 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uchar1 +# 368 +uchar1; +#endif +# 369 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef char2 +# 369 +char2; +#endif +# 370 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uchar2 +# 370 +uchar2; +#endif +# 371 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef char3 +# 371 +char3; +#endif +# 372 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uchar3 +# 372 +uchar3; +#endif +# 373 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef char4 +# 373 +char4; +#endif +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uchar4 +# 374 +uchar4; +#endif +# 375 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef short1 +# 375 +short1; +#endif +# 376 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ushort1 +# 376 +ushort1; +#endif +# 377 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef short2 +# 377 +short2; +#endif +# 378 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ushort2 +# 378 +ushort2; +#endif +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef short3 +# 379 +short3; +#endif +# 380 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ushort3 +# 380 +ushort3; +#endif +# 381 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef short4 +# 381 +short4; +#endif +# 382 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ushort4 +# 382 +ushort4; +#endif +# 383 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef int1 +# 383 +int1; +#endif +# 384 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uint1 +# 384 +uint1; +#endif +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef int2 +# 385 +int2; +#endif +# 386 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uint2 +# 386 +uint2; +#endif +# 387 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef int3 +# 387 +int3; +#endif +# 388 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uint3 +# 388 +uint3; +#endif +# 389 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef int4 +# 389 +int4; +#endif +# 390 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef uint4 +# 390 +uint4; +#endif +# 391 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef long1 +# 391 +long1; +#endif +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulong1 +# 392 +ulong1; +#endif +# 393 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef long2 +# 393 +long2; +#endif +# 394 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulong2 +# 394 +ulong2; +#endif +# 395 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef long3 +# 395 +long3; +#endif +# 396 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulong3 +# 396 +ulong3; +#endif +# 397 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef long4 +# 397 +long4; +#endif +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulong4 +# 398 +ulong4; +#endif +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef float1 +# 399 +float1; +#endif +# 400 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef float2 +# 400 +float2; +#endif +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef float3 +# 401 +float3; +#endif +# 402 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef float4 +# 402 +float4; +#endif +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef longlong1 +# 403 +longlong1; +#endif +# 404 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulonglong1 +# 404 +ulonglong1; +#endif +# 405 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef longlong2 +# 405 +longlong2; +#endif +# 406 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulonglong2 +# 406 +ulonglong2; +#endif +# 407 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef longlong3 +# 407 +longlong3; +#endif +# 408 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulonglong3 +# 408 +ulonglong3; +#endif +# 409 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef longlong4 +# 409 +longlong4; +#endif +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef ulonglong4 +# 410 +ulonglong4; +#endif +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef double1 +# 411 +double1; +#endif +# 412 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef double2 +# 412 +double2; +#endif +# 413 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef double3 +# 413 +double3; +#endif +# 414 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef double4 +# 414 +double4; +#endif +# 426 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +# 426 +struct dim3 { +# 428 +unsigned x, y, z; +# 440 +}; +#endif +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_types.h" +#if 0 +typedef dim3 +# 442 +dim3; +#endif +# 23 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 +extern "C" { +# 24 +extern long __sysconf(int __name) noexcept(true); +# 25 +} +# 145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +typedef long ptrdiff_t; +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +typedef unsigned long size_t; +#if !defined(__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__) +#define __CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ +#endif +#include "crt/host_runtime.h" +# 436 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +typedef +# 425 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +struct { +# 426 +long long __max_align_ll __attribute((__aligned__(__alignof__(long long)))); +# 427 +long double __max_align_ld __attribute((__aligned__(__alignof__(long double)))); +# 436 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +} max_align_t; +# 443 +typedef __decltype((nullptr)) nullptr_t; +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 205 +enum cudaError { +# 212 +cudaSuccess, +# 218 +cudaErrorInvalidValue, +# 224 +cudaErrorMemoryAllocation, +# 230 +cudaErrorInitializationError, +# 237 +cudaErrorCudartUnloading, +# 244 +cudaErrorProfilerDisabled, +# 252 +cudaErrorProfilerNotInitialized, +# 259 +cudaErrorProfilerAlreadyStarted, +# 266 +cudaErrorProfilerAlreadyStopped, +# 274 +cudaErrorInvalidConfiguration, +# 280 +cudaErrorInvalidPitchValue = 12, +# 286 +cudaErrorInvalidSymbol, +# 294 +cudaErrorInvalidHostPointer = 16, +# 302 +cudaErrorInvalidDevicePointer, +# 307 +cudaErrorInvalidTexture, +# 313 +cudaErrorInvalidTextureBinding, +# 320 +cudaErrorInvalidChannelDescriptor, +# 326 +cudaErrorInvalidMemcpyDirection, +# 336 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorAddressOfConstant, +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorTextureFetchFailed, +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorTextureNotBound, +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSynchronizationError, +# 368 +cudaErrorInvalidFilterSetting, +# 374 +cudaErrorInvalidNormSetting, +# 382 +cudaErrorMixedDeviceExecution, +# 390 +cudaErrorNotYetImplemented = 31, +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorMemoryValueTooLarge, +# 405 +cudaErrorStubLibrary = 34, +# 412 +cudaErrorInsufficientDriver, +# 419 +cudaErrorCallRequiresNewerDriver, +# 425 +cudaErrorInvalidSurface, +# 431 +cudaErrorDuplicateVariableName = 43, +# 437 +cudaErrorDuplicateTextureName, +# 443 +cudaErrorDuplicateSurfaceName, +# 453 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorDevicesUnavailable, +# 466 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorIncompatibleDriverContext = 49, +# 472 +cudaErrorMissingConfiguration = 52, +# 481 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorPriorLaunchFailure, +# 487 +cudaErrorLaunchMaxDepthExceeded = 65, +# 495 +cudaErrorLaunchFileScopedTex, +# 503 +cudaErrorLaunchFileScopedSurf, +# 519 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSyncDepthExceeded, +# 531 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorLaunchPendingCountExceeded, +# 537 +cudaErrorInvalidDeviceFunction = 98, +# 543 +cudaErrorNoDevice = 100, +# 550 +cudaErrorInvalidDevice, +# 555 +cudaErrorDeviceNotLicensed, +# 564 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSoftwareValidityNotEstablished, +# 569 +cudaErrorStartupFailure = 127, +# 574 +cudaErrorInvalidKernelImage = 200, +# 584 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorDeviceUninitialized, +# 589 +cudaErrorMapBufferObjectFailed = 205, +# 594 +cudaErrorUnmapBufferObjectFailed, +# 600 +cudaErrorArrayIsMapped, +# 605 +cudaErrorAlreadyMapped, +# 613 +cudaErrorNoKernelImageForDevice, +# 618 +cudaErrorAlreadyAcquired, +# 623 +cudaErrorNotMapped, +# 629 +cudaErrorNotMappedAsArray, +# 635 +cudaErrorNotMappedAsPointer, +# 641 +cudaErrorECCUncorrectable, +# 647 +cudaErrorUnsupportedLimit, +# 653 +cudaErrorDeviceAlreadyInUse, +# 659 +cudaErrorPeerAccessUnsupported, +# 665 +cudaErrorInvalidPtx, +# 670 +cudaErrorInvalidGraphicsContext, +# 676 +cudaErrorNvlinkUncorrectable, +# 683 +cudaErrorJitCompilerNotFound, +# 690 +cudaErrorUnsupportedPtxVersion, +# 697 +cudaErrorJitCompilationDisabled, +# 702 +cudaErrorUnsupportedExecAffinity, +# 708 +cudaErrorUnsupportedDevSideSync, +# 719 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorContained, +# 724 +cudaErrorInvalidSource = 300, +# 729 +cudaErrorFileNotFound, +# 734 +cudaErrorSharedObjectSymbolNotFound, +# 739 +cudaErrorSharedObjectInitFailed, +# 744 +cudaErrorOperatingSystem, +# 751 +cudaErrorInvalidResourceHandle = 400, +# 757 +cudaErrorIllegalState, +# 765 +cudaErrorLossyQuery, +# 772 +cudaErrorSymbolNotFound = 500, +# 780 +cudaErrorNotReady = 600, +# 788 +cudaErrorIllegalAddress = 700, +# 797 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorLaunchOutOfResources, +# 808 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorLaunchTimeout, +# 814 +cudaErrorLaunchIncompatibleTexturing, +# 821 +cudaErrorPeerAccessAlreadyEnabled, +# 828 +cudaErrorPeerAccessNotEnabled, +# 841 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSetOnActiveProcess = 708, +# 848 +cudaErrorContextIsDestroyed, +# 855 +cudaErrorAssert, +# 862 +cudaErrorTooManyPeers, +# 868 +cudaErrorHostMemoryAlreadyRegistered, +# 874 +cudaErrorHostMemoryNotRegistered, +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorHardwareStackError, +# 891 +cudaErrorIllegalInstruction, +# 900 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorMisalignedAddress, +# 911 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorInvalidAddressSpace, +# 919 +cudaErrorInvalidPc, +# 930 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorLaunchFailure, +# 939 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorCooperativeLaunchTooLarge, +# 947 +cudaErrorTensorMemoryLeak, +# 952 +cudaErrorNotPermitted = 800, +# 958 +cudaErrorNotSupported, +# 967 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorSystemNotReady, +# 974 +cudaErrorSystemDriverMismatch, +# 983 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorCompatNotSupportedOnDevice, +# 988 +cudaErrorMpsConnectionFailed, +# 993 +cudaErrorMpsRpcFailure, +# 999 +cudaErrorMpsServerNotReady, +# 1004 +cudaErrorMpsMaxClientsReached, +# 1009 +cudaErrorMpsMaxConnectionsReached, +# 1014 +cudaErrorMpsClientTerminated, +# 1019 +cudaErrorCdpNotSupported, +# 1024 +cudaErrorCdpVersionMismatch, +# 1029 +cudaErrorStreamCaptureUnsupported = 900, +# 1035 +cudaErrorStreamCaptureInvalidated, +# 1041 +cudaErrorStreamCaptureMerge, +# 1046 +cudaErrorStreamCaptureUnmatched, +# 1052 +cudaErrorStreamCaptureUnjoined, +# 1059 +cudaErrorStreamCaptureIsolation, +# 1065 +cudaErrorStreamCaptureImplicit, +# 1071 +cudaErrorCapturedEvent, +# 1078 +cudaErrorStreamCaptureWrongThread, +# 1083 +cudaErrorTimeout, +# 1089 +cudaErrorGraphExecUpdateFailure, +# 1099 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaErrorExternalDevice, +# 1105 +cudaErrorInvalidClusterSize, +# 1111 +cudaErrorFunctionNotLoaded, +# 1117 +cudaErrorInvalidResourceType, +# 1123 +cudaErrorInvalidResourceConfiguration, +# 1128 +cudaErrorUnknown = 999, +# 1136 +cudaErrorApiFailureBase = 10000 +# 1137 +}; +#endif +# 1142 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1142 +enum cudaChannelFormatKind { +# 1144 +cudaChannelFormatKindSigned, +# 1145 +cudaChannelFormatKindUnsigned, +# 1146 +cudaChannelFormatKindFloat, +# 1147 +cudaChannelFormatKindNone, +# 1148 +cudaChannelFormatKindNV12, +# 1149 +cudaChannelFormatKindUnsignedNormalized8X1, +# 1150 +cudaChannelFormatKindUnsignedNormalized8X2, +# 1151 +cudaChannelFormatKindUnsignedNormalized8X4, +# 1152 +cudaChannelFormatKindUnsignedNormalized16X1, +# 1153 +cudaChannelFormatKindUnsignedNormalized16X2, +# 1154 +cudaChannelFormatKindUnsignedNormalized16X4, +# 1155 +cudaChannelFormatKindSignedNormalized8X1, +# 1156 +cudaChannelFormatKindSignedNormalized8X2, +# 1157 +cudaChannelFormatKindSignedNormalized8X4, +# 1158 +cudaChannelFormatKindSignedNormalized16X1, +# 1159 +cudaChannelFormatKindSignedNormalized16X2, +# 1160 +cudaChannelFormatKindSignedNormalized16X4, +# 1161 +cudaChannelFormatKindUnsignedBlockCompressed1, +# 1162 +cudaChannelFormatKindUnsignedBlockCompressed1SRGB, +# 1163 +cudaChannelFormatKindUnsignedBlockCompressed2, +# 1164 +cudaChannelFormatKindUnsignedBlockCompressed2SRGB, +# 1165 +cudaChannelFormatKindUnsignedBlockCompressed3, +# 1166 +cudaChannelFormatKindUnsignedBlockCompressed3SRGB, +# 1167 +cudaChannelFormatKindUnsignedBlockCompressed4, +# 1168 +cudaChannelFormatKindSignedBlockCompressed4, +# 1169 +cudaChannelFormatKindUnsignedBlockCompressed5, +# 1170 +cudaChannelFormatKindSignedBlockCompressed5, +# 1171 +cudaChannelFormatKindUnsignedBlockCompressed6H, +# 1172 +cudaChannelFormatKindSignedBlockCompressed6H, +# 1173 +cudaChannelFormatKindUnsignedBlockCompressed7, +# 1174 +cudaChannelFormatKindUnsignedBlockCompressed7SRGB, +# 1175 +cudaChannelFormatKindUnsignedNormalized1010102 +# 1177 +}; +#endif +# 1182 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1182 +struct cudaChannelFormatDesc { +# 1184 +int x; +# 1185 +int y; +# 1186 +int z; +# 1187 +int w; +# 1188 +cudaChannelFormatKind f; +# 1189 +}; +#endif +# 1194 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct cudaArray *cudaArray_t; +# 1199 +typedef const cudaArray *cudaArray_const_t; +# 1201 +struct cudaArray; +# 1206 +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; +# 1211 +typedef const cudaMipmappedArray *cudaMipmappedArray_const_t; +# 1213 +struct cudaMipmappedArray; +# 1223 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1223 +struct cudaArraySparseProperties { +# 1224 +struct { +# 1225 +unsigned width; +# 1226 +unsigned height; +# 1227 +unsigned depth; +# 1228 +} tileExtent; +# 1229 +unsigned miptailFirstLevel; +# 1230 +unsigned long long miptailSize; +# 1231 +unsigned flags; +# 1232 +unsigned reserved[4]; +# 1233 +}; +#endif +# 1238 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1238 +struct cudaArrayMemoryRequirements { +# 1239 +size_t size; +# 1240 +size_t alignment; +# 1241 +unsigned reserved[4]; +# 1242 +}; +#endif +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1247 +enum cudaMemoryType { +# 1249 +cudaMemoryTypeUnregistered, +# 1250 +cudaMemoryTypeHost, +# 1251 +cudaMemoryTypeDevice, +# 1252 +cudaMemoryTypeManaged +# 1253 +}; +#endif +# 1258 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1258 +enum cudaMemcpyKind { +# 1260 +cudaMemcpyHostToHost, +# 1261 +cudaMemcpyHostToDevice, +# 1262 +cudaMemcpyDeviceToHost, +# 1263 +cudaMemcpyDeviceToDevice, +# 1264 +cudaMemcpyDefault +# 1265 +}; +#endif +# 1272 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1272 +struct cudaPitchedPtr { +# 1274 +void *ptr; +# 1275 +size_t pitch; +# 1276 +size_t xsize; +# 1277 +size_t ysize; +# 1278 +}; +#endif +# 1285 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1285 +struct cudaExtent { +# 1287 +size_t width; +# 1288 +size_t height; +# 1289 +size_t depth; +# 1290 +}; +#endif +# 1297 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1297 +struct cudaPos { +# 1299 +size_t x; +# 1300 +size_t y; +# 1301 +size_t z; +# 1302 +}; +#endif +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1307 +struct cudaMemcpy3DParms { +# 1309 +cudaArray_t srcArray; +# 1310 +cudaPos srcPos; +# 1311 +cudaPitchedPtr srcPtr; +# 1313 +cudaArray_t dstArray; +# 1314 +cudaPos dstPos; +# 1315 +cudaPitchedPtr dstPtr; +# 1317 +cudaExtent extent; +# 1318 +cudaMemcpyKind kind; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 1319 +}; +#endif +# 1324 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1324 +struct cudaMemcpyNodeParams { +# 1325 +int flags; +# 1326 +int reserved[3]; +# 1327 +cudaMemcpy3DParms copyParams; +# 1328 +}; +#endif +# 1333 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1333 +struct cudaMemcpy3DPeerParms { +# 1335 +cudaArray_t srcArray; +# 1336 +cudaPos srcPos; +# 1337 +cudaPitchedPtr srcPtr; +# 1338 +int srcDevice; +# 1340 +cudaArray_t dstArray; +# 1341 +cudaPos dstPos; +# 1342 +cudaPitchedPtr dstPtr; +# 1343 +int dstDevice; +# 1345 +cudaExtent extent; +# 1346 +}; +#endif +# 1351 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1351 +struct cudaMemsetParams { +# 1352 +void *dst; +# 1353 +size_t pitch; +# 1354 +unsigned value; +# 1355 +unsigned elementSize; +# 1356 +size_t width; +# 1357 +size_t height; +# 1358 +}; +#endif +# 1363 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1363 +struct cudaMemsetParamsV2 { +# 1364 +void *dst; +# 1365 +size_t pitch; +# 1366 +unsigned value; +# 1367 +unsigned elementSize; +# 1368 +size_t width; +# 1369 +size_t height; +# 1370 +}; +#endif +# 1375 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1375 +enum cudaAccessProperty { +# 1376 +cudaAccessPropertyNormal, +# 1377 +cudaAccessPropertyStreaming, +# 1378 +cudaAccessPropertyPersisting +# 1379 +}; +#endif +# 1392 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1392 +struct cudaAccessPolicyWindow { +# 1393 +void *base_ptr; +# 1394 +size_t num_bytes; +# 1395 +float hitRatio; +# 1396 +cudaAccessProperty hitProp; +# 1397 +cudaAccessProperty missProp; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 1398 +}; +#endif +# 1410 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef void (*cudaHostFn_t)(void * userData); +# 1415 +#if 0 +# 1415 +struct cudaHostNodeParams { +# 1416 +cudaHostFn_t fn; +# 1417 +void *userData; +# 1418 +}; +#endif +# 1423 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1423 +struct cudaHostNodeParamsV2 { +# 1424 +cudaHostFn_t fn; +# 1425 +void *userData; +# 1426 +}; +#endif +# 1431 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1431 +enum cudaStreamCaptureStatus { +# 1432 +cudaStreamCaptureStatusNone, +# 1433 +cudaStreamCaptureStatusActive, +# 1434 +cudaStreamCaptureStatusInvalidated +# 1436 +}; +#endif +# 1442 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1442 +enum cudaStreamCaptureMode { +# 1443 +cudaStreamCaptureModeGlobal, +# 1444 +cudaStreamCaptureModeThreadLocal, +# 1445 +cudaStreamCaptureModeRelaxed +# 1446 +}; +#endif +# 1448 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1448 +enum cudaSynchronizationPolicy { +# 1449 +cudaSyncPolicyAuto = 1, +# 1450 +cudaSyncPolicySpin, +# 1451 +cudaSyncPolicyYield, +# 1452 +cudaSyncPolicyBlockingSync +# 1453 +}; +#endif +# 1458 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1458 +enum cudaClusterSchedulingPolicy { +# 1459 +cudaClusterSchedulingPolicyDefault, +# 1460 +cudaClusterSchedulingPolicySpread, +# 1461 +cudaClusterSchedulingPolicyLoadBalancing +# 1462 +}; +#endif +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1467 +enum cudaStreamUpdateCaptureDependenciesFlags { +# 1468 +cudaStreamAddCaptureDependencies, +# 1469 +cudaStreamSetCaptureDependencies +# 1470 +}; +#endif +# 1475 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1475 +enum cudaUserObjectFlags { +# 1476 +cudaUserObjectNoDestructorSync = 1 +# 1477 +}; +#endif +# 1482 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1482 +enum cudaUserObjectRetainFlags { +# 1483 +cudaGraphUserObjectMove = 1 +# 1484 +}; +#endif +# 1489 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct cudaGraphicsResource; +# 1494 +#if 0 +# 1494 +enum cudaGraphicsRegisterFlags { +# 1496 +cudaGraphicsRegisterFlagsNone, +# 1497 +cudaGraphicsRegisterFlagsReadOnly, +# 1498 +cudaGraphicsRegisterFlagsWriteDiscard, +# 1499 +cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, +# 1500 +cudaGraphicsRegisterFlagsTextureGather = 8 +# 1501 +}; +#endif +# 1506 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1506 +enum cudaGraphicsMapFlags { +# 1508 +cudaGraphicsMapFlagsNone, +# 1509 +cudaGraphicsMapFlagsReadOnly, +# 1510 +cudaGraphicsMapFlagsWriteDiscard +# 1511 +}; +#endif +# 1516 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1516 +enum cudaGraphicsCubeFace { +# 1518 +cudaGraphicsCubeFacePositiveX, +# 1519 +cudaGraphicsCubeFaceNegativeX, +# 1520 +cudaGraphicsCubeFacePositiveY, +# 1521 +cudaGraphicsCubeFaceNegativeY, +# 1522 +cudaGraphicsCubeFacePositiveZ, +# 1523 +cudaGraphicsCubeFaceNegativeZ +# 1524 +}; +#endif +# 1529 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1529 +enum cudaResourceType { +# 1531 +cudaResourceTypeArray, +# 1532 +cudaResourceTypeMipmappedArray, +# 1533 +cudaResourceTypeLinear, +# 1534 +cudaResourceTypePitch2D +# 1535 +}; +#endif +# 1540 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1540 +enum cudaResourceViewFormat { +# 1542 +cudaResViewFormatNone, +# 1543 +cudaResViewFormatUnsignedChar1, +# 1544 +cudaResViewFormatUnsignedChar2, +# 1545 +cudaResViewFormatUnsignedChar4, +# 1546 +cudaResViewFormatSignedChar1, +# 1547 +cudaResViewFormatSignedChar2, +# 1548 +cudaResViewFormatSignedChar4, +# 1549 +cudaResViewFormatUnsignedShort1, +# 1550 +cudaResViewFormatUnsignedShort2, +# 1551 +cudaResViewFormatUnsignedShort4, +# 1552 +cudaResViewFormatSignedShort1, +# 1553 +cudaResViewFormatSignedShort2, +# 1554 +cudaResViewFormatSignedShort4, +# 1555 +cudaResViewFormatUnsignedInt1, +# 1556 +cudaResViewFormatUnsignedInt2, +# 1557 +cudaResViewFormatUnsignedInt4, +# 1558 +cudaResViewFormatSignedInt1, +# 1559 +cudaResViewFormatSignedInt2, +# 1560 +cudaResViewFormatSignedInt4, +# 1561 +cudaResViewFormatHalf1, +# 1562 +cudaResViewFormatHalf2, +# 1563 +cudaResViewFormatHalf4, +# 1564 +cudaResViewFormatFloat1, +# 1565 +cudaResViewFormatFloat2, +# 1566 +cudaResViewFormatFloat4, +# 1567 +cudaResViewFormatUnsignedBlockCompressed1, +# 1568 +cudaResViewFormatUnsignedBlockCompressed2, +# 1569 +cudaResViewFormatUnsignedBlockCompressed3, +# 1570 +cudaResViewFormatUnsignedBlockCompressed4, +# 1571 +cudaResViewFormatSignedBlockCompressed4, +# 1572 +cudaResViewFormatUnsignedBlockCompressed5, +# 1573 +cudaResViewFormatSignedBlockCompressed5, +# 1574 +cudaResViewFormatUnsignedBlockCompressed6H, +# 1575 +cudaResViewFormatSignedBlockCompressed6H, +# 1576 +cudaResViewFormatUnsignedBlockCompressed7 +# 1577 +}; +#endif +# 1582 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1582 +struct cudaResourceDesc { +# 1583 +cudaResourceType resType; +# 1585 +union { +# 1586 +struct { +# 1587 +cudaArray_t array; +# 1588 +} array; +# 1589 +struct { +# 1590 +cudaMipmappedArray_t mipmap; +# 1591 +} mipmap; +# 1592 +struct { +# 1593 +void *devPtr; +# 1594 +cudaChannelFormatDesc desc; +# 1595 +size_t sizeInBytes; +# 1596 +} linear; +# 1597 +struct { +# 1598 +void *devPtr; +# 1599 +cudaChannelFormatDesc desc; +# 1600 +size_t width; +# 1601 +size_t height; +# 1602 +size_t pitchInBytes; +# 1603 +} pitch2D; +# 1604 +} res; +# 1605 +}; +#endif +# 1610 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1610 +struct cudaResourceViewDesc { +# 1612 +cudaResourceViewFormat format; +# 1613 +size_t width; +# 1614 +size_t height; +# 1615 +size_t depth; +# 1616 +unsigned firstMipmapLevel; +# 1617 +unsigned lastMipmapLevel; +# 1618 +unsigned firstLayer; +# 1619 +unsigned lastLayer; +# 1620 +}; +#endif +# 1625 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1625 +struct cudaPointerAttributes { +# 1631 +cudaMemoryType type; +# 1642 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +int device; +# 1648 +void *devicePointer; +# 1657 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +void *hostPointer; +# 1658 +}; +#endif +# 1663 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1663 +struct cudaFuncAttributes { +# 1670 +size_t sharedSizeBytes; +# 1676 +size_t constSizeBytes; +# 1681 +size_t localSizeBytes; +# 1688 +int maxThreadsPerBlock; +# 1693 +int numRegs; +# 1700 +int ptxVersion; +# 1707 +int binaryVersion; +# 1713 +int cacheModeCA; +# 1720 +int maxDynamicSharedSizeBytes; +# 1729 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +int preferredShmemCarveout; +# 1735 +int clusterDimMustBeSet; +# 1746 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +int requiredClusterWidth; +# 1747 +int requiredClusterHeight; +# 1748 +int requiredClusterDepth; +# 1754 +int clusterSchedulingPolicyPreference; +# 1776 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +int nonPortableClusterSizeAllowed; +# 1781 +int reserved[16]; +# 1782 +}; +#endif +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1787 +enum cudaFuncAttribute { +# 1789 +cudaFuncAttributeMaxDynamicSharedMemorySize = 8, +# 1790 +cudaFuncAttributePreferredSharedMemoryCarveout, +# 1791 +cudaFuncAttributeClusterDimMustBeSet, +# 1792 +cudaFuncAttributeRequiredClusterWidth, +# 1793 +cudaFuncAttributeRequiredClusterHeight, +# 1794 +cudaFuncAttributeRequiredClusterDepth, +# 1795 +cudaFuncAttributeNonPortableClusterSizeAllowed, +# 1796 +cudaFuncAttributeClusterSchedulingPolicyPreference, +# 1797 +cudaFuncAttributeMax +# 1798 +}; +#endif +# 1803 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1803 +enum cudaFuncCache { +# 1805 +cudaFuncCachePreferNone, +# 1806 +cudaFuncCachePreferShared, +# 1807 +cudaFuncCachePreferL1, +# 1808 +cudaFuncCachePreferEqual +# 1809 +}; +#endif +# 1815 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1815 +enum cudaSharedMemConfig { +# 1817 +cudaSharedMemBankSizeDefault, +# 1818 +cudaSharedMemBankSizeFourByte, +# 1819 +cudaSharedMemBankSizeEightByte +# 1820 +}; +#endif +# 1825 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1825 +enum cudaSharedCarveout { +# 1826 +cudaSharedmemCarveoutDefault = (-1), +# 1827 +cudaSharedmemCarveoutMaxShared = 100, +# 1828 +cudaSharedmemCarveoutMaxL1 = 0 +# 1829 +}; +#endif +# 1834 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1834 +enum cudaComputeMode { +# 1836 +cudaComputeModeDefault, +# 1837 +cudaComputeModeExclusive, +# 1838 +cudaComputeModeProhibited, +# 1839 +cudaComputeModeExclusiveProcess +# 1840 +}; +#endif +# 1845 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1845 +enum cudaLimit { +# 1847 +cudaLimitStackSize, +# 1848 +cudaLimitPrintfFifoSize, +# 1849 +cudaLimitMallocHeapSize, +# 1850 +cudaLimitDevRuntimeSyncDepth, +# 1851 +cudaLimitDevRuntimePendingLaunchCount, +# 1852 +cudaLimitMaxL2FetchGranularity, +# 1853 +cudaLimitPersistingL2CacheSize +# 1854 +}; +#endif +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1859 +enum cudaMemoryAdvise { +# 1861 +cudaMemAdviseSetReadMostly = 1, +# 1862 +cudaMemAdviseUnsetReadMostly, +# 1863 +cudaMemAdviseSetPreferredLocation, +# 1864 +cudaMemAdviseUnsetPreferredLocation, +# 1865 +cudaMemAdviseSetAccessedBy, +# 1866 +cudaMemAdviseUnsetAccessedBy +# 1867 +}; +#endif +# 1872 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1872 +enum cudaMemRangeAttribute { +# 1874 +cudaMemRangeAttributeReadMostly = 1, +# 1875 +cudaMemRangeAttributePreferredLocation, +# 1876 +cudaMemRangeAttributeAccessedBy, +# 1877 +cudaMemRangeAttributeLastPrefetchLocation, +# 1878 +cudaMemRangeAttributePreferredLocationType, +# 1879 +cudaMemRangeAttributePreferredLocationId, +# 1880 +cudaMemRangeAttributeLastPrefetchLocationType, +# 1881 +cudaMemRangeAttributeLastPrefetchLocationId +# 1882 +}; +#endif +# 1887 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1887 +enum cudaFlushGPUDirectRDMAWritesOptions { +# 1888 +cudaFlushGPUDirectRDMAWritesOptionHost = (1 << 0), +# 1889 +cudaFlushGPUDirectRDMAWritesOptionMemOps +# 1890 +}; +#endif +# 1895 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1895 +enum cudaGPUDirectRDMAWritesOrdering { +# 1896 +cudaGPUDirectRDMAWritesOrderingNone, +# 1897 +cudaGPUDirectRDMAWritesOrderingOwner = 100, +# 1898 +cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +# 1899 +}; +#endif +# 1904 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1904 +enum cudaFlushGPUDirectRDMAWritesScope { +# 1905 +cudaFlushGPUDirectRDMAWritesToOwner = 100, +# 1906 +cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +# 1907 +}; +#endif +# 1912 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1912 +enum cudaFlushGPUDirectRDMAWritesTarget { +# 1913 +cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +# 1914 +}; +#endif +# 1920 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 1920 +enum cudaDeviceAttr { +# 1922 +cudaDevAttrMaxThreadsPerBlock = 1, +# 1923 +cudaDevAttrMaxBlockDimX, +# 1924 +cudaDevAttrMaxBlockDimY, +# 1925 +cudaDevAttrMaxBlockDimZ, +# 1926 +cudaDevAttrMaxGridDimX, +# 1927 +cudaDevAttrMaxGridDimY, +# 1928 +cudaDevAttrMaxGridDimZ, +# 1929 +cudaDevAttrMaxSharedMemoryPerBlock, +# 1930 +cudaDevAttrTotalConstantMemory, +# 1931 +cudaDevAttrWarpSize, +# 1932 +cudaDevAttrMaxPitch, +# 1933 +cudaDevAttrMaxRegistersPerBlock, +# 1934 +cudaDevAttrClockRate, +# 1935 +cudaDevAttrTextureAlignment, +# 1936 +cudaDevAttrGpuOverlap, +# 1937 +cudaDevAttrMultiProcessorCount, +# 1938 +cudaDevAttrKernelExecTimeout, +# 1939 +cudaDevAttrIntegrated, +# 1940 +cudaDevAttrCanMapHostMemory, +# 1941 +cudaDevAttrComputeMode, +# 1942 +cudaDevAttrMaxTexture1DWidth, +# 1943 +cudaDevAttrMaxTexture2DWidth, +# 1944 +cudaDevAttrMaxTexture2DHeight, +# 1945 +cudaDevAttrMaxTexture3DWidth, +# 1946 +cudaDevAttrMaxTexture3DHeight, +# 1947 +cudaDevAttrMaxTexture3DDepth, +# 1948 +cudaDevAttrMaxTexture2DLayeredWidth, +# 1949 +cudaDevAttrMaxTexture2DLayeredHeight, +# 1950 +cudaDevAttrMaxTexture2DLayeredLayers, +# 1951 +cudaDevAttrSurfaceAlignment, +# 1952 +cudaDevAttrConcurrentKernels, +# 1953 +cudaDevAttrEccEnabled, +# 1954 +cudaDevAttrPciBusId, +# 1955 +cudaDevAttrPciDeviceId, +# 1956 +cudaDevAttrTccDriver, +# 1957 +cudaDevAttrMemoryClockRate, +# 1958 +cudaDevAttrGlobalMemoryBusWidth, +# 1959 +cudaDevAttrL2CacheSize, +# 1960 +cudaDevAttrMaxThreadsPerMultiProcessor, +# 1961 +cudaDevAttrAsyncEngineCount, +# 1962 +cudaDevAttrUnifiedAddressing, +# 1963 +cudaDevAttrMaxTexture1DLayeredWidth, +# 1964 +cudaDevAttrMaxTexture1DLayeredLayers, +# 1965 +cudaDevAttrMaxTexture2DGatherWidth = 45, +# 1966 +cudaDevAttrMaxTexture2DGatherHeight, +# 1967 +cudaDevAttrMaxTexture3DWidthAlt, +# 1968 +cudaDevAttrMaxTexture3DHeightAlt, +# 1969 +cudaDevAttrMaxTexture3DDepthAlt, +# 1970 +cudaDevAttrPciDomainId, +# 1971 +cudaDevAttrTexturePitchAlignment, +# 1972 +cudaDevAttrMaxTextureCubemapWidth, +# 1973 +cudaDevAttrMaxTextureCubemapLayeredWidth, +# 1974 +cudaDevAttrMaxTextureCubemapLayeredLayers, +# 1975 +cudaDevAttrMaxSurface1DWidth, +# 1976 +cudaDevAttrMaxSurface2DWidth, +# 1977 +cudaDevAttrMaxSurface2DHeight, +# 1978 +cudaDevAttrMaxSurface3DWidth, +# 1979 +cudaDevAttrMaxSurface3DHeight, +# 1980 +cudaDevAttrMaxSurface3DDepth, +# 1981 +cudaDevAttrMaxSurface1DLayeredWidth, +# 1982 +cudaDevAttrMaxSurface1DLayeredLayers, +# 1983 +cudaDevAttrMaxSurface2DLayeredWidth, +# 1984 +cudaDevAttrMaxSurface2DLayeredHeight, +# 1985 +cudaDevAttrMaxSurface2DLayeredLayers, +# 1986 +cudaDevAttrMaxSurfaceCubemapWidth, +# 1987 +cudaDevAttrMaxSurfaceCubemapLayeredWidth, +# 1988 +cudaDevAttrMaxSurfaceCubemapLayeredLayers, +# 1989 +cudaDevAttrMaxTexture1DLinearWidth, +# 1990 +cudaDevAttrMaxTexture2DLinearWidth, +# 1991 +cudaDevAttrMaxTexture2DLinearHeight, +# 1992 +cudaDevAttrMaxTexture2DLinearPitch, +# 1993 +cudaDevAttrMaxTexture2DMipmappedWidth, +# 1994 +cudaDevAttrMaxTexture2DMipmappedHeight, +# 1995 +cudaDevAttrComputeCapabilityMajor, +# 1996 +cudaDevAttrComputeCapabilityMinor, +# 1997 +cudaDevAttrMaxTexture1DMipmappedWidth, +# 1998 +cudaDevAttrStreamPrioritiesSupported, +# 1999 +cudaDevAttrGlobalL1CacheSupported, +# 2000 +cudaDevAttrLocalL1CacheSupported, +# 2001 +cudaDevAttrMaxSharedMemoryPerMultiprocessor, +# 2002 +cudaDevAttrMaxRegistersPerMultiprocessor, +# 2003 +cudaDevAttrManagedMemory, +# 2004 +cudaDevAttrIsMultiGpuBoard, +# 2005 +cudaDevAttrMultiGpuBoardGroupID, +# 2006 +cudaDevAttrHostNativeAtomicSupported, +# 2007 +cudaDevAttrSingleToDoublePrecisionPerfRatio, +# 2008 +cudaDevAttrPageableMemoryAccess, +# 2009 +cudaDevAttrConcurrentManagedAccess, +# 2010 +cudaDevAttrComputePreemptionSupported, +# 2011 +cudaDevAttrCanUseHostPointerForRegisteredMem, +# 2012 +cudaDevAttrReserved92, +# 2013 +cudaDevAttrReserved93, +# 2014 +cudaDevAttrReserved94, +# 2015 +cudaDevAttrCooperativeLaunch, +# 2016 +cudaDevAttrCooperativeMultiDeviceLaunch, +# 2017 +cudaDevAttrMaxSharedMemoryPerBlockOptin, +# 2018 +cudaDevAttrCanFlushRemoteWrites, +# 2019 +cudaDevAttrHostRegisterSupported, +# 2020 +cudaDevAttrPageableMemoryAccessUsesHostPageTables, +# 2021 +cudaDevAttrDirectManagedMemAccessFromHost, +# 2022 +cudaDevAttrMaxBlocksPerMultiprocessor = 106, +# 2023 +cudaDevAttrMaxPersistingL2CacheSize = 108, +# 2024 +cudaDevAttrMaxAccessPolicyWindowSize, +# 2025 +cudaDevAttrReservedSharedMemoryPerBlock = 111, +# 2026 +cudaDevAttrSparseCudaArraySupported, +# 2027 +cudaDevAttrHostRegisterReadOnlySupported, +# 2028 +cudaDevAttrTimelineSemaphoreInteropSupported, +# 2029 +cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, +# 2030 +cudaDevAttrMemoryPoolsSupported, +# 2031 +cudaDevAttrGPUDirectRDMASupported, +# 2032 +cudaDevAttrGPUDirectRDMAFlushWritesOptions, +# 2033 +cudaDevAttrGPUDirectRDMAWritesOrdering, +# 2034 +cudaDevAttrMemoryPoolSupportedHandleTypes, +# 2035 +cudaDevAttrClusterLaunch, +# 2036 +cudaDevAttrDeferredMappingCudaArraySupported, +# 2037 +cudaDevAttrReserved122, +# 2038 +cudaDevAttrReserved123, +# 2039 +cudaDevAttrReserved124, +# 2040 +cudaDevAttrIpcEventSupport, +# 2041 +cudaDevAttrMemSyncDomainCount, +# 2042 +cudaDevAttrReserved127, +# 2043 +cudaDevAttrReserved128, +# 2044 +cudaDevAttrReserved129, +# 2045 +cudaDevAttrNumaConfig, +# 2046 +cudaDevAttrNumaId, +# 2047 +cudaDevAttrReserved132, +# 2048 +cudaDevAttrMpsEnabled, +# 2049 +cudaDevAttrHostNumaId, +# 2050 +cudaDevAttrD3D12CigSupported, +# 2051 +cudaDevAttrGpuPciDeviceId = 139, +# 2052 +cudaDevAttrGpuPciSubsystemId, +# 2053 +cudaDevAttrHostNumaMultinodeIpcSupported = 143, +# 2054 +cudaDevAttrMax +# 2055 +}; +#endif +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2060 +enum cudaMemPoolAttr { +# 2070 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaMemPoolReuseFollowEventDependencies = 1, +# 2077 +cudaMemPoolReuseAllowOpportunistic, +# 2085 +cudaMemPoolReuseAllowInternalDependencies, +# 2096 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaMemPoolAttrReleaseThreshold, +# 2102 +cudaMemPoolAttrReservedMemCurrent, +# 2109 +cudaMemPoolAttrReservedMemHigh, +# 2115 +cudaMemPoolAttrUsedMemCurrent, +# 2122 +cudaMemPoolAttrUsedMemHigh +# 2123 +}; +#endif +# 2128 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2128 +enum cudaMemLocationType { +# 2129 +cudaMemLocationTypeInvalid, +# 2130 +cudaMemLocationTypeDevice, +# 2131 +cudaMemLocationTypeHost, +# 2132 +cudaMemLocationTypeHostNuma, +# 2133 +cudaMemLocationTypeHostNumaCurrent +# 2134 +}; +#endif +# 2142 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2142 +struct cudaMemLocation { +# 2143 +cudaMemLocationType type; +# 2144 +int id; +# 2145 +}; +#endif +# 2150 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2150 +enum cudaMemAccessFlags { +# 2151 +cudaMemAccessFlagsProtNone, +# 2152 +cudaMemAccessFlagsProtRead, +# 2153 +cudaMemAccessFlagsProtReadWrite = 3 +# 2154 +}; +#endif +# 2159 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2159 +struct cudaMemAccessDesc { +# 2160 +cudaMemLocation location; +# 2161 +cudaMemAccessFlags flags; +# 2162 +}; +#endif +# 2167 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2167 +enum cudaMemAllocationType { +# 2168 +cudaMemAllocationTypeInvalid, +# 2172 +cudaMemAllocationTypePinned, +# 2173 +cudaMemAllocationTypeMax = 2147483647 +# 2174 +}; +#endif +# 2179 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2179 +enum cudaMemAllocationHandleType { +# 2180 +cudaMemHandleTypeNone, +# 2181 +cudaMemHandleTypePosixFileDescriptor, +# 2182 +cudaMemHandleTypeWin32, +# 2183 +cudaMemHandleTypeWin32Kmt = 4, +# 2184 +cudaMemHandleTypeFabric = 8 +# 2185 +}; +#endif +# 2196 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2196 +struct cudaMemPoolProps { +# 2197 +cudaMemAllocationType allocType; +# 2198 +cudaMemAllocationHandleType handleTypes; +# 2199 +cudaMemLocation location; +# 2206 +void *win32SecurityAttributes; +# 2207 +size_t maxSize; +# 2208 +unsigned short usage; +# 2209 +unsigned char reserved[54]; +# 2210 +}; +#endif +# 2215 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2215 +struct cudaMemPoolPtrExportData { +# 2216 +unsigned char reserved[64]; +# 2217 +}; +#endif +# 2222 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2222 +struct cudaMemAllocNodeParams { +# 2227 +cudaMemPoolProps poolProps; +# 2228 +const cudaMemAccessDesc *accessDescs; +# 2229 +size_t accessDescCount; +# 2230 +size_t bytesize; +# 2231 +void *dptr; +# 2232 +}; +#endif +# 2237 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2237 +struct cudaMemAllocNodeParamsV2 { +# 2242 +cudaMemPoolProps poolProps; +# 2243 +const cudaMemAccessDesc *accessDescs; +# 2244 +size_t accessDescCount; +# 2245 +size_t bytesize; +# 2246 +void *dptr; +# 2247 +}; +#endif +# 2252 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2252 +struct cudaMemFreeNodeParams { +# 2253 +void *dptr; +# 2254 +}; +#endif +# 2259 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2259 +enum cudaGraphMemAttributeType { +# 2264 +cudaGraphMemAttrUsedMemCurrent, +# 2271 +cudaGraphMemAttrUsedMemHigh, +# 2278 +cudaGraphMemAttrReservedMemCurrent, +# 2285 +cudaGraphMemAttrReservedMemHigh +# 2286 +}; +#endif +# 2291 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2291 +enum cudaMemcpyFlags { +# 2292 +cudaMemcpyFlagDefault, +# 2297 +cudaMemcpyFlagPreferOverlapWithCompute +# 2298 +}; +#endif +# 2300 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2300 +enum cudaMemcpySrcAccessOrder { +# 2304 +cudaMemcpySrcAccessOrderInvalid, +# 2309 +cudaMemcpySrcAccessOrderStream, +# 2320 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaMemcpySrcAccessOrderDuringApiCall, +# 2329 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaMemcpySrcAccessOrderAny, +# 2331 +cudaMemcpySrcAccessOrderMax = 2147483647 +# 2332 +}; +#endif +# 2337 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2337 +struct cudaMemcpyAttributes { +# 2338 +cudaMemcpySrcAccessOrder srcAccessOrder; +# 2339 +cudaMemLocation srcLocHint; +# 2340 +cudaMemLocation dstLocHint; +# 2341 +unsigned flags; +# 2342 +}; +#endif +# 2347 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2347 +enum cudaMemcpy3DOperandType { +# 2348 +cudaMemcpyOperandTypePointer = 1, +# 2349 +cudaMemcpyOperandTypeArray, +# 2350 +cudaMemcpyOperandTypeMax = 2147483647 +# 2351 +}; +#endif +# 2356 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2356 +struct cudaOffset3D { +# 2357 +size_t x; +# 2358 +size_t y; +# 2359 +size_t z; +# 2360 +}; +#endif +# 2365 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2365 +struct cudaMemcpy3DOperand { +# 2366 +cudaMemcpy3DOperandType type; +# 2367 +union { +# 2371 +struct { +# 2372 +void *ptr; +# 2373 +size_t rowLength; +# 2374 +size_t layerHeight; +# 2375 +cudaMemLocation locHint; +# 2376 +} ptr; +# 2381 +struct { +# 2382 +cudaArray_t array; +# 2383 +cudaOffset3D offset; +# 2384 +} array; +# 2385 +} op; +# 2386 +}; +#endif +# 2388 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2388 +struct cudaMemcpy3DBatchOp { +# 2389 +cudaMemcpy3DOperand src; +# 2390 +cudaMemcpy3DOperand dst; +# 2391 +cudaExtent extent; +# 2392 +cudaMemcpySrcAccessOrder srcAccessOrder; +# 2393 +unsigned flags; +# 2394 +}; +#endif +# 2400 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2400 +enum cudaDeviceP2PAttr { +# 2401 +cudaDevP2PAttrPerformanceRank = 1, +# 2402 +cudaDevP2PAttrAccessSupported, +# 2403 +cudaDevP2PAttrNativeAtomicSupported, +# 2404 +cudaDevP2PAttrCudaArrayAccessSupported +# 2405 +}; +#endif +# 2412 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2412 +struct CUuuid_st { +# 2413 +char bytes[16]; +# 2414 +}; +#endif +# 2415 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef CUuuid_st +# 2415 +CUuuid; +#endif +# 2417 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef CUuuid_st +# 2417 +cudaUUID_t; +#endif +# 2422 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2422 +struct cudaDeviceProp { +# 2424 +char name[256]; +# 2425 +cudaUUID_t uuid; +# 2426 +char luid[8]; +# 2427 +unsigned luidDeviceNodeMask; +# 2428 +size_t totalGlobalMem; +# 2429 +size_t sharedMemPerBlock; +# 2430 +int regsPerBlock; +# 2431 +int warpSize; +# 2432 +size_t memPitch; +# 2433 +int maxThreadsPerBlock; +# 2434 +int maxThreadsDim[3]; +# 2435 +int maxGridSize[3]; +# 2436 +int clockRate; +# 2437 +size_t totalConstMem; +# 2438 +int major; +# 2439 +int minor; +# 2440 +size_t textureAlignment; +# 2441 +size_t texturePitchAlignment; +# 2442 +int deviceOverlap; +# 2443 +int multiProcessorCount; +# 2444 +int kernelExecTimeoutEnabled; +# 2445 +int integrated; +# 2446 +int canMapHostMemory; +# 2447 +int computeMode; +# 2448 +int maxTexture1D; +# 2449 +int maxTexture1DMipmap; +# 2450 +int maxTexture1DLinear; +# 2451 +int maxTexture2D[2]; +# 2452 +int maxTexture2DMipmap[2]; +# 2453 +int maxTexture2DLinear[3]; +# 2454 +int maxTexture2DGather[2]; +# 2455 +int maxTexture3D[3]; +# 2456 +int maxTexture3DAlt[3]; +# 2457 +int maxTextureCubemap; +# 2458 +int maxTexture1DLayered[2]; +# 2459 +int maxTexture2DLayered[3]; +# 2460 +int maxTextureCubemapLayered[2]; +# 2461 +int maxSurface1D; +# 2462 +int maxSurface2D[2]; +# 2463 +int maxSurface3D[3]; +# 2464 +int maxSurface1DLayered[2]; +# 2465 +int maxSurface2DLayered[3]; +# 2466 +int maxSurfaceCubemap; +# 2467 +int maxSurfaceCubemapLayered[2]; +# 2468 +size_t surfaceAlignment; +# 2469 +int concurrentKernels; +# 2470 +int ECCEnabled; +# 2471 +int pciBusID; +# 2472 +int pciDeviceID; +# 2473 +int pciDomainID; +# 2474 +int tccDriver; +# 2475 +int asyncEngineCount; +# 2476 +int unifiedAddressing; +# 2477 +int memoryClockRate; +# 2478 +int memoryBusWidth; +# 2479 +int l2CacheSize; +# 2480 +int persistingL2CacheMaxSize; +# 2481 +int maxThreadsPerMultiProcessor; +# 2482 +int streamPrioritiesSupported; +# 2483 +int globalL1CacheSupported; +# 2484 +int localL1CacheSupported; +# 2485 +size_t sharedMemPerMultiprocessor; +# 2486 +int regsPerMultiprocessor; +# 2487 +int managedMemory; +# 2488 +int isMultiGpuBoard; +# 2489 +int multiGpuBoardGroupID; +# 2490 +int hostNativeAtomicSupported; +# 2491 +int singleToDoublePrecisionPerfRatio; +# 2492 +int pageableMemoryAccess; +# 2493 +int concurrentManagedAccess; +# 2494 +int computePreemptionSupported; +# 2495 +int canUseHostPointerForRegisteredMem; +# 2496 +int cooperativeLaunch; +# 2497 +int cooperativeMultiDeviceLaunch; +# 2498 +size_t sharedMemPerBlockOptin; +# 2499 +int pageableMemoryAccessUsesHostPageTables; +# 2500 +int directManagedMemAccessFromHost; +# 2501 +int maxBlocksPerMultiProcessor; +# 2502 +int accessPolicyMaxWindowSize; +# 2503 +size_t reservedSharedMemPerBlock; +# 2504 +int hostRegisterSupported; +# 2505 +int sparseCudaArraySupported; +# 2506 +int hostRegisterReadOnlySupported; +# 2507 +int timelineSemaphoreInteropSupported; +# 2508 +int memoryPoolsSupported; +# 2509 +int gpuDirectRDMASupported; +# 2510 +unsigned gpuDirectRDMAFlushWritesOptions; +# 2511 +int gpuDirectRDMAWritesOrdering; +# 2512 +unsigned memoryPoolSupportedHandleTypes; +# 2513 +int deferredMappingCudaArraySupported; +# 2514 +int ipcEventSupported; +# 2515 +int clusterLaunch; +# 2516 +int unifiedFunctionPointers; +# 2517 +int reserved[63]; +# 2518 +}; +#endif +# 2531 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 2528 +struct cudaIpcEventHandle_st { +# 2530 +char reserved[64]; +# 2531 +} cudaIpcEventHandle_t; +#endif +# 2539 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 2536 +struct cudaIpcMemHandle_st { +# 2538 +char reserved[64]; +# 2539 +} cudaIpcMemHandle_t; +#endif +# 2547 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 2544 +struct cudaMemFabricHandle_st { +# 2546 +char reserved[64]; +# 2547 +} cudaMemFabricHandle_t; +#endif +# 2552 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2552 +enum cudaExternalMemoryHandleType { +# 2556 +cudaExternalMemoryHandleTypeOpaqueFd = 1, +# 2560 +cudaExternalMemoryHandleTypeOpaqueWin32, +# 2564 +cudaExternalMemoryHandleTypeOpaqueWin32Kmt, +# 2568 +cudaExternalMemoryHandleTypeD3D12Heap, +# 2572 +cudaExternalMemoryHandleTypeD3D12Resource, +# 2576 +cudaExternalMemoryHandleTypeD3D11Resource, +# 2580 +cudaExternalMemoryHandleTypeD3D11ResourceKmt, +# 2584 +cudaExternalMemoryHandleTypeNvSciBuf +# 2585 +}; +#endif +# 2627 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2627 +struct cudaExternalMemoryHandleDesc { +# 2631 +cudaExternalMemoryHandleType type; +# 2632 +union { +# 2638 +int fd; +# 2654 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 2658 +void *handle; +# 2663 +const void *name; +# 2664 +} win32; +# 2669 +const void *nvSciBufObject; +# 2670 +} handle; +# 2674 +unsigned long long size; +# 2678 +unsigned flags; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 2679 +}; +#endif +# 2684 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2684 +struct cudaExternalMemoryBufferDesc { +# 2688 +unsigned long long offset; +# 2692 +unsigned long long size; +# 2696 +unsigned flags; +# 2697 +}; +#endif +# 2702 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2702 +struct cudaExternalMemoryMipmappedArrayDesc { +# 2707 +unsigned long long offset; +# 2711 +cudaChannelFormatDesc formatDesc; +# 2715 +cudaExtent extent; +# 2720 +unsigned flags; +# 2724 +unsigned numLevels; +# 2725 +}; +#endif +# 2730 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2730 +enum cudaExternalSemaphoreHandleType { +# 2734 +cudaExternalSemaphoreHandleTypeOpaqueFd = 1, +# 2738 +cudaExternalSemaphoreHandleTypeOpaqueWin32, +# 2742 +cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt, +# 2746 +cudaExternalSemaphoreHandleTypeD3D12Fence, +# 2750 +cudaExternalSemaphoreHandleTypeD3D11Fence, +# 2754 +cudaExternalSemaphoreHandleTypeNvSciSync, +# 2758 +cudaExternalSemaphoreHandleTypeKeyedMutex, +# 2762 +cudaExternalSemaphoreHandleTypeKeyedMutexKmt, +# 2766 +cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd, +# 2770 +cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 +# 2771 +}; +#endif +# 2776 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2776 +struct cudaExternalSemaphoreHandleDesc { +# 2780 +cudaExternalSemaphoreHandleType type; +# 2781 +union { +# 2788 +int fd; +# 2804 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 2808 +void *handle; +# 2813 +const void *name; +# 2814 +} win32; +# 2818 +const void *nvSciSyncObj; +# 2819 +} handle; +# 2823 +unsigned flags; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 2824 +}; +#endif +# 2829 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2829 +struct cudaExternalSemaphoreSignalParams_v1 { +# 2830 +struct { +# 2834 +struct { +# 2838 +unsigned long long value; +# 2839 +} fence; +# 2840 +union { +# 2845 +void *fence; +# 2846 +unsigned long long reserved; +# 2847 +} nvSciSync; +# 2851 +struct { +# 2855 +unsigned long long key; +# 2856 +} keyedMutex; +# 2857 +} params; +# 2868 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned flags; +# 2869 +}; +#endif +# 2874 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2874 +struct cudaExternalSemaphoreWaitParams_v1 { +# 2875 +struct { +# 2879 +struct { +# 2883 +unsigned long long value; +# 2884 +} fence; +# 2885 +union { +# 2890 +void *fence; +# 2891 +unsigned long long reserved; +# 2892 +} nvSciSync; +# 2896 +struct { +# 2900 +unsigned long long key; +# 2904 +unsigned timeoutMs; +# 2905 +} keyedMutex; +# 2906 +} params; +# 2917 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned flags; +# 2918 +}; +#endif +# 2923 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2923 +struct cudaExternalSemaphoreSignalParams { +# 2924 +struct { +# 2928 +struct { +# 2932 +unsigned long long value; +# 2933 +} fence; +# 2934 +union { +# 2939 +void *fence; +# 2940 +unsigned long long reserved; +# 2941 +} nvSciSync; +# 2945 +struct { +# 2949 +unsigned long long key; +# 2950 +} keyedMutex; +# 2951 +unsigned reserved[12]; +# 2952 +} params; +# 2963 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned flags; +# 2964 +unsigned reserved[16]; +# 2965 +}; +#endif +# 2970 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 2970 +struct cudaExternalSemaphoreWaitParams { +# 2971 +struct { +# 2975 +struct { +# 2979 +unsigned long long value; +# 2980 +} fence; +# 2981 +union { +# 2986 +void *fence; +# 2987 +unsigned long long reserved; +# 2988 +} nvSciSync; +# 2992 +struct { +# 2996 +unsigned long long key; +# 3000 +unsigned timeoutMs; +# 3001 +} keyedMutex; +# 3002 +unsigned reserved[10]; +# 3003 +} params; +# 3014 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned flags; +# 3015 +unsigned reserved[16]; +# 3016 +}; +#endif +# 3027 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef cudaError +# 3027 +cudaError_t; +#endif +# 3032 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUstream_st * +# 3032 +cudaStream_t; +#endif +# 3037 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUevent_st * +# 3037 +cudaEvent_t; +#endif +# 3042 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef cudaGraphicsResource * +# 3042 +cudaGraphicsResource_t; +#endif +# 3047 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUexternalMemory_st * +# 3047 +cudaExternalMemory_t; +#endif +# 3052 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUexternalSemaphore_st * +# 3052 +cudaExternalSemaphore_t; +#endif +# 3057 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUgraph_st * +# 3057 +cudaGraph_t; +#endif +# 3062 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUgraphNode_st * +# 3062 +cudaGraphNode_t; +#endif +# 3067 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUuserObject_st * +# 3067 +cudaUserObject_t; +#endif +# 3072 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef unsigned long long +# 3072 +cudaGraphConditionalHandle; +#endif +# 3077 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUfunc_st * +# 3077 +cudaFunction_t; +#endif +# 3082 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUkern_st * +# 3082 +cudaKernel_t; +#endif +# 3087 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3087 +enum cudaJitOption { +# 3094 +cudaJitMaxRegisters, +# 3108 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitThreadsPerBlock, +# 3116 +cudaJitWallTime, +# 3125 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitInfoLogBuffer, +# 3134 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitInfoLogBufferSizeBytes, +# 3143 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitErrorLogBuffer, +# 3152 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitErrorLogBufferSizeBytes, +# 3160 +cudaJitOptimizationLevel, +# 3168 +cudaJitFallbackStrategy = 10, +# 3176 +cudaJitGenerateDebugInfo, +# 3183 +cudaJitLogVerbose, +# 3190 +cudaJitGenerateLineInfo, +# 3198 +cudaJitCacheMode, +# 3205 +cudaJitPositionIndependentCode = 30, +# 3218 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitMinCtaPerSm, +# 3231 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitMaxThreadsPerBlock, +# 3241 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaJitOverrideDirectiveValues +# 3242 +}; +#endif +# 3248 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3248 +enum cudaLibraryOption { +# 3250 +cudaLibraryHostUniversalFunctionAndDataTable, +# 3261 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLibraryBinaryIsPreserved +# 3262 +}; +#endif +# 3264 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3264 +struct cudalibraryHostUniversalFunctionAndDataTable { +# 3266 +void *functionTable; +# 3267 +size_t functionWindowSize; +# 3268 +void *dataTable; +# 3269 +size_t dataWindowSize; +# 3270 +}; +#endif +# 3275 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3275 +enum cudaJit_CacheMode { +# 3277 +cudaJitCacheOptionNone, +# 3278 +cudaJitCacheOptionCG, +# 3279 +cudaJitCacheOptionCA +# 3280 +}; +#endif +# 3285 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3285 +enum cudaJit_Fallback { +# 3287 +cudaPreferPtx, +# 3289 +cudaPreferBinary +# 3290 +}; +#endif +# 3295 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUlib_st * +# 3295 +cudaLibrary_t; +#endif +# 3300 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef struct CUmemPoolHandle_st * +# 3300 +cudaMemPool_t; +#endif +# 3305 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3305 +enum cudaCGScope { +# 3306 +cudaCGScopeInvalid, +# 3307 +cudaCGScopeGrid, +# 3308 +cudaCGScopeMultiGrid +# 3309 +}; +#endif +# 3314 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3314 +struct cudaLaunchParams { +# 3316 +void *func; +# 3317 +dim3 gridDim; +# 3318 +dim3 blockDim; +# 3319 +void **args; +# 3320 +size_t sharedMem; +# 3321 +cudaStream_t stream; +# 3322 +}; +#endif +# 3327 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3327 +struct cudaKernelNodeParams { +# 3328 +void *func; +# 3329 +dim3 gridDim; +# 3330 +dim3 blockDim; +# 3331 +unsigned sharedMemBytes; +# 3332 +void **kernelParams; +# 3333 +void **extra; +# 3334 +}; +#endif +# 3339 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3339 +struct cudaKernelNodeParamsV2 { +# 3340 +void *func; +# 3342 +dim3 gridDim; +# 3343 +dim3 blockDim; +# 3349 +unsigned sharedMemBytes; +# 3350 +void **kernelParams; +# 3351 +void **extra; +# 3352 +}; +#endif +# 3357 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3357 +struct cudaExternalSemaphoreSignalNodeParams { +# 3358 +cudaExternalSemaphore_t *extSemArray; +# 3359 +const cudaExternalSemaphoreSignalParams *paramsArray; +# 3360 +unsigned numExtSems; +# 3361 +}; +#endif +# 3366 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3366 +struct cudaExternalSemaphoreSignalNodeParamsV2 { +# 3367 +cudaExternalSemaphore_t *extSemArray; +# 3368 +const cudaExternalSemaphoreSignalParams *paramsArray; +# 3369 +unsigned numExtSems; +# 3370 +}; +#endif +# 3375 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3375 +struct cudaExternalSemaphoreWaitNodeParams { +# 3376 +cudaExternalSemaphore_t *extSemArray; +# 3377 +const cudaExternalSemaphoreWaitParams *paramsArray; +# 3378 +unsigned numExtSems; +# 3379 +}; +#endif +# 3384 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3384 +struct cudaExternalSemaphoreWaitNodeParamsV2 { +# 3385 +cudaExternalSemaphore_t *extSemArray; +# 3386 +const cudaExternalSemaphoreWaitParams *paramsArray; +# 3387 +unsigned numExtSems; +# 3388 +}; +#endif +# 3390 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3390 +enum cudaGraphConditionalHandleFlags { +# 3391 +cudaGraphCondAssignDefault = 1 +# 3392 +}; +#endif +# 3397 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3397 +enum cudaGraphConditionalNodeType { +# 3398 +cudaGraphCondTypeIf, +# 3399 +cudaGraphCondTypeWhile, +# 3400 +cudaGraphCondTypeSwitch +# 3401 +}; +#endif +# 3406 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3406 +struct cudaConditionalNodeParams { +# 3407 +cudaGraphConditionalHandle handle; +# 3410 +cudaGraphConditionalNodeType type; +# 3411 +unsigned size; +# 3413 +cudaGraph_t *phGraph_out; +# 3432 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +}; +#endif +# 3437 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3437 +enum cudaGraphNodeType { +# 3438 +cudaGraphNodeTypeKernel, +# 3439 +cudaGraphNodeTypeMemcpy, +# 3440 +cudaGraphNodeTypeMemset, +# 3441 +cudaGraphNodeTypeHost, +# 3442 +cudaGraphNodeTypeGraph, +# 3443 +cudaGraphNodeTypeEmpty, +# 3444 +cudaGraphNodeTypeWaitEvent, +# 3445 +cudaGraphNodeTypeEventRecord, +# 3446 +cudaGraphNodeTypeExtSemaphoreSignal, +# 3447 +cudaGraphNodeTypeExtSemaphoreWait, +# 3448 +cudaGraphNodeTypeMemAlloc, +# 3449 +cudaGraphNodeTypeMemFree, +# 3450 +cudaGraphNodeTypeConditional = 13, +# 3467 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaGraphNodeTypeCount +# 3468 +}; +#endif +# 3473 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3473 +struct cudaChildGraphNodeParams { +# 3474 +cudaGraph_t graph; +# 3476 +}; +#endif +# 3481 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3481 +struct cudaEventRecordNodeParams { +# 3482 +cudaEvent_t event; +# 3483 +}; +#endif +# 3488 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3488 +struct cudaEventWaitNodeParams { +# 3489 +cudaEvent_t event; +# 3490 +}; +#endif +# 3495 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3495 +struct cudaGraphNodeParams { +# 3496 +cudaGraphNodeType type; +# 3497 +int reserved0[3]; +# 3499 +union { +# 3500 +long long reserved1[29]; +# 3501 +cudaKernelNodeParamsV2 kernel; +# 3502 +cudaMemcpyNodeParams memcpy; +# 3503 +cudaMemsetParamsV2 memset; +# 3504 +cudaHostNodeParamsV2 host; +# 3505 +cudaChildGraphNodeParams graph; +# 3506 +cudaEventWaitNodeParams eventWait; +# 3507 +cudaEventRecordNodeParams eventRecord; +# 3508 +cudaExternalSemaphoreSignalNodeParamsV2 extSemSignal; +# 3509 +cudaExternalSemaphoreWaitNodeParamsV2 extSemWait; +# 3510 +cudaMemAllocNodeParamsV2 alloc; +# 3511 +cudaMemFreeNodeParams free; +# 3512 +cudaConditionalNodeParams conditional; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 3513 +}; +# 3515 +long long reserved2; +# 3516 +}; +#endif +# 3528 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3521 +enum cudaGraphDependencyType_enum { +# 3522 +cudaGraphDependencyTypeDefault, +# 3523 +cudaGraphDependencyTypeProgrammatic +# 3528 +} cudaGraphDependencyType; +#endif +# 3558 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3535 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct cudaGraphEdgeData_st { +# 3536 +unsigned char from_port; +# 3546 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +unsigned char to_port; +# 3553 +unsigned char type; +# 3556 +unsigned char reserved[5]; +# 3558 +} cudaGraphEdgeData; +#endif +# 3579 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct CUgraphExec_st *cudaGraphExec_t; +# 3584 +#if 0 +# 3584 +enum cudaGraphExecUpdateResult { +# 3585 +cudaGraphExecUpdateSuccess, +# 3586 +cudaGraphExecUpdateError, +# 3587 +cudaGraphExecUpdateErrorTopologyChanged, +# 3588 +cudaGraphExecUpdateErrorNodeTypeChanged, +# 3589 +cudaGraphExecUpdateErrorFunctionChanged, +# 3590 +cudaGraphExecUpdateErrorParametersChanged, +# 3591 +cudaGraphExecUpdateErrorNotSupported, +# 3592 +cudaGraphExecUpdateErrorUnsupportedFunctionChange, +# 3593 +cudaGraphExecUpdateErrorAttributesChanged +# 3594 +}; +#endif +# 3606 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3599 +enum cudaGraphInstantiateResult { +# 3600 +cudaGraphInstantiateSuccess, +# 3601 +cudaGraphInstantiateError, +# 3602 +cudaGraphInstantiateInvalidStructure, +# 3603 +cudaGraphInstantiateNodeOperationNotSupported, +# 3604 +cudaGraphInstantiateMultipleDevicesNotSupported, +# 3605 +cudaGraphInstantiateConditionalHandleUnused +# 3606 +} cudaGraphInstantiateResult; +#endif +# 3617 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3611 +struct cudaGraphInstantiateParams_st { +# 3613 +unsigned long long flags; +# 3614 +cudaStream_t uploadStream; +# 3615 +cudaGraphNode_t errNode_out; +# 3616 +cudaGraphInstantiateResult result_out; +# 3617 +} cudaGraphInstantiateParams; +#endif +# 3639 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3622 +struct cudaGraphExecUpdateResultInfo_st { +# 3626 +cudaGraphExecUpdateResult result; +# 3633 +cudaGraphNode_t errorNode; +# 3638 +cudaGraphNode_t errorFromNode; +# 3639 +} cudaGraphExecUpdateResultInfo; +#endif +# 3644 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct CUgraphDeviceUpdatableNode_st *cudaGraphDeviceNode_t; +# 3649 +#if 0 +# 3649 +enum cudaGraphKernelNodeField { +# 3651 +cudaGraphKernelNodeFieldInvalid, +# 3652 +cudaGraphKernelNodeFieldGridDim, +# 3653 +cudaGraphKernelNodeFieldParam, +# 3654 +cudaGraphKernelNodeFieldEnabled +# 3655 +}; +#endif +# 3660 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3660 +struct cudaGraphKernelNodeUpdate { +# 3661 +cudaGraphDeviceNode_t node; +# 3662 +cudaGraphKernelNodeField field; +# 3663 +union { +# 3665 +dim3 gridDim; +# 3670 +struct { +# 3671 +const void *pValue; +# 3672 +size_t offset; +# 3673 +size_t size; +# 3674 +} param; +# 3675 +unsigned isEnabled; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 3676 +} updateData; +# 3677 +}; +#endif +# 3683 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3683 +enum cudaGetDriverEntryPointFlags { +# 3684 +cudaEnableDefault, +# 3685 +cudaEnableLegacyStream, +# 3686 +cudaEnablePerThreadDefaultStream +# 3687 +}; +#endif +# 3692 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3692 +enum cudaDriverEntryPointQueryResult { +# 3693 +cudaDriverEntryPointSuccess, +# 3694 +cudaDriverEntryPointSymbolNotFound, +# 3695 +cudaDriverEntryPointVersionNotSufficent +# 3696 +}; +#endif +# 3701 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3701 +enum cudaGraphDebugDotFlags { +# 3702 +cudaGraphDebugDotFlagsVerbose = (1 << 0), +# 3703 +cudaGraphDebugDotFlagsKernelNodeParams = (1 << 2), +# 3704 +cudaGraphDebugDotFlagsMemcpyNodeParams = (1 << 3), +# 3705 +cudaGraphDebugDotFlagsMemsetNodeParams = (1 << 4), +# 3706 +cudaGraphDebugDotFlagsHostNodeParams = (1 << 5), +# 3707 +cudaGraphDebugDotFlagsEventNodeParams = (1 << 6), +# 3708 +cudaGraphDebugDotFlagsExtSemasSignalNodeParams = (1 << 7), +# 3709 +cudaGraphDebugDotFlagsExtSemasWaitNodeParams = (1 << 8), +# 3710 +cudaGraphDebugDotFlagsKernelNodeAttributes = (1 << 9), +# 3711 +cudaGraphDebugDotFlagsHandles = (1 << 10), +# 3712 +cudaGraphDebugDotFlagsConditionalNodeParams = (1 << 15) +# 3713 +}; +#endif +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 3718 +enum cudaGraphInstantiateFlags { +# 3719 +cudaGraphInstantiateFlagAutoFreeOnLaunch = 1, +# 3720 +cudaGraphInstantiateFlagUpload, +# 3723 +cudaGraphInstantiateFlagDeviceLaunch = 4, +# 3726 +cudaGraphInstantiateFlagUseNodePriority = 8 +# 3728 +}; +#endif +# 3749 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3746 +enum cudaLaunchMemSyncDomain { +# 3747 +cudaLaunchMemSyncDomainDefault, +# 3748 +cudaLaunchMemSyncDomainRemote +# 3749 +} cudaLaunchMemSyncDomain; +#endif +# 3765 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3762 +struct cudaLaunchMemSyncDomainMap_st { +# 3763 +unsigned char default_; +# 3764 +unsigned char remote; +# 3765 +} cudaLaunchMemSyncDomainMap; +#endif +# 3917 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3770 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +enum cudaLaunchAttributeID { +# 3771 +cudaLaunchAttributeIgnore, +# 3772 +cudaLaunchAttributeAccessPolicyWindow, +# 3774 +cudaLaunchAttributeCooperative, +# 3776 +cudaLaunchAttributeSynchronizationPolicy, +# 3777 +cudaLaunchAttributeClusterDimension, +# 3779 +cudaLaunchAttributeClusterSchedulingPolicyPreference, +# 3781 +cudaLaunchAttributeProgrammaticStreamSerialization, +# 3792 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributeProgrammaticEvent, +# 3818 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributePriority, +# 3820 +cudaLaunchAttributeMemSyncDomainMap, +# 3822 +cudaLaunchAttributeMemSyncDomain, +# 3824 +cudaLaunchAttributePreferredClusterDimension, +# 3860 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributeLaunchCompletionEvent, +# 3882 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributeDeviceUpdatableKernelNode, +# 3910 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +cudaLaunchAttributePreferredSharedMemoryCarveout +# 3917 +} cudaLaunchAttributeID; +#endif +# 4013 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 3922 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +union cudaLaunchAttributeValue { +# 3923 +char pad[64]; +# 3924 +cudaAccessPolicyWindow accessPolicyWindow; +# 3925 +int cooperative; +# 3927 +cudaSynchronizationPolicy syncPolicy; +# 3941 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 3942 +unsigned x; +# 3943 +unsigned y; +# 3944 +unsigned z; +# 3945 +} clusterDim; +# 3946 +cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; +# 3949 +int programmaticStreamSerializationAllowed; +# 3960 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 3961 +cudaEvent_t event; +# 3962 +int flags; +# 3963 +int triggerAtBlockStart; +# 3964 +} programmaticEvent; +# 3965 +int priority; +# 3966 +cudaLaunchMemSyncDomainMap memSyncDomainMap; +# 3969 +cudaLaunchMemSyncDomain memSyncDomain; +# 3984 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 3985 +unsigned x; +# 3986 +unsigned y; +# 3987 +unsigned z; +# 3988 +} preferredClusterDim; +# 3997 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +struct { +# 3998 +cudaEvent_t event; +# 3999 +int flags; +# 4000 +} launchCompletionEvent; +# 4008 +struct { +# 4009 +int deviceUpdatable; +# 4010 +cudaGraphDeviceNode_t devNode; +# 4011 +} deviceUpdatableKernelNode; +# 4012 +unsigned sharedMemCarveout; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 4013 +} cudaLaunchAttributeValue; +#endif +# 4022 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 4018 +struct cudaLaunchAttribute_st { +# 4019 +cudaLaunchAttributeID id; +# 4020 +char pad[(8) - sizeof(cudaLaunchAttributeID)]; +# 4021 +cudaLaunchAttributeValue val; +# 4022 +} cudaLaunchAttribute; +#endif +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 4027 +struct cudaLaunchConfig_st { +# 4028 +dim3 gridDim; +# 4029 +dim3 blockDim; +# 4030 +size_t dynamicSmemBytes; +# 4031 +cudaStream_t stream; +# 4032 +cudaLaunchAttribute *attrs; +# 4033 +unsigned numAttrs; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 4034 +} cudaLaunchConfig_t; +#endif +# 4061 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +# 4061 +enum cudaDeviceNumaConfig { +# 4062 +cudaDeviceNumaConfigNone, +# 4063 +cudaDeviceNumaConfigNumaNode +# 4064 +}; +#endif +# 4069 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef struct cudaAsyncCallbackEntry *cudaAsyncCallbackHandle_t; +# 4071 +struct cudaAsyncCallbackEntry; +# 4078 +#if 0 +typedef +# 4076 +enum cudaAsyncNotificationType_enum { +# 4077 +cudaAsyncNotificationTypeOverBudget = 1 +# 4078 +} cudaAsyncNotificationType; +#endif +# 4091 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +#if 0 +typedef +# 4083 +struct cudaAsyncNotificationInfo { +# 4085 +cudaAsyncNotificationType type; +# 4086 +union { +# 4087 +struct { +# 4088 +unsigned long long bytesOverBudget; +# 4089 +} overBudget; +# 4090 +} info; +# 4091 +} cudaAsyncNotificationInfo_t; +#endif +# 4093 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_types.h" +typedef void (*cudaAsyncCallback)(cudaAsyncNotificationInfo_t *, void *, cudaAsyncCallbackHandle_t); +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +#if 0 +# 86 +enum cudaSurfaceBoundaryMode { +# 88 +cudaBoundaryModeZero, +# 89 +cudaBoundaryModeClamp, +# 90 +cudaBoundaryModeTrap +# 91 +}; +#endif +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +#if 0 +# 96 +enum cudaSurfaceFormatMode { +# 98 +cudaFormatModeForced, +# 99 +cudaFormatModeAuto +# 100 +}; +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_types.h" +#if 0 +typedef unsigned long long +# 105 +cudaSurfaceObject_t; +#endif +# 86 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +# 86 +enum cudaTextureAddressMode { +# 88 +cudaAddressModeWrap, +# 89 +cudaAddressModeClamp, +# 90 +cudaAddressModeMirror, +# 91 +cudaAddressModeBorder +# 92 +}; +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +# 97 +enum cudaTextureFilterMode { +# 99 +cudaFilterModePoint, +# 100 +cudaFilterModeLinear +# 101 +}; +#endif +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +# 106 +enum cudaTextureReadMode { +# 108 +cudaReadModeElementType, +# 109 +cudaReadModeNormalizedFloat +# 110 +}; +#endif +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +# 115 +struct cudaTextureDesc { +# 120 +cudaTextureAddressMode addressMode[3]; +# 124 +cudaTextureFilterMode filterMode; +# 128 +cudaTextureReadMode readMode; +# 132 +int sRGB; +# 136 +float borderColor[4]; +# 140 +int normalizedCoords; +# 144 +unsigned maxAnisotropy; +# 148 +cudaTextureFilterMode mipmapFilterMode; +# 152 +float mipmapLevelBias; +# 156 +float minMipmapLevelClamp; +# 160 +float maxMipmapLevelClamp; +# 164 +int disableTrilinearOptimization; +# 168 +int seamlessCubemap; +# 169 +}; +#endif +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_types.h" +#if 0 +typedef unsigned long long +# 174 +cudaTextureObject_t; +#endif +# 94 "/opt/cuda/bin/../targets/x86_64-linux/include/library_types.h" +typedef +# 57 +enum cudaDataType_t { +# 59 +CUDA_R_16F = 2, +# 60 +CUDA_C_16F = 6, +# 61 +CUDA_R_16BF = 14, +# 62 +CUDA_C_16BF, +# 63 +CUDA_R_32F = 0, +# 64 +CUDA_C_32F = 4, +# 65 +CUDA_R_64F = 1, +# 66 +CUDA_C_64F = 5, +# 67 +CUDA_R_4I = 16, +# 68 +CUDA_C_4I, +# 69 +CUDA_R_4U, +# 70 +CUDA_C_4U, +# 71 +CUDA_R_8I = 3, +# 72 +CUDA_C_8I = 7, +# 73 +CUDA_R_8U, +# 74 +CUDA_C_8U, +# 75 +CUDA_R_16I = 20, +# 76 +CUDA_C_16I, +# 77 +CUDA_R_16U, +# 78 +CUDA_C_16U, +# 79 +CUDA_R_32I = 10, +# 80 +CUDA_C_32I, +# 81 +CUDA_R_32U, +# 82 +CUDA_C_32U, +# 83 +CUDA_R_64I = 24, +# 84 +CUDA_C_64I, +# 85 +CUDA_R_64U, +# 86 +CUDA_C_64U, +# 87 +CUDA_R_8F_E4M3, +# 88 +CUDA_R_8F_UE4M3 = CUDA_R_8F_E4M3, +# 89 +CUDA_R_8F_E5M2, +# 90 +CUDA_R_8F_UE8M0, +# 91 +CUDA_R_6F_E2M3, +# 92 +CUDA_R_6F_E3M2, +# 93 +CUDA_R_4F_E2M1 +# 94 +} cudaDataType; +# 102 +typedef +# 97 +enum libraryPropertyType_t { +# 99 +MAJOR_VERSION, +# 100 +MINOR_VERSION, +# 101 +PATCH_LEVEL +# 102 +} libraryPropertyType; +# 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 310 +typedef unsigned long size_t; +# 311 +typedef long ptrdiff_t; +# 314 +typedef __decltype((nullptr)) nullptr_t; +# 317 +#pragma GCC visibility push ( default ) +# 320 +__attribute((__noreturn__, __always_inline__)) inline void +# 321 +__terminate() noexcept +# 322 +{ +# 323 +void terminate() noexcept __attribute((__noreturn__, __cold__)); +# 324 +terminate(); +# 325 +} +#pragma GCC visibility pop +} +# 341 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 343 +inline namespace __cxx11 __attribute((__abi_tag__("cxx11"))) { } +# 344 +} +# 345 +namespace __gnu_cxx { +# 347 +inline namespace __cxx11 __attribute((__abi_tag__("cxx11"))) { } +# 348 +} +# 534 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 536 +#pragma GCC visibility push ( default ) +# 541 +__attribute((__always_inline__)) constexpr bool +# 543 +__is_constant_evaluated() noexcept +# 544 +{ +# 550 +return __builtin_is_constant_evaluated(); +# 554 +} +#pragma GCC visibility pop +} +# 573 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 575 +#pragma GCC visibility push ( default ) +# 577 +__attribute((__noreturn__)) void +# 579 +__glibcxx_assert_fail(const char * __file, int __line, const char * __function, const char * __condition) noexcept; +# 583 +#pragma GCC visibility pop +} +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace std { +# 606 +__attribute((__always_inline__, __visibility__("default"))) inline void +# 608 +__glibcxx_assert_fail() +# 609 +{ } +# 610 +} +# 828 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +namespace __gnu_cxx { +# 830 +typedef __decltype(((0.0bf16))) __bfloat16_t; +# 831 +} +# 34 "/usr/include/stdlib.h" 3 +extern "C" { +# 63 "/usr/include/stdlib.h" 3 +typedef +# 60 +struct { +# 61 +int quot; +# 62 +int rem; +# 63 +} div_t; +# 71 +typedef +# 68 +struct { +# 69 +long quot; +# 70 +long rem; +# 71 +} ldiv_t; +# 81 +__extension__ typedef +# 78 +struct { +# 79 +long long quot; +# 80 +long long rem; +# 81 +} lldiv_t; +# 98 "/usr/include/stdlib.h" 3 +extern size_t __ctype_get_mb_cur_max() noexcept(true); +# 102 +extern double atof(const char * __nptr) noexcept(true) +# 103 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 105 +extern int atoi(const char * __nptr) noexcept(true) +# 106 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 108 +extern long atol(const char * __nptr) noexcept(true) +# 109 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 113 +__extension__ extern long long atoll(const char * __nptr) noexcept(true) +# 114 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 118 +extern double strtod(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 120 + __attribute((__nonnull__(1))); +# 124 +extern float strtof(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 125 + __attribute((__nonnull__(1))); +# 127 +extern long double strtold(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 129 + __attribute((__nonnull__(1))); +# 141 "/usr/include/stdlib.h" 3 +extern _Float32 strtof32(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 143 + __attribute((__nonnull__(1))); +# 147 +extern _Float64 strtof64(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 149 + __attribute((__nonnull__(1))); +# 153 +extern _Float128 strtof128(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 155 + __attribute((__nonnull__(1))); +# 159 +extern _Float32x strtof32x(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 161 + __attribute((__nonnull__(1))); +# 165 +extern _Float64x strtof64x(const char *__restrict__ __nptr, char **__restrict__ __endptr) noexcept(true) +# 167 + __attribute((__nonnull__(1))); +# 177 "/usr/include/stdlib.h" 3 +extern long strtol(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtol") +# 179 + __attribute((__nonnull__(1))); +# 181 +extern unsigned long strtoul(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoul") +# 183 + __attribute((__nonnull__(1))); +# 188 +__extension__ extern long long strtoq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoll") +# 190 + __attribute((__nonnull__(1))); +# 193 +__extension__ extern unsigned long long strtouq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoull") +# 195 + __attribute((__nonnull__(1))); +# 201 +__extension__ extern long long strtoll(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoll") +# 203 + __attribute((__nonnull__(1))); +# 206 +__extension__ extern unsigned long long strtoull(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoull") +# 208 + __attribute((__nonnull__(1))); +# 215 +extern long strtol(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtol") +# 218 + __attribute((__nonnull__(1))); +# 219 +extern unsigned long strtoul(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoul") +# 223 + __attribute((__nonnull__(1))); +# 226 +__extension__ extern long long strtoq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoll") +# 229 + __attribute((__nonnull__(1))); +# 231 +__extension__ extern unsigned long long strtouq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoull") +# 235 + __attribute((__nonnull__(1))); +# 238 +__extension__ extern long long strtoll(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoll") +# 241 + __attribute((__nonnull__(1))); +# 243 +__extension__ extern unsigned long long strtoull(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) __asm__("__isoc23_strtoull") +# 247 + __attribute((__nonnull__(1))); +# 278 "/usr/include/stdlib.h" 3 +extern int strfromd(char * __dest, size_t __size, const char * __format, double __f) noexcept(true) +# 280 + __attribute((__nonnull__(3))); +# 282 +extern int strfromf(char * __dest, size_t __size, const char * __format, float __f) noexcept(true) +# 284 + __attribute((__nonnull__(3))); +# 286 +extern int strfroml(char * __dest, size_t __size, const char * __format, long double __f) noexcept(true) +# 288 + __attribute((__nonnull__(3))); +# 298 "/usr/include/stdlib.h" 3 +extern int strfromf32(char * __dest, size_t __size, const char * __format, _Float32 __f) noexcept(true) +# 300 + __attribute((__nonnull__(3))); +# 304 +extern int strfromf64(char * __dest, size_t __size, const char * __format, _Float64 __f) noexcept(true) +# 306 + __attribute((__nonnull__(3))); +# 310 +extern int strfromf128(char * __dest, size_t __size, const char * __format, _Float128 __f) noexcept(true) +# 312 + __attribute((__nonnull__(3))); +# 316 +extern int strfromf32x(char * __dest, size_t __size, const char * __format, _Float32x __f) noexcept(true) +# 318 + __attribute((__nonnull__(3))); +# 322 +extern int strfromf64x(char * __dest, size_t __size, const char * __format, _Float64x __f) noexcept(true) +# 324 + __attribute((__nonnull__(3))); +# 340 "/usr/include/stdlib.h" 3 +extern long strtol_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtol_l") +# 342 + __attribute((__nonnull__(1, 4))); +# 344 +extern unsigned long strtoul_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoul_l") +# 347 + __attribute((__nonnull__(1, 4))); +# 350 +__extension__ extern long long strtoll_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoll_l") +# 353 + __attribute((__nonnull__(1, 4))); +# 356 +__extension__ extern unsigned long long strtoull_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoull_l") +# 359 + __attribute((__nonnull__(1, 4))); +# 365 +extern long strtol_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtol_l") +# 369 + __attribute((__nonnull__(1, 4))); +# 370 +extern unsigned long strtoul_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoul_l") +# 375 + __attribute((__nonnull__(1, 4))); +# 377 +__extension__ extern long long strtoll_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoll_l") +# 382 + __attribute((__nonnull__(1, 4))); +# 384 +__extension__ extern unsigned long long strtoull_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) __asm__("__isoc23_strtoull_l") +# 389 + __attribute((__nonnull__(1, 4))); +# 415 "/usr/include/stdlib.h" 3 +extern double strtod_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 417 + __attribute((__nonnull__(1, 3))); +# 419 +extern float strtof_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 421 + __attribute((__nonnull__(1, 3))); +# 423 +extern long double strtold_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 426 + __attribute((__nonnull__(1, 3))); +# 436 "/usr/include/stdlib.h" 3 +extern _Float32 strtof32_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 439 + __attribute((__nonnull__(1, 3))); +# 443 +extern _Float64 strtof64_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 446 + __attribute((__nonnull__(1, 3))); +# 450 +extern _Float128 strtof128_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 453 + __attribute((__nonnull__(1, 3))); +# 457 +extern _Float32x strtof32x_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 460 + __attribute((__nonnull__(1, 3))); +# 464 +extern _Float64x strtof64x_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 467 + __attribute((__nonnull__(1, 3))); +# 505 "/usr/include/stdlib.h" 3 +extern char *l64a(long __n) noexcept(true); +# 508 +extern long a64l(const char * __s) noexcept(true) +# 509 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 27 "/usr/include/sys/types.h" 3 +extern "C" { +# 33 +typedef __u_char u_char; +# 34 +typedef __u_short u_short; +# 35 +typedef __u_int u_int; +# 36 +typedef __u_long u_long; +# 37 +typedef __quad_t quad_t; +# 38 +typedef __u_quad_t u_quad_t; +# 39 +typedef __fsid_t fsid_t; +# 42 +typedef __loff_t loff_t; +# 47 +typedef __ino_t ino_t; +# 54 +typedef __ino64_t ino64_t; +# 59 +typedef __dev_t dev_t; +# 64 +typedef __gid_t gid_t; +# 69 +typedef __mode_t mode_t; +# 74 +typedef __nlink_t nlink_t; +# 79 +typedef __uid_t uid_t; +# 85 +typedef __off_t off_t; +# 92 +typedef __off64_t off64_t; +# 97 +typedef __pid_t pid_t; +# 103 +typedef __id_t id_t; +# 108 +typedef __ssize_t ssize_t; +# 114 +typedef __daddr_t daddr_t; +# 115 +typedef __caddr_t caddr_t; +# 121 +typedef __key_t key_t; +# 7 "/usr/include/bits/types/clock_t.h" 3 +typedef __clock_t clock_t; +# 7 "/usr/include/bits/types/clockid_t.h" 3 +typedef __clockid_t clockid_t; +# 10 "/usr/include/bits/types/time_t.h" 3 +typedef __time_t time_t; +# 7 "/usr/include/bits/types/timer_t.h" 3 +typedef __timer_t timer_t; +# 134 "/usr/include/sys/types.h" 3 +typedef __useconds_t useconds_t; +# 138 +typedef __suseconds_t suseconds_t; +# 148 "/usr/include/sys/types.h" 3 +typedef unsigned long ulong; +# 149 +typedef unsigned short ushort; +# 150 +typedef unsigned uint; +# 24 "/usr/include/bits/stdint-intn.h" 3 +typedef __int8_t int8_t; +# 25 +typedef __int16_t int16_t; +# 26 +typedef __int32_t int32_t; +# 27 +typedef __int64_t int64_t; +# 158 "/usr/include/sys/types.h" 3 +typedef __uint8_t u_int8_t; +# 159 +typedef __uint16_t u_int16_t; +# 160 +typedef __uint32_t u_int32_t; +# 161 +typedef __uint64_t u_int64_t; +# 164 +typedef long register_t __attribute((__mode__(__word__))); +# 34 "/usr/include/bits/byteswap.h" 3 +static inline __uint16_t __bswap_16(__uint16_t __bsx) +# 35 +{ +# 37 +return __builtin_bswap16(__bsx); +# 41 +} +# 49 +static inline __uint32_t __bswap_32(__uint32_t __bsx) +# 50 +{ +# 52 +return __builtin_bswap32(__bsx); +# 56 +} +# 70 "/usr/include/bits/byteswap.h" 3 +__extension__ static inline __uint64_t __bswap_64(__uint64_t __bsx) +# 71 +{ +# 73 +return __builtin_bswap64(__bsx); +# 77 +} +# 33 "/usr/include/bits/uintn-identity.h" 3 +static inline __uint16_t __uint16_identity(__uint16_t __x) +# 34 +{ +# 35 +return __x; +# 36 +} +# 39 +static inline __uint32_t __uint32_identity(__uint32_t __x) +# 40 +{ +# 41 +return __x; +# 42 +} +# 45 +static inline __uint64_t __uint64_identity(__uint64_t __x) +# 46 +{ +# 47 +return __x; +# 48 +} +# 8 "/usr/include/bits/types/__sigset_t.h" 3 +typedef +# 6 +struct { +# 7 +unsigned long __val[(1024) / ((8) * sizeof(unsigned long))]; +# 8 +} __sigset_t; +# 7 "/usr/include/bits/types/sigset_t.h" 3 +typedef __sigset_t sigset_t; +# 8 "/usr/include/bits/types/struct_timeval.h" 3 +struct timeval { +# 14 +__time_t tv_sec; +# 15 +__suseconds_t tv_usec; +# 17 +}; +# 11 "/usr/include/bits/types/struct_timespec.h" 3 +struct timespec { +# 16 +__time_t tv_sec; +# 21 +__syscall_slong_t tv_nsec; +# 31 "/usr/include/bits/types/struct_timespec.h" 3 +}; +# 49 "/usr/include/sys/select.h" 3 +typedef long __fd_mask; +# 70 "/usr/include/sys/select.h" 3 +typedef +# 60 +struct { +# 64 +__fd_mask fds_bits[1024 / (8 * ((int)sizeof(__fd_mask)))]; +# 70 +} fd_set; +# 77 +typedef __fd_mask fd_mask; +# 91 "/usr/include/sys/select.h" 3 +extern "C" { +# 102 "/usr/include/sys/select.h" 3 +extern int select(int __nfds, fd_set *__restrict__ __readfds, fd_set *__restrict__ __writefds, fd_set *__restrict__ __exceptfds, timeval *__restrict__ __timeout); +# 127 "/usr/include/sys/select.h" 3 +extern int pselect(int __nfds, fd_set *__restrict__ __readfds, fd_set *__restrict__ __writefds, fd_set *__restrict__ __exceptfds, const timespec *__restrict__ __timeout, const __sigset_t *__restrict__ __sigmask); +# 153 "/usr/include/sys/select.h" 3 +} +# 185 "/usr/include/sys/types.h" 3 +typedef __blksize_t blksize_t; +# 192 +typedef __blkcnt_t blkcnt_t; +# 196 +typedef __fsblkcnt_t fsblkcnt_t; +# 200 +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/sys/types.h" 3 +typedef __blkcnt64_t blkcnt64_t; +# 220 +typedef __fsblkcnt64_t fsblkcnt64_t; +# 221 +typedef __fsfilcnt64_t fsfilcnt64_t; +# 33 "/usr/include/bits/atomic_wide_counter.h" 3 +typedef +# 26 +union { +# 27 +__extension__ unsigned long long __value64; +# 29 +struct { +# 30 +unsigned __low; +# 31 +unsigned __high; +# 32 +} __value32; +# 33 +} __atomic_wide_counter; +# 55 "/usr/include/bits/thread-shared-types.h" 3 +typedef +# 51 +struct __pthread_internal_list { +# 53 +__pthread_internal_list *__prev; +# 54 +__pthread_internal_list *__next; +# 55 +} __pthread_list_t; +# 60 +typedef +# 57 +struct __pthread_internal_slist { +# 59 +__pthread_internal_slist *__next; +# 60 +} __pthread_slist_t; +# 22 "/usr/include/bits/struct_mutex.h" 3 +struct __pthread_mutex_s { +# 24 +int __lock; +# 25 +unsigned __count; +# 26 +int __owner; +# 28 +unsigned __nusers; +# 32 +int __kind; +# 34 +short __spins; +# 35 +short __elision; +# 36 +__pthread_list_t __list; +# 53 "/usr/include/bits/struct_mutex.h" 3 +}; +# 23 "/usr/include/bits/struct_rwlock.h" 3 +struct __pthread_rwlock_arch_t { +# 25 +unsigned __readers; +# 26 +unsigned __writers; +# 27 +unsigned __wrphase_futex; +# 28 +unsigned __writers_futex; +# 29 +unsigned __pad3; +# 30 +unsigned __pad4; +# 32 +int __cur_writer; +# 33 +int __shared; +# 34 +signed char __rwelision; +# 39 +unsigned char __pad1[7]; +# 42 +unsigned long __pad2; +# 45 +unsigned __flags; +# 55 "/usr/include/bits/struct_rwlock.h" 3 +}; +# 94 "/usr/include/bits/thread-shared-types.h" 3 +struct __pthread_cond_s { +# 96 +__atomic_wide_counter __wseq; +# 97 +__atomic_wide_counter __g1_start; +# 98 +unsigned __g_size[2]; +# 99 +unsigned __g1_orig_size; +# 100 +unsigned __wrefs; +# 101 +unsigned __g_signals[2]; +# 102 +unsigned __unused_initialized_1; +# 103 +unsigned __unused_initialized_2; +# 104 +}; +# 106 +typedef unsigned __tss_t; +# 107 +typedef unsigned long __thrd_t; +# 112 +typedef +# 110 +struct { +# 111 +int __data; +# 112 +} __once_flag; +# 27 "/usr/include/bits/pthreadtypes.h" 3 +typedef unsigned long pthread_t; +# 36 +typedef +# 33 +union { +# 34 +char __size[4]; +# 35 +int __align; +# 36 +} pthread_mutexattr_t; +# 45 +typedef +# 42 +union { +# 43 +char __size[4]; +# 44 +int __align; +# 45 +} pthread_condattr_t; +# 49 +typedef unsigned pthread_key_t; +# 53 +typedef int pthread_once_t; +# 56 +union pthread_attr_t { +# 58 +char __size[56]; +# 59 +long __align; +# 60 +}; +# 62 +typedef pthread_attr_t pthread_attr_t; +# 72 +typedef +# 68 +union { +# 69 +__pthread_mutex_s __data; +# 70 +char __size[40]; +# 71 +long __align; +# 72 +} pthread_mutex_t; +# 80 +typedef +# 76 +union { +# 77 +__pthread_cond_s __data; +# 78 +char __size[48]; +# 79 +__extension__ long long __align; +# 80 +} pthread_cond_t; +# 91 +typedef +# 87 +union { +# 88 +__pthread_rwlock_arch_t __data; +# 89 +char __size[56]; +# 90 +long __align; +# 91 +} pthread_rwlock_t; +# 97 +typedef +# 94 +union { +# 95 +char __size[8]; +# 96 +long __align; +# 97 +} pthread_rwlockattr_t; +# 103 +typedef volatile int pthread_spinlock_t; +# 112 +typedef +# 109 +union { +# 110 +char __size[32]; +# 111 +long __align; +# 112 +} pthread_barrier_t; +# 118 +typedef +# 115 +union { +# 116 +char __size[4]; +# 117 +int __align; +# 118 +} pthread_barrierattr_t; +# 230 "/usr/include/sys/types.h" 3 +} +# 521 "/usr/include/stdlib.h" 3 +extern long random() noexcept(true); +# 524 +extern void srandom(unsigned __seed) noexcept(true); +# 530 +extern char *initstate(unsigned __seed, char * __statebuf, size_t __statelen) noexcept(true) +# 531 + __attribute((__nonnull__(2))); +# 535 +extern char *setstate(char * __statebuf) noexcept(true) __attribute((__nonnull__(1))); +# 543 +struct random_data { +# 545 +int32_t *fptr; +# 546 +int32_t *rptr; +# 547 +int32_t *state; +# 548 +int rand_type; +# 549 +int rand_deg; +# 550 +int rand_sep; +# 551 +int32_t *end_ptr; +# 552 +}; +# 554 +extern int random_r(random_data *__restrict__ __buf, int32_t *__restrict__ __result) noexcept(true) +# 555 + __attribute((__nonnull__(1, 2))); +# 557 +extern int srandom_r(unsigned __seed, random_data * __buf) noexcept(true) +# 558 + __attribute((__nonnull__(2))); +# 560 +extern int initstate_r(unsigned __seed, char *__restrict__ __statebuf, size_t __statelen, random_data *__restrict__ __buf) noexcept(true) +# 563 + __attribute((__nonnull__(2, 4))); +# 565 +extern int setstate_r(char *__restrict__ __statebuf, random_data *__restrict__ __buf) noexcept(true) +# 567 + __attribute((__nonnull__(1, 2))); +# 573 +extern int rand() noexcept(true); +# 575 +extern void srand(unsigned __seed) noexcept(true); +# 579 +extern int rand_r(unsigned * __seed) noexcept(true); +# 587 +extern double drand48() noexcept(true); +# 588 +extern double erand48(unsigned short __xsubi[3]) noexcept(true) __attribute((__nonnull__(1))); +# 591 +extern long lrand48() noexcept(true); +# 592 +extern long nrand48(unsigned short __xsubi[3]) noexcept(true) +# 593 + __attribute((__nonnull__(1))); +# 596 +extern long mrand48() noexcept(true); +# 597 +extern long jrand48(unsigned short __xsubi[3]) noexcept(true) +# 598 + __attribute((__nonnull__(1))); +# 601 +extern void srand48(long __seedval) noexcept(true); +# 602 +extern unsigned short *seed48(unsigned short __seed16v[3]) noexcept(true) +# 603 + __attribute((__nonnull__(1))); +# 604 +extern void lcong48(unsigned short __param[7]) noexcept(true) __attribute((__nonnull__(1))); +# 610 +struct drand48_data { +# 612 +unsigned short __x[3]; +# 613 +unsigned short __old_x[3]; +# 614 +unsigned short __c; +# 615 +unsigned short __init; +# 616 +__extension__ unsigned long long __a; +# 618 +}; +# 621 +extern int drand48_r(drand48_data *__restrict__ __buffer, double *__restrict__ __result) noexcept(true) +# 622 + __attribute((__nonnull__(1, 2))); +# 623 +extern int erand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, double *__restrict__ __result) noexcept(true) +# 625 + __attribute((__nonnull__(1, 2))); +# 628 +extern int lrand48_r(drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 630 + __attribute((__nonnull__(1, 2))); +# 631 +extern int nrand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 634 + __attribute((__nonnull__(1, 2))); +# 637 +extern int mrand48_r(drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 639 + __attribute((__nonnull__(1, 2))); +# 640 +extern int jrand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 643 + __attribute((__nonnull__(1, 2))); +# 646 +extern int srand48_r(long __seedval, drand48_data * __buffer) noexcept(true) +# 647 + __attribute((__nonnull__(2))); +# 649 +extern int seed48_r(unsigned short __seed16v[3], drand48_data * __buffer) noexcept(true) +# 650 + __attribute((__nonnull__(1, 2))); +# 652 +extern int lcong48_r(unsigned short __param[7], drand48_data * __buffer) noexcept(true) +# 654 + __attribute((__nonnull__(1, 2))); +# 657 +extern __uint32_t arc4random() noexcept(true); +# 661 +extern void arc4random_buf(void * __buf, size_t __size) noexcept(true) +# 662 + __attribute((__nonnull__(1))); +# 666 +extern __uint32_t arc4random_uniform(__uint32_t __upper_bound) noexcept(true); +# 672 +extern void *malloc(size_t __size) noexcept(true) __attribute((__malloc__)) +# 673 + __attribute((__alloc_size__(1))); +# 675 +extern void *calloc(size_t __nmemb, size_t __size) noexcept(true) +# 676 + __attribute((__malloc__)) __attribute((__alloc_size__(1, 2))); +# 683 +extern void *realloc(void * __ptr, size_t __size) noexcept(true) +# 684 + __attribute((__warn_unused_result__)) __attribute((__alloc_size__(2))); +# 687 +extern void free(void * __ptr) noexcept(true); +# 695 +extern void *reallocarray(void * __ptr, size_t __nmemb, size_t __size) noexcept(true) +# 696 + __attribute((__warn_unused_result__)) +# 697 + __attribute((__alloc_size__(2, 3))) +# 698 + __attribute((__malloc__(__builtin_free, 1))); +# 701 +extern void *reallocarray(void * __ptr, size_t __nmemb, size_t __size) noexcept(true) +# 702 + __attribute((__malloc__(reallocarray, 1))); +# 26 "/usr/include/alloca.h" 3 +extern "C" { +# 32 +extern void *alloca(size_t __size) noexcept(true); +# 38 +} +# 712 "/usr/include/stdlib.h" 3 +extern void *valloc(size_t __size) noexcept(true) __attribute((__malloc__)) +# 713 + __attribute((__alloc_size__(1))); +# 718 +extern int posix_memalign(void ** __memptr, size_t __alignment, size_t __size) noexcept(true) +# 719 + __attribute((__nonnull__(1))); +# 724 +extern void *aligned_alloc(size_t __alignment, size_t __size) noexcept(true) +# 725 + __attribute((__malloc__)) __attribute((__alloc_align__(1 ))) +# 726 + __attribute((__alloc_size__(2))); +# 730 +extern void abort() noexcept(true) __attribute((__noreturn__)) __attribute((__cold__)); +# 734 +extern int atexit(void (* __func)(void)) noexcept(true) __attribute((__nonnull__(1))); +# 739 +extern "C++" int at_quick_exit(void (* __func)(void)) noexcept(true) __asm__("at_quick_exit") +# 740 + __attribute((__nonnull__(1))); +# 749 "/usr/include/stdlib.h" 3 +extern int on_exit(void (* __func)(int __status, void * __arg), void * __arg) noexcept(true) +# 750 + __attribute((__nonnull__(1))); +# 756 +extern void exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 762 +extern void quick_exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 768 +extern void _Exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 773 +extern char *getenv(const char * __name) noexcept(true) __attribute((__nonnull__(1))); +# 778 +extern char *secure_getenv(const char * __name) noexcept(true) +# 779 + __attribute((__nonnull__(1))); +# 786 +extern int putenv(char * __string) noexcept(true) __attribute((__nonnull__(1))); +# 792 +extern int setenv(const char * __name, const char * __value, int __replace) noexcept(true) +# 793 + __attribute((__nonnull__(2))); +# 796 +extern int unsetenv(const char * __name) noexcept(true) __attribute((__nonnull__(1))); +# 803 +extern int clearenv() noexcept(true); +# 814 "/usr/include/stdlib.h" 3 +extern char *mktemp(char * __template) noexcept(true) __attribute((__nonnull__(1))); +# 827 "/usr/include/stdlib.h" 3 +extern int mkstemp(char * __template) __attribute((__nonnull__(1))); +# 837 "/usr/include/stdlib.h" 3 +extern int mkstemp64(char * __template) __attribute((__nonnull__(1))); +# 849 "/usr/include/stdlib.h" 3 +extern int mkstemps(char * __template, int __suffixlen) __attribute((__nonnull__(1))); +# 859 "/usr/include/stdlib.h" 3 +extern int mkstemps64(char * __template, int __suffixlen) +# 860 + __attribute((__nonnull__(1))); +# 870 "/usr/include/stdlib.h" 3 +extern char *mkdtemp(char * __template) noexcept(true) __attribute((__nonnull__(1))); +# 881 "/usr/include/stdlib.h" 3 +extern int mkostemp(char * __template, int __flags) __attribute((__nonnull__(1))); +# 891 "/usr/include/stdlib.h" 3 +extern int mkostemp64(char * __template, int __flags) __attribute((__nonnull__(1))); +# 901 "/usr/include/stdlib.h" 3 +extern int mkostemps(char * __template, int __suffixlen, int __flags) +# 902 + __attribute((__nonnull__(1))); +# 913 "/usr/include/stdlib.h" 3 +extern int mkostemps64(char * __template, int __suffixlen, int __flags) +# 914 + __attribute((__nonnull__(1))); +# 923 "/usr/include/stdlib.h" 3 +extern int system(const char * __command); +# 929 +extern char *canonicalize_file_name(const char * __name) noexcept(true) +# 930 + __attribute((__nonnull__(1))) __attribute((__malloc__)) +# 931 + __attribute((__malloc__(__builtin_free, 1))); +# 940 "/usr/include/stdlib.h" 3 +extern char *realpath(const char *__restrict__ __name, char *__restrict__ __resolved) noexcept(true); +# 948 +typedef int (*__compar_fn_t)(const void *, const void *); +# 951 +typedef __compar_fn_t comparison_fn_t; +# 955 +typedef int (*__compar_d_fn_t)(const void *, const void *, void *); +# 960 +extern void *bsearch(const void * __key, const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar) +# 962 + __attribute((__nonnull__(1, 2, 5))); +# 970 +extern void qsort(void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar) +# 971 + __attribute((__nonnull__(1, 4))); +# 973 +extern void qsort_r(void * __base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void * __arg) +# 975 + __attribute((__nonnull__(1, 4))); +# 980 +extern int abs(int __x) noexcept(true) __attribute((const)); +# 981 +extern long labs(long __x) noexcept(true) __attribute((const)); +# 984 +__extension__ extern long long llabs(long long __x) noexcept(true) +# 985 + __attribute((const)); +# 992 +extern div_t div(int __numer, int __denom) noexcept(true) +# 993 + __attribute((const)); +# 994 +extern ldiv_t ldiv(long __numer, long __denom) noexcept(true) +# 995 + __attribute((const)); +# 998 +__extension__ extern lldiv_t lldiv(long long __numer, long long __denom) noexcept(true) +# 1000 + __attribute((const)); +# 1012 "/usr/include/stdlib.h" 3 +extern char *ecvt(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 1013 + __attribute((__nonnull__(3, 4))); +# 1018 +extern char *fcvt(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 1019 + __attribute((__nonnull__(3, 4))); +# 1024 +extern char *gcvt(double __value, int __ndigit, char * __buf) noexcept(true) +# 1025 + __attribute((__nonnull__(3))); +# 1030 +extern char *qecvt(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 1032 + __attribute((__nonnull__(3, 4))); +# 1033 +extern char *qfcvt(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 1035 + __attribute((__nonnull__(3, 4))); +# 1036 +extern char *qgcvt(long double __value, int __ndigit, char * __buf) noexcept(true) +# 1037 + __attribute((__nonnull__(3))); +# 1042 +extern int ecvt_r(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 1044 + __attribute((__nonnull__(3, 4, 5))); +# 1045 +extern int fcvt_r(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 1047 + __attribute((__nonnull__(3, 4, 5))); +# 1049 +extern int qecvt_r(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 1052 + __attribute((__nonnull__(3, 4, 5))); +# 1053 +extern int qfcvt_r(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 1056 + __attribute((__nonnull__(3, 4, 5))); +# 1062 +extern int mblen(const char * __s, size_t __n) noexcept(true); +# 1065 +extern int mbtowc(wchar_t *__restrict__ __pwc, const char *__restrict__ __s, size_t __n) noexcept(true); +# 1069 +extern int wctomb(char * __s, wchar_t __wchar) noexcept(true); +# 1073 +extern size_t mbstowcs(wchar_t *__restrict__ __pwcs, const char *__restrict__ __s, size_t __n) noexcept(true) +# 1075 + __attribute((__access__(__read_only__ , 2 ))); +# 1077 +extern size_t wcstombs(char *__restrict__ __s, const wchar_t *__restrict__ __pwcs, size_t __n) noexcept(true) +# 1080 + __attribute((__access__(__write_only__ , 1 , 3 ))) +# 1081 + __attribute((__access__(__read_only__ , 2 ))); +# 1088 +extern int rpmatch(const char * __response) noexcept(true) __attribute((__nonnull__(1))); +# 1099 "/usr/include/stdlib.h" 3 +extern int getsubopt(char **__restrict__ __optionp, char *const *__restrict__ __tokens, char **__restrict__ __valuep) noexcept(true) +# 1102 + __attribute((__nonnull__(1, 2, 3))); +# 1110 +extern int posix_openpt(int __oflag); +# 1118 +extern int grantpt(int __fd) noexcept(true); +# 1122 +extern int unlockpt(int __fd) noexcept(true); +# 1127 +extern char *ptsname(int __fd) noexcept(true); +# 1134 +extern int ptsname_r(int __fd, char * __buf, size_t __buflen) noexcept(true) +# 1135 + __attribute((__nonnull__(2))) __attribute((__access__(__write_only__ , 2 , 3 ))); +# 1138 +extern int getpt(); +# 1145 +extern int getloadavg(double __loadavg[], int __nelem) noexcept(true) +# 1146 + __attribute((__nonnull__(1))); +# 1167 "/usr/include/stdlib.h" 3 +} +# 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +extern "C++" { +# 48 +namespace std __attribute((__visibility__("default"))) { +# 52 +using ::abs; +# 56 +inline long abs(long __i) { return __builtin_labs(__i); } +# 61 +inline long long abs(long long __x) { return __builtin_llabs(__x); } +# 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +constexpr double abs(double __x) +# 72 +{ return __builtin_fabs(__x); } +# 75 +constexpr float abs(float __x) +# 76 +{ return __builtin_fabsf(__x); } +# 79 +constexpr long double abs(long double __x) +# 80 +{ return __builtin_fabsl(__x); } +# 85 +__extension__ constexpr __int128 abs(__int128 __x) { return (__x >= (0)) ? __x : (-__x); } +# 137 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/std_abs.h" 3 +__extension__ constexpr __float128 abs(__float128 __x) +# 138 +{ +# 142 +return __builtin_fabsf128(__x); +# 147 +} +# 151 +} +# 152 +} +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +extern "C++" { +# 127 +namespace std __attribute((__visibility__("default"))) { +# 131 +using ::div_t; +# 132 +using ::ldiv_t; +# 134 +using ::abort; +# 136 +using ::aligned_alloc; +# 138 +using ::atexit; +# 141 +using ::at_quick_exit; +# 144 +using ::atof; +# 145 +using ::atoi; +# 146 +using ::atol; +# 147 +using ::bsearch; +# 148 +using ::calloc; +# 149 +using ::div; +# 150 +using ::exit; +# 151 +using ::free; +# 152 +using ::getenv; +# 153 +using ::labs; +# 154 +using ::ldiv; +# 155 +using ::malloc; +# 157 +using ::mblen; +# 158 +using ::mbstowcs; +# 159 +using ::mbtowc; +# 161 +using ::qsort; +# 164 +using ::quick_exit; +# 167 +using ::rand; +# 168 +using ::realloc; +# 169 +using ::srand; +# 170 +using ::strtod; +# 171 +using ::strtol; +# 172 +using ::strtoul; +# 173 +using ::system; +# 175 +using ::wcstombs; +# 176 +using ::wctomb; +# 181 +inline ldiv_t div(long __i, long __j) noexcept { return ldiv(__i, __j); } +# 186 +} +# 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 204 +using ::lldiv_t; +# 210 +using ::_Exit; +# 214 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" +using ::llabs; +# 219 +inline lldiv_t div(long long __n, long long __d) +# 220 +{ lldiv_t __q; (__q.quot) = (__n / __d); (__q.rem) = (__n % __d); return __q; } +# 222 +using ::lldiv; +#pragma GCC diagnostic pop +# 234 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +using ::atoll; +# 235 +using ::strtoll; +# 236 +using ::strtoull; +# 238 +using ::strtof; +# 239 +using ::strtold; +# 242 +} +# 244 +namespace std { +# 247 +using __gnu_cxx::lldiv_t; +# 249 +using __gnu_cxx::_Exit; +# 251 +using __gnu_cxx::llabs; +# 252 +using __gnu_cxx::div; +# 253 +using __gnu_cxx::lldiv; +# 255 +using __gnu_cxx::atoll; +# 256 +using __gnu_cxx::strtof; +# 257 +using __gnu_cxx::strtoll; +# 258 +using __gnu_cxx::strtoull; +# 259 +using __gnu_cxx::strtold; +# 260 +} +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cstdlib" 3 +} +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/stdlib.h" 3 +using std::abort; +# 39 +using std::atexit; +# 40 +using std::exit; +# 43 +using std::at_quick_exit; +# 46 +using std::quick_exit; +# 49 +using std::_Exit; +# 57 +using std::abs; +# 58 +using std::atof; +# 59 +using std::atoi; +# 60 +using std::atol; +# 61 +using std::bsearch; +# 62 +using std::calloc; +# 63 +using std::div; +# 64 +using std::free; +# 65 +using std::getenv; +# 66 +using std::labs; +# 67 +using std::ldiv; +# 68 +using std::malloc; +# 70 +using std::mblen; +# 71 +using std::mbstowcs; +# 72 +using std::mbtowc; +# 74 +using std::qsort; +# 75 +using std::rand; +# 76 +using std::realloc; +# 77 +using std::srand; +# 78 +using std::strtod; +# 79 +using std::strtol; +# 80 +using std::strtoul; +# 81 +using std::system; +# 83 +using std::wcstombs; +# 84 +using std::wctomb; +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +extern "C" { +# 191 +__attribute__((unused)) extern cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(); +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetAttribute(int * value, cudaDeviceAttr attr, int device); +# 245 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetLimit(size_t * pValue, cudaLimit limit); +# 246 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetCacheConfig(cudaFuncCache * pCacheConfig); +# 247 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetSharedMemConfig(cudaSharedMemConfig * pConfig); +# 248 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetLastError(); +# 249 +__attribute__((unused)) extern cudaError_t __cudaCDP2PeekAtLastError(); +# 250 +__attribute__((unused)) extern const char *__cudaCDP2GetErrorString(cudaError_t error); +# 251 +__attribute__((unused)) extern const char *__cudaCDP2GetErrorName(cudaError_t error); +# 252 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetDeviceCount(int * count); +# 253 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetDevice(int * device); +# 254 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamCreateWithFlags(cudaStream_t * pStream, unsigned flags); +# 255 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamDestroy(cudaStream_t stream); +# 256 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned flags); +# 257 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned flags); +# 258 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventCreateWithFlags(cudaEvent_t * event, unsigned flags); +# 259 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecord(cudaEvent_t event, cudaStream_t stream); +# 260 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +# 261 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned flags); +# 262 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned flags); +# 263 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventDestroy(cudaEvent_t event); +# 264 +__attribute__((unused)) extern cudaError_t __cudaCDP2FuncGetAttributes(cudaFuncAttributes * attr, const void * func); +# 265 +__attribute__((unused)) extern cudaError_t __cudaCDP2Free(void * devPtr); +# 266 +__attribute__((unused)) extern cudaError_t __cudaCDP2Malloc(void ** devPtr, size_t size); +# 267 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemcpyAsync(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream); +# 268 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemcpyAsync_ptsz(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream); +# 269 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy2DAsync(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream); +# 270 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy2DAsync_ptsz(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream); +# 271 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy3DAsync(const cudaMemcpy3DParms * p, cudaStream_t stream); +# 272 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy3DAsync_ptsz(const cudaMemcpy3DParms * p, cudaStream_t stream); +# 273 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemsetAsync(void * devPtr, int value, size_t count, cudaStream_t stream); +# 274 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemsetAsync_ptsz(void * devPtr, int value, size_t count, cudaStream_t stream); +# 275 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset2DAsync(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +# 276 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset2DAsync_ptsz(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +# 277 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset3DAsync(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream); +# 278 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset3DAsync_ptsz(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream); +# 279 +__attribute__((unused)) extern cudaError_t __cudaCDP2RuntimeGetVersion(int * runtimeVersion); +# 280 +__attribute__((unused)) extern void *__cudaCDP2GetParameterBuffer(size_t alignment, size_t size); +# 281 +__attribute__((unused)) extern void *__cudaCDP2GetParameterBufferV2(void * func, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize); +# 282 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDevice_ptsz(void * func, void * parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream); +# 283 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDeviceV2_ptsz(void * parameterBuffer, cudaStream_t stream); +# 284 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDevice(void * func, void * parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream); +# 285 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDeviceV2(void * parameterBuffer, cudaStream_t stream); +# 286 +__attribute__((unused)) extern cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, const void * func, int blockSize, size_t dynamicSmemSize); +# 287 +__attribute__((unused)) extern cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, const void * func, int blockSize, size_t dynamicSmemSize, unsigned flags); +# 290 +extern cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 311 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaGraphExec_t cudaGetCurrentGraphExec() +# 312 +{int volatile ___ = 1; +# 316 +::exit(___);} +#if 0 +# 312 +{ +# 313 +unsigned long long current_graph_exec; +# 314 +__asm__("mov.u64 %0, %%current_graph_exec;" : "=l" (current_graph_exec) :); +# 315 +return (cudaGraphExec_t)current_graph_exec; +# 316 +} +#endif +# 346 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const void * value, size_t size); +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 430 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate * updates, size_t updateCount); +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void cudaTriggerProgrammaticLaunchCompletion() +# 449 +{int volatile ___ = 1; +# 451 +::exit(___);} +#if 0 +# 449 +{ +# 450 +__asm__ volatile("griddepcontrol.launch_dependents;" : :); +# 451 +} +#endif +# 464 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void cudaGridDependencySynchronize() +# 465 +{int volatile ___ = 1; +# 467 +::exit(___);} +#if 0 +# 465 +{ +# 466 +__asm__ volatile("griddepcontrol.wait;" : : : "memory"); +# 467 +} +#endif +# 479 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) extern void cudaGraphSetConditional(cudaGraphConditionalHandle handle, unsigned value); +# 482 +__attribute__((unused)) extern unsigned long long cudaCGGetIntrinsicHandle(cudaCGScope scope); +# 483 +__attribute__((unused)) extern cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned flags); +# 484 +__attribute__((unused)) extern cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned flags); +# 485 +__attribute__((unused)) extern cudaError_t cudaCGGetSize(unsigned * numThreads, unsigned * numGrids, unsigned long long handle); +# 486 +__attribute__((unused)) extern cudaError_t cudaCGGetRank(unsigned * threadRank, unsigned * gridRank, unsigned long long handle); +# 714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void *cudaGetParameterBuffer(size_t alignment, size_t size) +# 715 +{int volatile ___ = 1;(void)alignment;(void)size; +# 717 +::exit(___);} +#if 0 +# 715 +{ +# 716 +return __cudaCDP2GetParameterBuffer(alignment, size); +# 717 +} +#endif +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void *cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize) +# 725 +{int volatile ___ = 1;(void)func;(void)gridDimension;(void)blockDimension;(void)sharedMemSize; +# 727 +::exit(___);} +#if 0 +# 725 +{ +# 726 +return __cudaCDP2GetParameterBufferV2(func, gridDimension, blockDimension, sharedMemSize); +# 727 +} +#endif +# 734 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream) +# 735 +{int volatile ___ = 1;(void)func;(void)parameterBuffer;(void)gridDimension;(void)blockDimension;(void)sharedMemSize;(void)stream; +# 737 +::exit(___);} +#if 0 +# 735 +{ +# 736 +return __cudaCDP2LaunchDevice_ptsz(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +# 737 +} +#endif +# 739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream) +# 740 +{int volatile ___ = 1;(void)parameterBuffer;(void)stream; +# 742 +::exit(___);} +#if 0 +# 740 +{ +# 741 +return __cudaCDP2LaunchDeviceV2_ptsz(parameterBuffer, stream); +# 742 +} +#endif +# 800 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream) +# 801 +{int volatile ___ = 1;(void)func;(void)parameterBuffer;(void)gridDimension;(void)blockDimension;(void)sharedMemSize;(void)stream; +# 803 +::exit(___);} +#if 0 +# 801 +{ +# 802 +return __cudaCDP2LaunchDevice(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +# 803 +} +#endif +# 805 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream) +# 806 +{int volatile ___ = 1;(void)parameterBuffer;(void)stream; +# 808 +::exit(___);} +#if 0 +# 806 +{ +# 807 +return __cudaCDP2LaunchDeviceV2(parameterBuffer, stream); +# 808 +} +#endif +# 862 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +} +# 868 +template< class T> static inline cudaError_t cudaMalloc(T ** devPtr, size_t size); +# 869 +template< class T> static inline cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, T * entry); +# 870 +template< class T> static inline cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, T func, int blockSize, size_t dynamicSmemSize); +# 871 +template< class T> static inline cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned flags); +# 901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_device_runtime_api.h" +template< class T> __attribute__((unused)) static inline cudaError_t +# 902 +cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const T &value) +# 903 +{int volatile ___ = 1;(void)node;(void)offset;(void)value; +# 905 +::exit(___);} +#if 0 +# 903 +{ +# 904 +return cudaGraphKernelNodeSetParam(node, offset, &value, sizeof(T)); +# 905 +} +#endif +# 287 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern "C" { +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceReset(); +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSynchronize(); +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetLimit(cudaLimit limit, size_t value); +# 478 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetLimit(size_t * pValue, cudaLimit limit); +# 501 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t * maxWidthInElements, const cudaChannelFormatDesc * fmtDesc, int device); +# 535 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetCacheConfig(cudaFuncCache * pCacheConfig); +# 572 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetStreamPriorityRange(int * leastPriority, int * greatestPriority); +# 616 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetCacheConfig(cudaFuncCache cacheConfig); +# 643 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetByPCIBusId(int * device, const char * pciBusId); +# 673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetPCIBusId(char * pciBusId, int len, int device); +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t * handle, cudaEvent_t event); +# 768 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcOpenEventHandle(cudaEvent_t * event, cudaIpcEventHandle_t handle); +# 813 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t * handle, void * devPtr); +# 880 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcOpenMemHandle(void ** devPtr, cudaIpcMemHandle_t handle, unsigned flags); +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaIpcCloseMemHandle(void * devPtr); +# 951 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(cudaFlushGPUDirectRDMAWritesTarget target, cudaFlushGPUDirectRDMAWritesScope scope); +# 989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void * userData, cudaAsyncCallbackHandle_t * callback); +# 1012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaDeviceGetSharedMemConfig(cudaSharedMemConfig * pConfig); +# 1105 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaDeviceSetSharedMemConfig(cudaSharedMemConfig config); +# 1146 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadExit(); +# 1172 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSynchronize(); +# 1221 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSetLimit(cudaLimit limit, size_t value); +# 1254 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadGetLimit(size_t * pValue, cudaLimit limit); +# 1290 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadGetCacheConfig(cudaFuncCache * pCacheConfig); +# 1337 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSetCacheConfig(cudaFuncCache cacheConfig); +# 1402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetLastError(); +# 1453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaPeekAtLastError(); +# 1469 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern const char *cudaGetErrorName(cudaError_t error); +# 1485 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern const char *cudaGetErrorString(cudaError_t error); +# 1514 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceCount(int * count); +# 1818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceProperties_v2(cudaDeviceProp * prop, int device); +# 2024 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetAttribute(int * value, cudaDeviceAttr attr, int device); +# 2042 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t * memPool, int device); +# 2066 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetMemPool(cudaMemPool_t * memPool, int device); +# 2148 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetNvSciSyncAttributes(void * nvSciSyncAttrList, int device, int flags); +# 2188 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetP2PAttribute(int * value, cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2210 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaChooseDevice(int * device, const cudaDeviceProp * prop); +# 2239 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaInitDevice(int device, unsigned deviceFlags, unsigned flags); +# 2285 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaSetDevice(int device); +# 2307 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDevice(int * device); +# 2338 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaSetValidDevices(int * device_arr, int len); +# 2408 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaSetDeviceFlags(unsigned flags); +# 2453 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceFlags(unsigned * flags); +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreate(cudaStream_t * pStream); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreateWithFlags(cudaStream_t * pStream, unsigned flags); +# 2585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreateWithPriority(cudaStream_t * pStream, unsigned flags, int priority); +# 2613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int * priority); +# 2639 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned * flags); +# 2676 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long * streamId); +# 2702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetDevice(cudaStream_t hStream, int * device); +# 2717 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaCtxResetPersistingL2Cache(); +# 2737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2758 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetAttribute(cudaStream_t hStream, cudaLaunchAttributeID attr, cudaLaunchAttributeValue * value_out); +# 2782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamSetAttribute(cudaStream_t hStream, cudaLaunchAttributeID attr, const cudaLaunchAttributeValue * value); +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2847 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned flags = 0); +# 2855 +typedef void (*cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void * userData); +# 2922 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamAddCallback(cudaStream_t stream, cudaStreamCallback_t callback, void * userData, unsigned flags); +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamQuery(cudaStream_t stream); +# 3055 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void * devPtr, size_t length = 0, unsigned flags = 4); +# 3094 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamBeginCapture(cudaStream_t stream, cudaStreamCaptureMode mode); +# 3135 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamBeginCaptureToGraph(cudaStream_t stream, cudaGraph_t graph, const cudaGraphNode_t * dependencies, const cudaGraphEdgeData * dependencyData, size_t numDependencies, cudaStreamCaptureMode mode); +# 3186 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaThreadExchangeStreamCaptureMode(cudaStreamCaptureMode * mode); +# 3215 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t * pGraph); +# 3253 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamIsCapturing(cudaStream_t stream, cudaStreamCaptureStatus * pCaptureStatus); +# 3303 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, cudaStreamCaptureStatus * captureStatus_out, unsigned long long * id_out = 0, cudaGraph_t * graph_out = 0, const cudaGraphNode_t ** dependencies_out = 0, size_t * numDependencies_out = 0); +# 3362 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetCaptureInfo_v3(cudaStream_t stream, cudaStreamCaptureStatus * captureStatus_out, unsigned long long * id_out = 0, cudaGraph_t * graph_out = 0, const cudaGraphNode_t ** dependencies_out = 0, const cudaGraphEdgeData ** edgeData_out = 0, size_t * numDependencies_out = 0); +# 3402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t * dependencies, size_t numDependencies, unsigned flags = 0); +# 3437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaStreamUpdateCaptureDependencies_v2(cudaStream_t stream, cudaGraphNode_t * dependencies, const cudaGraphEdgeData * dependencyData, size_t numDependencies, unsigned flags = 0); +# 3474 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventCreate(cudaEvent_t * event); +# 3511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventCreateWithFlags(cudaEvent_t * event, unsigned flags); +# 3552 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3600 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned flags = 0); +# 3633 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventQuery(cudaEvent_t event); +# 3664 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3694 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventElapsedTime(float * ms, cudaEvent_t start, cudaEvent_t end); +# 3787 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaEventElapsedTime_v2(float * ms, cudaEvent_t start, cudaEvent_t end); +# 3968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaImportExternalMemory(cudaExternalMemory_t * extMem_out, const cudaExternalMemoryHandleDesc * memHandleDesc); +# 4023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaExternalMemoryGetMappedBuffer(void ** devPtr, cudaExternalMemory_t extMem, const cudaExternalMemoryBufferDesc * bufferDesc); +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t * mipmap, cudaExternalMemory_t extMem, const cudaExternalMemoryMipmappedArrayDesc * mipmapDesc); +# 4107 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t * extSem_out, const cudaExternalSemaphoreHandleDesc * semHandleDesc); +# 4344 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t * extSemArray, const cudaExternalSemaphoreSignalParams * paramsArray, unsigned numExtSems, cudaStream_t stream = 0); +# 4420 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t * extSemArray, const cudaExternalSemaphoreWaitParams * paramsArray, unsigned numExtSems, cudaStream_t stream = 0); +# 4443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4511 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchKernel(const void * func, dim3 gridDim, dim3 blockDim, void ** args, size_t sharedMem, cudaStream_t stream); +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t * config, const void * func, void ** args); +# 4632 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchCooperativeKernel(const void * func, dim3 gridDim, dim3 blockDim, void ** args, size_t sharedMem, cudaStream_t stream); +# 4733 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaLaunchCooperativeKernelMultiDevice(cudaLaunchParams * launchParamsList, unsigned numDevices, unsigned flags = 0); +# 4783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncSetCacheConfig(const void * func, cudaFuncCache cacheConfig); +# 4818 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, const void * func); +# 4877 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncSetAttribute(const void * func, cudaFuncAttribute attr, int value); +# 4903 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetName(const char ** name, const void * func); +# 4926 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetParamInfo(const void * func, size_t paramIndex, size_t * paramOffset, size_t * paramSize); +# 4950 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaSetDoubleForDevice(double * d); +# 4974 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaSetDoubleForHost(double * d); +# 5040 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void * userData); +# 5114 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaFuncSetSharedMemConfig(const void * func, cudaSharedMemConfig config); +# 5171 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, const void * func, int blockSize, size_t dynamicSMemSize); +# 5201 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t * dynamicSmemSize, const void * func, int numBlocks, int blockSize); +# 5247 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, const void * func, int blockSize, size_t dynamicSMemSize, unsigned flags); +# 5283 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxPotentialClusterSize(int * clusterSize, const void * func, const cudaLaunchConfig_t * launchConfig); +# 5323 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveClusters(int * numClusters, const void * func, const cudaLaunchConfig_t * launchConfig); +# 5443 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocManaged(void ** devPtr, size_t size, unsigned flags = 1); +# 5476 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc(void ** devPtr, size_t size); +# 5513 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocHost(void ** ptr, size_t size); +# 5556 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocPitch(void ** devPtr, size_t * pitch, size_t width, size_t height); +# 5608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocArray(cudaArray_t * array, const cudaChannelFormatDesc * desc, size_t width, size_t height = 0, unsigned flags = 0); +# 5647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFree(void * devPtr); +# 5670 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFreeHost(void * ptr); +# 5693 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFreeArray(cudaArray_t array); +# 5716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5782 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostAlloc(void ** pHost, size_t size, unsigned flags); +# 5879 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostRegister(void * ptr, size_t size, unsigned flags); +# 5902 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostUnregister(void * ptr); +# 5947 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostGetDevicePointer(void ** pDevice, void * pHost, unsigned flags); +# 5969 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaHostGetFlags(unsigned * pFlags, void * pHost); +# 6008 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc3D(cudaPitchedPtr * pitchedDevPtr, cudaExtent extent); +# 6153 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc3DArray(cudaArray_t * array, const cudaChannelFormatDesc * desc, cudaExtent extent, unsigned flags = 0); +# 6298 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t * mipmappedArray, const cudaChannelFormatDesc * desc, cudaExtent extent, unsigned numLevels, unsigned flags = 0); +# 6331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t * levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned level); +# 6436 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3D(const cudaMemcpy3DParms * p); +# 6468 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DPeer(const cudaMemcpy3DPeerParms * p); +# 6586 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DAsync(const cudaMemcpy3DParms * p, cudaStream_t stream = 0); +# 6613 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DPeerAsync(const cudaMemcpy3DPeerParms * p, cudaStream_t stream = 0); +# 6647 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemGetInfo(size_t * free, size_t * total); +# 6673 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetInfo(cudaChannelFormatDesc * desc, cudaExtent * extent, unsigned * flags, cudaArray_t array); +# 6702 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetPlane(cudaArray_t * pPlaneArray, cudaArray_t hArray, unsigned planeIdx); +# 6725 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetMemoryRequirements(cudaArrayMemoryRequirements * memoryRequirements, cudaArray_t array, int device); +# 6749 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMipmappedArrayGetMemoryRequirements(cudaArrayMemoryRequirements * memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6777 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetSparseProperties(cudaArraySparseProperties * sparseProperties, cudaArray_t array); +# 6807 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMipmappedArrayGetSparseProperties(cudaArraySparseProperties * sparseProperties, cudaMipmappedArray_t mipmap); +# 6852 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy(void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 6887 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyPeer(void * dst, int dstDevice, const void * src, int srcDevice, size_t count); +# 6936 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2D(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind); +# 6986 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind); +# 7036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DFromArray(void * dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, cudaMemcpyKind kind); +# 7083 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyToSymbol(const void * symbol, const void * src, size_t count, size_t offset = 0, cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 7170 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyFromSymbol(void * dst, const void * symbol, size_t count, size_t offset = 0, cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 7227 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyAsync(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7262 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyPeerAsync(void * dst, int dstDevice, const void * src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 7334 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyBatchAsync(void ** dsts, void ** srcs, size_t * sizes, size_t count, cudaMemcpyAttributes * attrs, size_t * attrsIdxs, size_t numAttrs, size_t * failIdx, cudaStream_t stream); +# 7402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DBatchAsync(size_t numOps, cudaMemcpy3DBatchOp * opList, size_t * failIdx, unsigned long long flags, cudaStream_t stream); +# 7465 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DAsync(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7523 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7580 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy2DFromArrayAsync(void * dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyToSymbolAsync(const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7682 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyFromSymbolAsync(void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7711 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset(void * devPtr, int value, size_t count); +# 7745 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset2D(void * devPtr, size_t pitch, int value, size_t width, size_t height); +# 7791 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset3D(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent); +# 7827 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemsetAsync(void * devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7868 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset2DAsync(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7921 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemset3DAsync(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream = 0); +# 7949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetSymbolAddress(void ** devPtr, const void * symbol); +# 7976 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetSymbolSize(size_t * size, const void * symbol); +# 8048 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPrefetchAsync(const void * devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 8129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPrefetchAsync_v2(const void * devPtr, size_t count, cudaMemLocation location, unsigned flags, cudaStream_t stream = 0); +# 8243 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemAdvise(const void * devPtr, size_t count, cudaMemoryAdvise advice, int device); +# 8366 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemAdvise_v2(const void * devPtr, size_t count, cudaMemoryAdvise advice, cudaMemLocation location); +# 8448 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemRangeGetAttribute(void * data, size_t dataSize, cudaMemRangeAttribute attribute, const void * devPtr, size_t count); +# 8491 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemRangeGetAttributes(void ** data, size_t * dataSizes, cudaMemRangeAttribute * attributes, size_t numAttributes, const void * devPtr, size_t count); +# 8551 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t count, cudaMemcpyKind kind); +# 8593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyFromArray(void * dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind); +# 8636 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 8687 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8737 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaMemcpyFromArrayAsync(void * dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 8806 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocAsync(void ** devPtr, size_t size, cudaStream_t hStream); +# 8832 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaFreeAsync(void * devPtr, cudaStream_t hStream); +# 8857 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8901 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, cudaMemPoolAttr attr, void * value); +# 8949 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, cudaMemPoolAttr attr, void * value); +# 8964 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const cudaMemAccessDesc * descList, size_t count); +# 8977 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolGetAccess(cudaMemAccessFlags * flags, cudaMemPool_t memPool, cudaMemLocation * location); +# 9021 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolCreate(cudaMemPool_t * memPool, const cudaMemPoolProps * poolProps); +# 9043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 9079 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMallocFromPoolAsync(void ** ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 9104 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolExportToShareableHandle(void * shareableHandle, cudaMemPool_t memPool, cudaMemAllocationHandleType handleType, unsigned flags); +# 9131 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolImportFromShareableHandle(cudaMemPool_t * memPool, void * shareableHandle, cudaMemAllocationHandleType handleType, unsigned flags); +# 9154 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolExportPointer(cudaMemPoolPtrExportData * exportData, void * ptr); +# 9183 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolImportPointer(void ** ptr, cudaMemPool_t memPool, cudaMemPoolPtrExportData * exportData); +# 9336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaPointerGetAttributes(cudaPointerAttributes * attributes, const void * ptr); +# 9377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceCanAccessPeer(int * canAccessPeer, int device, int peerDevice); +# 9419 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned flags); +# 9441 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9505 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9540 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned flags); +# 9579 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t * resources, cudaStream_t stream = 0); +# 9614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t * resources, cudaStream_t stream = 0); +# 9646 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceGetMappedPointer(void ** devPtr, size_t * size, cudaGraphicsResource_t resource); +# 9684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t * array, cudaGraphicsResource_t resource, unsigned arrayIndex, unsigned mipLevel); +# 9713 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t * mipmappedArray, cudaGraphicsResource_t resource); +# 9748 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetChannelDesc(cudaChannelFormatDesc * desc, cudaArray_const_t array); +# 9778 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, cudaChannelFormatKind f); +# 10003 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaCreateTextureObject(cudaTextureObject_t * pTexObject, const cudaResourceDesc * pResDesc, const cudaTextureDesc * pTexDesc, const cudaResourceViewDesc * pResViewDesc); +# 10023 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 10043 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectResourceDesc(cudaResourceDesc * pResDesc, cudaTextureObject_t texObject); +# 10063 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectTextureDesc(cudaTextureDesc * pTexDesc, cudaTextureObject_t texObject); +# 10084 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectResourceViewDesc(cudaResourceViewDesc * pResViewDesc, cudaTextureObject_t texObject); +# 10129 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t * pSurfObject, const cudaResourceDesc * pResDesc); +# 10149 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 10168 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetSurfaceObjectResourceDesc(cudaResourceDesc * pResDesc, cudaSurfaceObject_t surfObject); +# 10202 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDriverGetVersion(int * driverVersion); +# 10231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaRuntimeGetVersion(int * runtimeVersion); +# 10278 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphCreate(cudaGraph_t * pGraph, unsigned flags); +# 10377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaKernelNodeParams * pNodeParams); +# 10410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, cudaKernelNodeParams * pNodeParams); +# 10437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const cudaKernelNodeParams * pNodeParams); +# 10457 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeCopyAttributes(cudaGraphNode_t hSrc, cudaGraphNode_t hDst); +# 10480 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeGetAttribute(cudaGraphNode_t hNode, cudaLaunchAttributeID attr, cudaLaunchAttributeValue * value_out); +# 10504 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeSetAttribute(cudaGraphNode_t hNode, cudaLaunchAttributeID attr, const cudaLaunchAttributeValue * value); +# 10555 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaMemcpy3DParms * pCopyParams); +# 10614 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemcpyNodeToSymbol(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 10683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemcpyNodeFromSymbol(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 10751 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemcpyNode1D(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 10783 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, cudaMemcpy3DParms * pNodeParams); +# 10810 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const cudaMemcpy3DParms * pNodeParams); +# 10849 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol(cudaGraphNode_t node, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 10895 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol(cudaGraphNode_t node, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 10941 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParams1D(cudaGraphNode_t node, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 10989 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaMemsetParams * pMemsetParams); +# 11012 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, cudaMemsetParams * pNodeParams); +# 11036 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const cudaMemsetParams * pNodeParams); +# 11078 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddHostNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaHostNodeParams * pNodeParams); +# 11101 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, cudaHostNodeParams * pNodeParams); +# 11125 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const cudaHostNodeParams * pNodeParams); +# 11166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 11193 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t * pGraph); +# 11231 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies); +# 11275 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaEvent_t event); +# 11302 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t * event_out); +# 11330 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11377 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaEvent_t event); +# 11404 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t * event_out); +# 11432 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11482 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 11515 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, cudaExternalSemaphoreSignalNodeParams * params_out); +# 11543 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 11593 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 11626 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, cudaExternalSemaphoreWaitNodeParams * params_out); +# 11654 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 11732 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaMemAllocNodeParams * nodeParams); +# 11759 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, cudaMemAllocNodeParams * params_out); +# 11820 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dptr); +# 11844 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void * dptr_out); +# 11872 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGraphMemTrim(int device); +# 11909 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetGraphMemAttribute(int device, cudaGraphMemAttributeType attr, void * value); +# 11943 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetGraphMemAttribute(int device, cudaGraphMemAttributeType attr, void * value); +# 11971 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphClone(cudaGraph_t * pGraphClone, cudaGraph_t originalGraph); +# 11999 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t * pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 12030 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, cudaGraphNodeType * pType); +# 12061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t * nodes, size_t * numNodes); +# 12092 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t * pRootNodes, size_t * pNumRootNodes); +# 12126 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t * from, cudaGraphNode_t * to, size_t * numEdges); +# 12166 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetEdges_v2(cudaGraph_t graph, cudaGraphNode_t * from, cudaGraphNode_t * to, cudaGraphEdgeData * edgeData, size_t * numEdges); +# 12197 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t * pDependencies, size_t * pNumDependencies); +# 12234 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t * pDependencies, cudaGraphEdgeData * edgeData, size_t * pNumDependencies); +# 12266 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t * pDependentNodes, size_t * pNumDependentNodes); +# 12304 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t * pDependentNodes, cudaGraphEdgeData * edgeData, size_t * pNumDependentNodes); +# 12335 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, size_t numDependencies); +# 12367 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, const cudaGraphEdgeData * edgeData, size_t numDependencies); +# 12398 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, size_t numDependencies); +# 12433 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphRemoveDependencies_v2(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, const cudaGraphEdgeData * edgeData, size_t numDependencies); +# 12463 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12534 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiate(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12607 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12714 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams * instantiateParams); +# 12739 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long * flags); +# 12799 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaKernelNodeParams * pNodeParams); +# 12850 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaMemcpy3DParms * pNodeParams); +# 12905 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 12968 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 13029 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParams1D(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 13088 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaMemsetParams * pNodeParams); +# 13128 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaHostNodeParams * pNodeParams); +# 13175 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 13220 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13265 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 13313 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 13361 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 13401 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned isEnabled); +# 13435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned * isEnabled); +# 13529 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo * resultInfo); +# 13554 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13585 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13608 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13629 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13648 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char * path, unsigned flags); +# 13684 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectCreate(cudaUserObject_t * object_out, void * ptr, cudaHostFn_t destroy, unsigned initialRefcount, unsigned flags); +# 13708 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned count = 1); +# 13736 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned count = 1); +# 13764 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned count = 1, unsigned flags = 0); +# 13789 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned count = 1); +# 13831 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaGraphNodeParams * nodeParams); +# 13875 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddNode_v2(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, const cudaGraphEdgeData * dependencyData, size_t numDependencies, cudaGraphNodeParams * nodeParams); +# 13904 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, cudaGraphNodeParams * nodeParams); +# 13953 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, cudaGraphNodeParams * nodeParams); +# 13980 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGraphConditionalHandleCreate(cudaGraphConditionalHandle * pHandle_out, cudaGraph_t graph, unsigned defaultLaunchValue = 0, unsigned flags = 0); +# 14061 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDriverEntryPoint(const char * symbol, void ** funcPtr, unsigned long long flags, cudaDriverEntryPointQueryResult * driverStatus = 0); +# 14137 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetDriverEntryPointByVersion(const char * symbol, void ** funcPtr, unsigned cudaVersion, unsigned long long flags, cudaDriverEntryPointQueryResult * driverStatus = 0); +# 14212 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryLoadData(cudaLibrary_t * library, const void * code, cudaJitOption * jitOptions, void ** jitOptionsValues, unsigned numJitOptions, cudaLibraryOption * libraryOptions, void ** libraryOptionValues, unsigned numLibraryOptions); +# 14272 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryLoadFromFile(cudaLibrary_t * library, const char * fileName, cudaJitOption * jitOptions, void ** jitOptionsValues, unsigned numJitOptions, cudaLibraryOption * libraryOptions, void ** libraryOptionValues, unsigned numLibraryOptions); +# 14293 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryUnload(cudaLibrary_t library); +# 14318 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetKernel(cudaKernel_t * pKernel, cudaLibrary_t library, const char * name); +# 14352 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetGlobal(void ** dptr, size_t * bytes, cudaLibrary_t library, const char * name); +# 14385 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetManaged(void ** dptr, size_t * bytes, cudaLibrary_t library, const char * name); +# 14412 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetUnifiedFunction(void ** fptr, cudaLibrary_t library, const char * symbol); +# 14434 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryGetKernelCount(unsigned * count, cudaLibrary_t lib); +# 14456 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaLibraryEnumerateKernels(cudaKernel_t * kernels, unsigned numKernels, cudaLibrary_t lib); +# 14525 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaKernelSetAttributeForDevice(cudaKernel_t kernel, cudaFuncAttribute attr, int value, int device); +# 14530 +extern cudaError_t cudaGetExportTable(const void ** ppExportTable, const cudaUUID_t * pExportTableId); +# 14716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetFuncBySymbol(cudaFunction_t * functionPtr, const void * symbolPtr); +# 14740 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +extern cudaError_t cudaGetKernel(cudaKernel_t * kernelPtr, const void * entryFuncAddr); +# 14918 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime_api.h" +} +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template< class T> inline cudaChannelFormatDesc cudaCreateChannelDesc() +# 121 +{ +# 122 +return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +# 123 +} +# 125 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf() +# 126 +{ +# 127 +int e = (((int)sizeof(unsigned short)) * 8); +# 129 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 130 +} +# 132 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf1() +# 133 +{ +# 134 +int e = (((int)sizeof(unsigned short)) * 8); +# 136 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 137 +} +# 139 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf2() +# 140 +{ +# 141 +int e = (((int)sizeof(unsigned short)) * 8); +# 143 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +# 144 +} +# 146 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf4() +# 147 +{ +# 148 +int e = (((int)sizeof(unsigned short)) * 8); +# 150 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +# 151 +} +# 153 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char> () +# 154 +{ +# 155 +int e = (((int)sizeof(char)) * 8); +# 160 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 162 +} +# 164 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< signed char> () +# 165 +{ +# 166 +int e = (((int)sizeof(signed char)) * 8); +# 168 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 169 +} +# 171 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned char> () +# 172 +{ +# 173 +int e = (((int)sizeof(unsigned char)) * 8); +# 175 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 176 +} +# 178 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char1> () +# 179 +{ +# 180 +int e = (((int)sizeof(signed char)) * 8); +# 182 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 183 +} +# 185 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar1> () +# 186 +{ +# 187 +int e = (((int)sizeof(unsigned char)) * 8); +# 189 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 190 +} +# 192 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char2> () +# 193 +{ +# 194 +int e = (((int)sizeof(signed char)) * 8); +# 196 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 197 +} +# 199 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar2> () +# 200 +{ +# 201 +int e = (((int)sizeof(unsigned char)) * 8); +# 203 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 204 +} +# 206 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char4> () +# 207 +{ +# 208 +int e = (((int)sizeof(signed char)) * 8); +# 210 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 211 +} +# 213 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar4> () +# 214 +{ +# 215 +int e = (((int)sizeof(unsigned char)) * 8); +# 217 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 218 +} +# 220 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short> () +# 221 +{ +# 222 +int e = (((int)sizeof(short)) * 8); +# 224 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 225 +} +# 227 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned short> () +# 228 +{ +# 229 +int e = (((int)sizeof(unsigned short)) * 8); +# 231 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 232 +} +# 234 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short1> () +# 235 +{ +# 236 +int e = (((int)sizeof(short)) * 8); +# 238 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 239 +} +# 241 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort1> () +# 242 +{ +# 243 +int e = (((int)sizeof(unsigned short)) * 8); +# 245 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 246 +} +# 248 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short2> () +# 249 +{ +# 250 +int e = (((int)sizeof(short)) * 8); +# 252 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 253 +} +# 255 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort2> () +# 256 +{ +# 257 +int e = (((int)sizeof(unsigned short)) * 8); +# 259 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 260 +} +# 262 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short4> () +# 263 +{ +# 264 +int e = (((int)sizeof(short)) * 8); +# 266 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 267 +} +# 269 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort4> () +# 270 +{ +# 271 +int e = (((int)sizeof(unsigned short)) * 8); +# 273 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 274 +} +# 276 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int> () +# 277 +{ +# 278 +int e = (((int)sizeof(int)) * 8); +# 280 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 281 +} +# 283 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned> () +# 284 +{ +# 285 +int e = (((int)sizeof(unsigned)) * 8); +# 287 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 288 +} +# 290 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int1> () +# 291 +{ +# 292 +int e = (((int)sizeof(int)) * 8); +# 294 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 295 +} +# 297 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint1> () +# 298 +{ +# 299 +int e = (((int)sizeof(unsigned)) * 8); +# 301 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 302 +} +# 304 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int2> () +# 305 +{ +# 306 +int e = (((int)sizeof(int)) * 8); +# 308 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 309 +} +# 311 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint2> () +# 312 +{ +# 313 +int e = (((int)sizeof(unsigned)) * 8); +# 315 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 316 +} +# 318 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int4> () +# 319 +{ +# 320 +int e = (((int)sizeof(int)) * 8); +# 322 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 323 +} +# 325 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint4> () +# 326 +{ +# 327 +int e = (((int)sizeof(unsigned)) * 8); +# 329 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 330 +} +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/channel_descriptor.h" +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float> () +# 393 +{ +# 394 +int e = (((int)sizeof(float)) * 8); +# 396 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 397 +} +# 399 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float1> () +# 400 +{ +# 401 +int e = (((int)sizeof(float)) * 8); +# 403 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 404 +} +# 406 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float2> () +# 407 +{ +# 408 +int e = (((int)sizeof(float)) * 8); +# 410 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +# 411 +} +# 413 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float4> () +# 414 +{ +# 415 +int e = (((int)sizeof(float)) * 8); +# 417 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +# 418 +} +# 420 +static inline cudaChannelFormatDesc cudaCreateChannelDescNV12() +# 421 +{ +# 422 +int e = (((int)sizeof(char)) * 8); +# 424 +return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +# 425 +} +# 427 +template< cudaChannelFormatKind > inline cudaChannelFormatDesc cudaCreateChannelDesc() +# 428 +{ +# 429 +return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +# 430 +} +# 433 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X1> () +# 434 +{ +# 435 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +# 436 +} +# 438 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X2> () +# 439 +{ +# 440 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +# 441 +} +# 443 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X4> () +# 444 +{ +# 445 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +# 446 +} +# 449 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X1> () +# 450 +{ +# 451 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +# 452 +} +# 454 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X2> () +# 455 +{ +# 456 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +# 457 +} +# 459 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X4> () +# 460 +{ +# 461 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +# 462 +} +# 465 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X1> () +# 466 +{ +# 467 +return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +# 468 +} +# 470 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X2> () +# 471 +{ +# 472 +return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +# 473 +} +# 475 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X4> () +# 476 +{ +# 477 +return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +# 478 +} +# 481 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X1> () +# 482 +{ +# 483 +return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +# 484 +} +# 486 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X2> () +# 487 +{ +# 488 +return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +# 489 +} +# 491 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X4> () +# 492 +{ +# 493 +return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +# 494 +} +# 497 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindNV12> () +# 498 +{ +# 499 +return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +# 500 +} +# 503 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized1010102> () +# 504 +{ +# 505 +return cudaCreateChannelDesc(10, 10, 10, 2, cudaChannelFormatKindUnsignedNormalized1010102); +# 506 +} +# 509 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed1> () +# 510 +{ +# 511 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +# 512 +} +# 515 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed1SRGB> () +# 516 +{ +# 517 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +# 518 +} +# 521 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed2> () +# 522 +{ +# 523 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +# 524 +} +# 527 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed2SRGB> () +# 528 +{ +# 529 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +# 530 +} +# 533 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed3> () +# 534 +{ +# 535 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +# 536 +} +# 539 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed3SRGB> () +# 540 +{ +# 541 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +# 542 +} +# 545 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed4> () +# 546 +{ +# 547 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +# 548 +} +# 551 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed4> () +# 552 +{ +# 553 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +# 554 +} +# 557 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed5> () +# 558 +{ +# 559 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +# 560 +} +# 563 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed5> () +# 564 +{ +# 565 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +# 566 +} +# 569 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed6H> () +# 570 +{ +# 571 +return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +# 572 +} +# 575 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed6H> () +# 576 +{ +# 577 +return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +# 578 +} +# 581 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed7> () +# 582 +{ +# 583 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +# 584 +} +# 587 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed7SRGB> () +# 588 +{ +# 589 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +# 590 +} +# 79 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static inline cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +# 80 +{ +# 81 +cudaPitchedPtr s; +# 83 +(s.ptr) = d; +# 84 +(s.pitch) = p; +# 85 +(s.xsize) = xsz; +# 86 +(s.ysize) = ysz; +# 88 +return s; +# 89 +} +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static inline cudaPos make_cudaPos(size_t x, size_t y, size_t z) +# 107 +{ +# 108 +cudaPos p; +# 110 +(p.x) = x; +# 111 +(p.y) = y; +# 112 +(p.z) = z; +# 114 +return p; +# 115 +} +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/driver_functions.h" +static inline cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +# 133 +{ +# 134 +cudaExtent e; +# 136 +(e.width) = w; +# 137 +(e.height) = h; +# 138 +(e.depth) = d; +# 140 +return e; +# 141 +} +# 77 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.h" +static inline char1 make_char1(signed char x); +# 79 +static inline uchar1 make_uchar1(unsigned char x); +# 81 +static inline char2 make_char2(signed char x, signed char y); +# 83 +static inline uchar2 make_uchar2(unsigned char x, unsigned char y); +# 85 +static inline char3 make_char3(signed char x, signed char y, signed char z); +# 87 +static inline uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); +# 89 +static inline char4 make_char4(signed char x, signed char y, signed char z, signed char w); +# 91 +static inline uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); +# 93 +static inline short1 make_short1(short x); +# 95 +static inline ushort1 make_ushort1(unsigned short x); +# 97 +static inline short2 make_short2(short x, short y); +# 99 +static inline ushort2 make_ushort2(unsigned short x, unsigned short y); +# 101 +static inline short3 make_short3(short x, short y, short z); +# 103 +static inline ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); +# 105 +static inline short4 make_short4(short x, short y, short z, short w); +# 107 +static inline ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); +# 109 +static inline int1 make_int1(int x); +# 111 +static inline uint1 make_uint1(unsigned x); +# 113 +static inline int2 make_int2(int x, int y); +# 115 +static inline uint2 make_uint2(unsigned x, unsigned y); +# 117 +static inline int3 make_int3(int x, int y, int z); +# 119 +static inline uint3 make_uint3(unsigned x, unsigned y, unsigned z); +# 121 +static inline int4 make_int4(int x, int y, int z, int w); +# 123 +static inline uint4 make_uint4(unsigned x, unsigned y, unsigned z, unsigned w); +# 125 +static inline long1 make_long1(long x); +# 127 +static inline ulong1 make_ulong1(unsigned long x); +# 129 +static inline long2 make_long2(long x, long y); +# 131 +static inline ulong2 make_ulong2(unsigned long x, unsigned long y); +# 133 +static inline long3 make_long3(long x, long y, long z); +# 135 +static inline ulong3 make_ulong3(unsigned long x, unsigned long y, unsigned long z); +# 137 +static inline long4 make_long4(long x, long y, long z, long w); +# 139 +static inline ulong4 make_ulong4(unsigned long x, unsigned long y, unsigned long z, unsigned long w); +# 141 +static inline float1 make_float1(float x); +# 143 +static inline float2 make_float2(float x, float y); +# 145 +static inline float3 make_float3(float x, float y, float z); +# 147 +static inline float4 make_float4(float x, float y, float z, float w); +# 149 +static inline longlong1 make_longlong1(long long x); +# 151 +static inline ulonglong1 make_ulonglong1(unsigned long long x); +# 153 +static inline longlong2 make_longlong2(long long x, long long y); +# 155 +static inline ulonglong2 make_ulonglong2(unsigned long long x, unsigned long long y); +# 157 +static inline longlong3 make_longlong3(long long x, long long y, long long z); +# 159 +static inline ulonglong3 make_ulonglong3(unsigned long long x, unsigned long long y, unsigned long long z); +# 161 +static inline longlong4 make_longlong4(long long x, long long y, long long z, long long w); +# 163 +static inline ulonglong4 make_ulonglong4(unsigned long long x, unsigned long long y, unsigned long long z, unsigned long long w); +# 165 +static inline double1 make_double1(double x); +# 167 +static inline double2 make_double2(double x, double y); +# 169 +static inline double3 make_double3(double x, double y, double z); +# 171 +static inline double4 make_double4(double x, double y, double z, double w); +# 73 "/opt/cuda/bin/../targets/x86_64-linux/include/vector_functions.hpp" +static inline char1 make_char1(signed char x) +# 74 +{ +# 75 +char1 t; (t.x) = x; return t; +# 76 +} +# 78 +static inline uchar1 make_uchar1(unsigned char x) +# 79 +{ +# 80 +uchar1 t; (t.x) = x; return t; +# 81 +} +# 83 +static inline char2 make_char2(signed char x, signed char y) +# 84 +{ +# 85 +char2 t; (t.x) = x; (t.y) = y; return t; +# 86 +} +# 88 +static inline uchar2 make_uchar2(unsigned char x, unsigned char y) +# 89 +{ +# 90 +uchar2 t; (t.x) = x; (t.y) = y; return t; +# 91 +} +# 93 +static inline char3 make_char3(signed char x, signed char y, signed char z) +# 94 +{ +# 95 +char3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 96 +} +# 98 +static inline uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +# 99 +{ +# 100 +uchar3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 101 +} +# 103 +static inline char4 make_char4(signed char x, signed char y, signed char z, signed char w) +# 104 +{ +# 105 +char4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 106 +} +# 108 +static inline uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +# 109 +{ +# 110 +uchar4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 111 +} +# 113 +static inline short1 make_short1(short x) +# 114 +{ +# 115 +short1 t; (t.x) = x; return t; +# 116 +} +# 118 +static inline ushort1 make_ushort1(unsigned short x) +# 119 +{ +# 120 +ushort1 t; (t.x) = x; return t; +# 121 +} +# 123 +static inline short2 make_short2(short x, short y) +# 124 +{ +# 125 +short2 t; (t.x) = x; (t.y) = y; return t; +# 126 +} +# 128 +static inline ushort2 make_ushort2(unsigned short x, unsigned short y) +# 129 +{ +# 130 +ushort2 t; (t.x) = x; (t.y) = y; return t; +# 131 +} +# 133 +static inline short3 make_short3(short x, short y, short z) +# 134 +{ +# 135 +short3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 136 +} +# 138 +static inline ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +# 139 +{ +# 140 +ushort3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 141 +} +# 143 +static inline short4 make_short4(short x, short y, short z, short w) +# 144 +{ +# 145 +short4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 146 +} +# 148 +static inline ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +# 149 +{ +# 150 +ushort4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 151 +} +# 153 +static inline int1 make_int1(int x) +# 154 +{ +# 155 +int1 t; (t.x) = x; return t; +# 156 +} +# 158 +static inline uint1 make_uint1(unsigned x) +# 159 +{ +# 160 +uint1 t; (t.x) = x; return t; +# 161 +} +# 163 +static inline int2 make_int2(int x, int y) +# 164 +{ +# 165 +int2 t; (t.x) = x; (t.y) = y; return t; +# 166 +} +# 168 +static inline uint2 make_uint2(unsigned x, unsigned y) +# 169 +{ +# 170 +uint2 t; (t.x) = x; (t.y) = y; return t; +# 171 +} +# 173 +static inline int3 make_int3(int x, int y, int z) +# 174 +{ +# 175 +int3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 176 +} +# 178 +static inline uint3 make_uint3(unsigned x, unsigned y, unsigned z) +# 179 +{ +# 180 +uint3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 181 +} +# 183 +static inline int4 make_int4(int x, int y, int z, int w) +# 184 +{ +# 185 +int4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 186 +} +# 188 +static inline uint4 make_uint4(unsigned x, unsigned y, unsigned z, unsigned w) +# 189 +{ +# 190 +uint4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 191 +} +# 193 +static inline long1 make_long1(long x) +# 194 +{ +# 195 +long1 t; (t.x) = x; return t; +# 196 +} +# 198 +static inline ulong1 make_ulong1(unsigned long x) +# 199 +{ +# 200 +ulong1 t; (t.x) = x; return t; +# 201 +} +# 203 +static inline long2 make_long2(long x, long y) +# 204 +{ +# 205 +long2 t; (t.x) = x; (t.y) = y; return t; +# 206 +} +# 208 +static inline ulong2 make_ulong2(unsigned long x, unsigned long y) +# 209 +{ +# 210 +ulong2 t; (t.x) = x; (t.y) = y; return t; +# 211 +} +# 213 +static inline long3 make_long3(long x, long y, long z) +# 214 +{ +# 215 +long3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 216 +} +# 218 +static inline ulong3 make_ulong3(unsigned long x, unsigned long y, unsigned long z) +# 219 +{ +# 220 +ulong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 221 +} +# 223 +static inline long4 make_long4(long x, long y, long z, long w) +# 224 +{ +# 225 +long4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 226 +} +# 228 +static inline ulong4 make_ulong4(unsigned long x, unsigned long y, unsigned long z, unsigned long w) +# 229 +{ +# 230 +ulong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 231 +} +# 233 +static inline float1 make_float1(float x) +# 234 +{ +# 235 +float1 t; (t.x) = x; return t; +# 236 +} +# 238 +static inline float2 make_float2(float x, float y) +# 239 +{ +# 240 +float2 t; (t.x) = x; (t.y) = y; return t; +# 241 +} +# 243 +static inline float3 make_float3(float x, float y, float z) +# 244 +{ +# 245 +float3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 246 +} +# 248 +static inline float4 make_float4(float x, float y, float z, float w) +# 249 +{ +# 250 +float4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 251 +} +# 253 +static inline longlong1 make_longlong1(long long x) +# 254 +{ +# 255 +longlong1 t; (t.x) = x; return t; +# 256 +} +# 258 +static inline ulonglong1 make_ulonglong1(unsigned long long x) +# 259 +{ +# 260 +ulonglong1 t; (t.x) = x; return t; +# 261 +} +# 263 +static inline longlong2 make_longlong2(long long x, long long y) +# 264 +{ +# 265 +longlong2 t; (t.x) = x; (t.y) = y; return t; +# 266 +} +# 268 +static inline ulonglong2 make_ulonglong2(unsigned long long x, unsigned long long y) +# 269 +{ +# 270 +ulonglong2 t; (t.x) = x; (t.y) = y; return t; +# 271 +} +# 273 +static inline longlong3 make_longlong3(long long x, long long y, long long z) +# 274 +{ +# 275 +longlong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 276 +} +# 278 +static inline ulonglong3 make_ulonglong3(unsigned long long x, unsigned long long y, unsigned long long z) +# 279 +{ +# 280 +ulonglong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 281 +} +# 283 +static inline longlong4 make_longlong4(long long x, long long y, long long z, long long w) +# 284 +{ +# 285 +longlong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 286 +} +# 288 +static inline ulonglong4 make_ulonglong4(unsigned long long x, unsigned long long y, unsigned long long z, unsigned long long w) +# 289 +{ +# 290 +ulonglong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 291 +} +# 293 +static inline double1 make_double1(double x) +# 294 +{ +# 295 +double1 t; (t.x) = x; return t; +# 296 +} +# 298 +static inline double2 make_double2(double x, double y) +# 299 +{ +# 300 +double2 t; (t.x) = x; (t.y) = y; return t; +# 301 +} +# 303 +static inline double3 make_double3(double x, double y, double z) +# 304 +{ +# 305 +double3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 306 +} +# 308 +static inline double4 make_double4(double x, double y, double z, double w) +# 309 +{ +# 310 +double4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 311 +} +# 28 "/usr/include/string.h" 3 +extern "C" { +# 43 "/usr/include/string.h" 3 +extern void *memcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) noexcept(true) +# 44 + __attribute((__nonnull__(1, 2))); +# 47 +extern void *memmove(void * __dest, const void * __src, size_t __n) noexcept(true) +# 48 + __attribute((__nonnull__(1, 2))); +# 54 +extern void *memccpy(void *__restrict__ __dest, const void *__restrict__ __src, int __c, size_t __n) noexcept(true) +# 56 + __attribute((__nonnull__(1, 2))) __attribute((__access__(__write_only__ , 1 , 4 ))); +# 61 +extern void *memset(void * __s, int __c, size_t __n) noexcept(true) __attribute((__nonnull__(1))); +# 64 +extern int memcmp(const void * __s1, const void * __s2, size_t __n) noexcept(true) +# 65 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 80 "/usr/include/string.h" 3 +extern int __memcmpeq(const void * __s1, const void * __s2, size_t __n) noexcept(true) +# 81 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 85 +extern "C++" { +# 87 +extern void *memchr(void * __s, int __c, size_t __n) noexcept(true) __asm__("memchr") +# 88 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 89 +extern const void *memchr(const void * __s, int __c, size_t __n) noexcept(true) __asm__("memchr") +# 90 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 105 "/usr/include/string.h" 3 +} +# 115 "/usr/include/string.h" 3 +extern "C++" void *rawmemchr(void * __s, int __c) noexcept(true) __asm__("rawmemchr") +# 116 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 117 +extern "C++" const void *rawmemchr(const void * __s, int __c) noexcept(true) __asm__("rawmemchr") +# 118 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 126 +extern "C++" void *memrchr(void * __s, int __c, size_t __n) noexcept(true) __asm__("memrchr") +# 127 + __attribute((__pure__)) __attribute((__nonnull__(1))) +# 128 + __attribute((__access__(__read_only__ , 1 , 3 ))); +# 129 +extern "C++" const void *memrchr(const void * __s, int __c, size_t __n) noexcept(true) __asm__("memrchr") +# 130 + __attribute((__pure__)) __attribute((__nonnull__(1))) +# 131 + __attribute((__access__(__read_only__ , 1 , 3 ))); +# 141 "/usr/include/string.h" 3 +extern char *strcpy(char *__restrict__ __dest, const char *__restrict__ __src) noexcept(true) +# 142 + __attribute((__nonnull__(1, 2))); +# 144 +extern char *strncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 146 + __attribute((__nonnull__(1, 2))); +# 149 +extern char *strcat(char *__restrict__ __dest, const char *__restrict__ __src) noexcept(true) +# 150 + __attribute((__nonnull__(1, 2))); +# 152 +extern char *strncat(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 153 + __attribute((__nonnull__(1, 2))); +# 156 +extern int strcmp(const char * __s1, const char * __s2) noexcept(true) +# 157 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 159 +extern int strncmp(const char * __s1, const char * __s2, size_t __n) noexcept(true) +# 160 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 163 +extern int strcoll(const char * __s1, const char * __s2) noexcept(true) +# 164 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 166 +extern size_t strxfrm(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 168 + __attribute((__nonnull__(2))) __attribute((__access__(__write_only__ , 1 , 3 ))); +# 175 +extern int strcoll_l(const char * __s1, const char * __s2, locale_t __l) noexcept(true) +# 176 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 3))); +# 179 +extern size_t strxfrm_l(char * __dest, const char * __src, size_t __n, locale_t __l) noexcept(true) +# 180 + __attribute((__nonnull__(2, 4))) +# 181 + __attribute((__access__(__write_only__ , 1 , 3 ))); +# 187 +extern char *strdup(const char * __s) noexcept(true) +# 188 + __attribute((__malloc__)) __attribute((__nonnull__(1))); +# 195 +extern char *strndup(const char * __string, size_t __n) noexcept(true) +# 196 + __attribute((__malloc__)) __attribute((__nonnull__(1))); +# 224 "/usr/include/string.h" 3 +extern "C++" { +# 226 +extern char *strchr(char * __s, int __c) noexcept(true) __asm__("strchr") +# 227 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 228 +extern const char *strchr(const char * __s, int __c) noexcept(true) __asm__("strchr") +# 229 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 244 "/usr/include/string.h" 3 +} +# 251 +extern "C++" { +# 253 +extern char *strrchr(char * __s, int __c) noexcept(true) __asm__("strrchr") +# 254 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 255 +extern const char *strrchr(const char * __s, int __c) noexcept(true) __asm__("strrchr") +# 256 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 271 "/usr/include/string.h" 3 +} +# 281 "/usr/include/string.h" 3 +extern "C++" char *strchrnul(char * __s, int __c) noexcept(true) __asm__("strchrnul") +# 282 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 283 +extern "C++" const char *strchrnul(const char * __s, int __c) noexcept(true) __asm__("strchrnul") +# 284 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 293 "/usr/include/string.h" 3 +extern size_t strcspn(const char * __s, const char * __reject) noexcept(true) +# 294 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 297 +extern size_t strspn(const char * __s, const char * __accept) noexcept(true) +# 298 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 301 +extern "C++" { +# 303 +extern char *strpbrk(char * __s, const char * __accept) noexcept(true) __asm__("strpbrk") +# 304 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 305 +extern const char *strpbrk(const char * __s, const char * __accept) noexcept(true) __asm__("strpbrk") +# 306 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 321 "/usr/include/string.h" 3 +} +# 328 +extern "C++" { +# 330 +extern char *strstr(char * __haystack, const char * __needle) noexcept(true) __asm__("strstr") +# 331 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 332 +extern const char *strstr(const char * __haystack, const char * __needle) noexcept(true) __asm__("strstr") +# 333 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 348 "/usr/include/string.h" 3 +} +# 356 +extern char *strtok(char *__restrict__ __s, const char *__restrict__ __delim) noexcept(true) +# 357 + __attribute((__nonnull__(2))); +# 361 +extern char *__strtok_r(char *__restrict__ __s, const char *__restrict__ __delim, char **__restrict__ __save_ptr) noexcept(true) +# 364 + __attribute((__nonnull__(2, 3))); +# 366 +extern char *strtok_r(char *__restrict__ __s, const char *__restrict__ __delim, char **__restrict__ __save_ptr) noexcept(true) +# 368 + __attribute((__nonnull__(2, 3))); +# 374 +extern "C++" char *strcasestr(char * __haystack, const char * __needle) noexcept(true) __asm__("strcasestr") +# 375 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 376 +extern "C++" const char *strcasestr(const char * __haystack, const char * __needle) noexcept(true) __asm__("strcasestr") +# 378 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 389 "/usr/include/string.h" 3 +extern void *memmem(const void * __haystack, size_t __haystacklen, const void * __needle, size_t __needlelen) noexcept(true) +# 391 + __attribute((__pure__)) __attribute((__nonnull__(1, 3))) +# 392 + __attribute((__access__(__read_only__ , 1 , 2 ))) +# 393 + __attribute((__access__(__read_only__ , 3 , 4 ))); +# 397 +extern void *__mempcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) noexcept(true) +# 399 + __attribute((__nonnull__(1, 2))); +# 400 +extern void *mempcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) noexcept(true) +# 402 + __attribute((__nonnull__(1, 2))); +# 407 +extern size_t strlen(const char * __s) noexcept(true) +# 408 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 413 +extern size_t strnlen(const char * __string, size_t __maxlen) noexcept(true) +# 414 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 419 +extern char *strerror(int __errnum) noexcept(true); +# 444 "/usr/include/string.h" 3 +extern char *strerror_r(int __errnum, char * __buf, size_t __buflen) noexcept(true) +# 445 + __attribute((__nonnull__(2))) __attribute((__access__(__write_only__ , 2 , 3 ))); +# 450 +extern const char *strerrordesc_np(int __err) noexcept(true); +# 452 +extern const char *strerrorname_np(int __err) noexcept(true); +# 458 +extern char *strerror_l(int __errnum, locale_t __l) noexcept(true); +# 30 "/usr/include/strings.h" 3 +extern "C" { +# 34 +extern int bcmp(const void * __s1, const void * __s2, size_t __n) noexcept(true) +# 35 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 38 +extern void bcopy(const void * __src, void * __dest, size_t __n) noexcept(true) +# 39 + __attribute((__nonnull__(1, 2))); +# 42 +extern void bzero(void * __s, size_t __n) noexcept(true) __attribute((__nonnull__(1))); +# 46 +extern "C++" { +# 48 +extern char *index(char * __s, int __c) noexcept(true) __asm__("index") +# 49 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 50 +extern const char *index(const char * __s, int __c) noexcept(true) __asm__("index") +# 51 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 66 "/usr/include/strings.h" 3 +} +# 74 +extern "C++" { +# 76 +extern char *rindex(char * __s, int __c) noexcept(true) __asm__("rindex") +# 77 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 78 +extern const char *rindex(const char * __s, int __c) noexcept(true) __asm__("rindex") +# 79 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 94 "/usr/include/strings.h" 3 +} +# 104 "/usr/include/strings.h" 3 +extern int ffs(int __i) noexcept(true) __attribute((const)); +# 110 +extern int ffsl(long __l) noexcept(true) __attribute((const)); +# 111 +__extension__ extern int ffsll(long long __ll) noexcept(true) +# 112 + __attribute((const)); +# 116 +extern int strcasecmp(const char * __s1, const char * __s2) noexcept(true) +# 117 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 120 +extern int strncasecmp(const char * __s1, const char * __s2, size_t __n) noexcept(true) +# 121 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 128 +extern int strcasecmp_l(const char * __s1, const char * __s2, locale_t __loc) noexcept(true) +# 129 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 3))); +# 133 +extern int strncasecmp_l(const char * __s1, const char * __s2, size_t __n, locale_t __loc) noexcept(true) +# 135 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 4))); +# 138 +} +# 466 "/usr/include/string.h" 3 +extern void explicit_bzero(void * __s, size_t __n) noexcept(true) __attribute((__nonnull__(1))) +# 467 + __attribute((__access__(__write_only__ , 1 , 2 ))); +# 471 +extern char *strsep(char **__restrict__ __stringp, const char *__restrict__ __delim) noexcept(true) +# 473 + __attribute((__nonnull__(1, 2))); +# 478 +extern char *strsignal(int __sig) noexcept(true); +# 482 +extern const char *sigabbrev_np(int __sig) noexcept(true); +# 485 +extern const char *sigdescr_np(int __sig) noexcept(true); +# 489 +extern char *__stpcpy(char *__restrict__ __dest, const char *__restrict__ __src) noexcept(true) +# 490 + __attribute((__nonnull__(1, 2))); +# 491 +extern char *stpcpy(char *__restrict__ __dest, const char *__restrict__ __src) noexcept(true) +# 492 + __attribute((__nonnull__(1, 2))); +# 496 +extern char *__stpncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 498 + __attribute((__nonnull__(1, 2))); +# 499 +extern char *stpncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 501 + __attribute((__nonnull__(1, 2))); +# 506 +extern size_t strlcpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 508 + __attribute((__nonnull__(1, 2))) __attribute((__access__(__write_only__ , 1 , 3 ))); +# 512 +extern size_t strlcat(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) noexcept(true) +# 514 + __attribute((__nonnull__(1, 2))) __attribute((__access__(__read_write__ , 1 , 3 ))); +# 519 +extern int strverscmp(const char * __s1, const char * __s2) noexcept(true) +# 520 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 523 +extern char *strfry(char * __string) noexcept(true) __attribute((__nonnull__(1))); +# 526 +extern void *memfrob(void * __s, size_t __n) noexcept(true) __attribute((__nonnull__(1))) +# 527 + __attribute((__access__(__read_write__ , 1 , 2 ))); +# 535 +extern "C++" char *basename(char * __filename) noexcept(true) __asm__("basename") +# 536 + __attribute((__nonnull__(1))); +# 537 +extern "C++" const char *basename(const char * __filename) noexcept(true) __asm__("basename") +# 538 + __attribute((__nonnull__(1))); +# 552 "/usr/include/string.h" 3 +} +# 26 "/usr/include/bits/timex.h" 3 +struct timex { +# 58 "/usr/include/bits/timex.h" 3 +unsigned modes; +# 59 +__syscall_slong_t offset; +# 60 +__syscall_slong_t freq; +# 61 +__syscall_slong_t maxerror; +# 62 +__syscall_slong_t esterror; +# 63 +int status; +# 64 +__syscall_slong_t constant; +# 65 +__syscall_slong_t precision; +# 66 +__syscall_slong_t tolerance; +# 67 +timeval time; +# 68 +__syscall_slong_t tick; +# 69 +__syscall_slong_t ppsfreq; +# 70 +__syscall_slong_t jitter; +# 71 +int shift; +# 72 +__syscall_slong_t stabil; +# 73 +__syscall_slong_t jitcnt; +# 74 +__syscall_slong_t calcnt; +# 75 +__syscall_slong_t errcnt; +# 76 +__syscall_slong_t stbcnt; +# 78 +int tai; +# 81 +int: 32; int: 32; int: 32; int: 32; +# 82 +int: 32; int: 32; int: 32; int: 32; +# 83 +int: 32; int: 32; int: 32; +# 85 +}; +# 75 "/usr/include/bits/time.h" 3 +extern "C" { +# 78 +extern int clock_adjtime(__clockid_t __clock_id, timex * __utx) noexcept(true) __attribute((__nonnull__(2))); +# 90 "/usr/include/bits/time.h" 3 +} +# 7 "/usr/include/bits/types/struct_tm.h" 3 +struct tm { +# 9 +int tm_sec; +# 10 +int tm_min; +# 11 +int tm_hour; +# 12 +int tm_mday; +# 13 +int tm_mon; +# 14 +int tm_year; +# 15 +int tm_wday; +# 16 +int tm_yday; +# 17 +int tm_isdst; +# 20 +long tm_gmtoff; +# 21 +const char *tm_zone; +# 26 +}; +# 8 "/usr/include/bits/types/struct_itimerspec.h" 3 +struct itimerspec { +# 10 +timespec it_interval; +# 11 +timespec it_value; +# 12 +}; +# 49 "/usr/include/time.h" 3 +struct sigevent; +# 68 "/usr/include/time.h" 3 +extern "C" { +# 72 +extern clock_t clock() noexcept(true); +# 76 +extern time_t time(time_t * __timer) noexcept(true); +# 79 +extern double difftime(time_t __time1, time_t __time0); +# 82 +extern time_t mktime(tm * __tp) noexcept(true); +# 99 "/usr/include/time.h" 3 +extern size_t strftime(char *__restrict__ __s, size_t __maxsize, const char *__restrict__ __format, const tm *__restrict__ __tp) noexcept(true) +# 102 + __attribute((__nonnull__(1, 3, 4))); +# 107 +extern char *strptime(const char *__restrict__ __s, const char *__restrict__ __fmt, tm * __tp) noexcept(true); +# 116 +extern size_t strftime_l(char *__restrict__ __s, size_t __maxsize, const char *__restrict__ __format, const tm *__restrict__ __tp, locale_t __loc) noexcept(true); +# 123 +extern char *strptime_l(const char *__restrict__ __s, const char *__restrict__ __fmt, tm * __tp, locale_t __loc) noexcept(true); +# 132 +extern tm *gmtime(const time_t * __timer) noexcept(true); +# 136 +extern tm *localtime(const time_t * __timer) noexcept(true); +# 154 "/usr/include/time.h" 3 +extern tm *gmtime_r(const time_t *__restrict__ __timer, tm *__restrict__ __tp) noexcept(true); +# 159 +extern tm *localtime_r(const time_t *__restrict__ __timer, tm *__restrict__ __tp) noexcept(true); +# 179 "/usr/include/time.h" 3 +extern char *asctime(const tm * __tp) noexcept(true); +# 183 +extern char *ctime(const time_t * __timer) noexcept(true); +# 197 "/usr/include/time.h" 3 +extern char *asctime_r(const tm *__restrict__ __tp, char *__restrict__ __buf) noexcept(true); +# 202 +extern char *ctime_r(const time_t *__restrict__ __timer, char *__restrict__ __buf) noexcept(true); +# 217 "/usr/include/time.h" 3 +extern char *__tzname[2]; +# 218 +extern int __daylight; +# 219 +extern long __timezone; +# 224 +extern char *tzname[2]; +# 228 +extern void tzset() noexcept(true); +# 232 +extern int daylight; +# 233 +extern long timezone; +# 246 "/usr/include/time.h" 3 +extern time_t timegm(tm * __tp) noexcept(true); +# 263 "/usr/include/time.h" 3 +extern time_t timelocal(tm * __tp) noexcept(true); +# 271 +extern int dysize(int __year) noexcept(true) __attribute((const)); +# 281 "/usr/include/time.h" 3 +extern int nanosleep(const timespec * __requested_time, timespec * __remaining); +# 285 +extern int clock_getres(clockid_t __clock_id, timespec * __res) noexcept(true); +# 288 +extern int clock_gettime(clockid_t __clock_id, timespec * __tp) noexcept(true) +# 289 + __attribute((__nonnull__(2))); +# 292 +extern int clock_settime(clockid_t __clock_id, const timespec * __tp) noexcept(true) +# 293 + __attribute((__nonnull__(2))); +# 323 "/usr/include/time.h" 3 +extern int clock_nanosleep(clockid_t __clock_id, int __flags, const timespec * __req, timespec * __rem); +# 338 "/usr/include/time.h" 3 +extern int clock_getcpuclockid(pid_t __pid, clockid_t * __clock_id) noexcept(true); +# 343 +extern int timer_create(clockid_t __clock_id, sigevent *__restrict__ __evp, timer_t *__restrict__ __timerid) noexcept(true); +# 348 +extern int timer_delete(timer_t __timerid) noexcept(true); +# 352 +extern int timer_settime(timer_t __timerid, int __flags, const itimerspec *__restrict__ __value, itimerspec *__restrict__ __ovalue) noexcept(true); +# 357 +extern int timer_gettime(timer_t __timerid, itimerspec * __value) noexcept(true); +# 376 "/usr/include/time.h" 3 +extern int timer_getoverrun(timer_t __timerid) noexcept(true); +# 383 +extern int timespec_get(timespec * __ts, int __base) noexcept(true) +# 384 + __attribute((__nonnull__(1))); +# 399 "/usr/include/time.h" 3 +extern int timespec_getres(timespec * __ts, int __base) noexcept(true); +# 425 "/usr/include/time.h" 3 +extern int getdate_err; +# 434 "/usr/include/time.h" 3 +extern tm *getdate(const char * __string); +# 448 "/usr/include/time.h" 3 +extern int getdate_r(const char *__restrict__ __string, tm *__restrict__ __resbufp); +# 452 +} +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern "C" { +# 91 +extern clock_t clock() noexcept(true); +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern void *memset(void *, int, size_t) noexcept(true); +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +extern void *memcpy(void *, const void *, size_t) noexcept(true); +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/common_functions.h" +} +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C" { +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int abs(int a) noexcept(true); +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long labs(long a) noexcept(true); +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llabs(long long a) noexcept(true); +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fabs(double x) noexcept(true); +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fabsf(float x) noexcept(true); +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern inline int min(const int a, const int b); +# 324 +extern inline unsigned umin(const unsigned a, const unsigned b); +# 331 +extern inline long long llmin(const long long a, const long long b); +# 338 +extern inline unsigned long long ullmin(const unsigned long long a, const unsigned long long b); +# 359 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fminf(float x, float y) noexcept(true); +# 379 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fmin(double x, double y) noexcept(true); +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern inline int max(const int a, const int b); +# 400 +extern inline unsigned umax(const unsigned a, const unsigned b); +# 407 +extern inline long long llmax(const long long a, const long long b); +# 414 +extern inline unsigned long long ullmax(const unsigned long long a, const unsigned long long b); +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fmaxf(float x, float y) noexcept(true); +# 455 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fmax(double, double) noexcept(true); +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double sin(double x) noexcept(true); +# 495 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double cos(double x) noexcept(true); +# 511 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern void sincos(double x, double * sptr, double * cptr) noexcept(true); +# 524 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern void sincosf(float x, float * sptr, float * cptr) noexcept(true); +# 547 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double tan(double x) noexcept(true); +# 571 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double sqrt(double x) noexcept(true); +# 597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double rsqrt(double x); +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float rsqrtf(float x); +# 648 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double log2(double x) noexcept(true); +# 677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double exp2(double x) noexcept(true); +# 706 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float exp2f(float x) noexcept(true); +# 737 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double exp10(double x) noexcept(true); +# 764 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float exp10f(float x) noexcept(true); +# 798 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double expm1(double x) noexcept(true); +# 831 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float expm1f(float x) noexcept(true); +# 858 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float log2f(float x) noexcept(true); +# 883 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double log10(double x) noexcept(true); +# 909 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double log(double x) noexcept(true); +# 936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double log1p(double x) noexcept(true); +# 966 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float log1pf(float x) noexcept(true); +# 992 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double floor(double x) noexcept(true); +# 1021 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double exp(double x) noexcept(true); +# 1040 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double cosh(double x) noexcept(true); +# 1060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double sinh(double x) noexcept(true); +# 1080 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double tanh(double x) noexcept(true); +# 1104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double acosh(double x) noexcept(true); +# 1131 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float acoshf(float x) noexcept(true); +# 1155 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double asinh(double x) noexcept(true); +# 1179 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float asinhf(float x) noexcept(true); +# 1204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double atanh(double x) noexcept(true); +# 1229 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float atanhf(float x) noexcept(true); +# 1247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double ldexp(double x, int exp) noexcept(true); +# 1262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float ldexpf(float x, int exp) noexcept(true); +# 1283 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double logb(double x) noexcept(true); +# 1307 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float logbf(float x) noexcept(true); +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int ilogb(double x) noexcept(true); +# 1355 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int ilogbf(float x) noexcept(true); +# 1383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double scalbn(double x, int n) noexcept(true); +# 1411 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float scalbnf(float x, int n) noexcept(true); +# 1439 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double scalbln(double x, long n) noexcept(true); +# 1467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float scalblnf(float x, long n) noexcept(true); +# 1499 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double frexp(double x, int * nptr) noexcept(true); +# 1528 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float frexpf(float x, int * nptr) noexcept(true); +# 1551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double round(double x) noexcept(true); +# 1577 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float roundf(float x) noexcept(true); +# 1595 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long lround(double x) noexcept(true); +# 1613 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long lroundf(float x) noexcept(true); +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llround(double x) noexcept(true); +# 1649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llroundf(float x) noexcept(true); +# 1719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float rintf(float x) noexcept(true); +# 1736 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long lrint(double x) noexcept(true); +# 1753 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long lrintf(float x) noexcept(true); +# 1770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llrint(double x) noexcept(true); +# 1787 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern long long llrintf(float x) noexcept(true); +# 1811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double nearbyint(double x) noexcept(true); +# 1835 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float nearbyintf(float x) noexcept(true); +# 1859 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double ceil(double x) noexcept(true); +# 1882 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double trunc(double x) noexcept(true); +# 1908 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float truncf(float x) noexcept(true); +# 1930 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fdim(double x, double y) noexcept(true); +# 1951 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fdimf(float x, float y) noexcept(true); +# 2034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double atan2(double y, double x) noexcept(true); +# 2060 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double atan(double x) noexcept(true); +# 2077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double acos(double x) noexcept(true); +# 2099 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double asin(double x) noexcept(true); +# 2130 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double hypot(double x, double y) noexcept(true); +# 2187 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float hypotf(float x, float y) noexcept(true); +# 2459 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double cbrt(double x) noexcept(true); +# 2486 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float cbrtf(float x) noexcept(true); +# 2512 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double rcbrt(double x); +# 2533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float rcbrtf(float x); +# 2556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double sinpi(double x) noexcept(true); +# 2579 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float sinpif(float x) noexcept(true); +# 2601 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double cospi(double x) noexcept(true); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float cospif(float x) noexcept(true); +# 2636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern void sincospi(double x, double * sptr, double * cptr); +# 2649 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern void sincospif(float x, float * sptr, float * cptr); +# 2735 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double pow(double x, double y) noexcept(true); +# 2759 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double modf(double x, double * iptr) noexcept(true); +# 2786 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fmod(double x, double y) noexcept(true); +# 2816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double remainder(double x, double y) noexcept(true); +# 2849 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float remainderf(float x, float y) noexcept(true); +# 2887 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double remquo(double x, double y, int * quo) noexcept(true); +# 2925 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float remquof(float x, float y, int * quo) noexcept(true); +# 2946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double j0(double x) noexcept(true); +# 2968 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float j0f(float x) noexcept(true); +# 2995 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double j1(double x) noexcept(true); +# 3022 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float j1f(float x) noexcept(true); +# 3045 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double jn(int n, double x) noexcept(true); +# 3068 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float jnf(int n, float x) noexcept(true); +# 3095 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double y0(double x) noexcept(true); +# 3122 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float y0f(float x) noexcept(true); +# 3149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double y1(double x) noexcept(true); +# 3176 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float y1f(float x) noexcept(true); +# 3204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double yn(int n, double x) noexcept(true); +# 3232 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float ynf(int n, float x) noexcept(true); +# 3328 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erf(double x) noexcept(true); +# 3353 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erff(float x) noexcept(true); +# 3383 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erfinv(double x); +# 3406 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erfinvf(float x); +# 3430 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erfc(double x) noexcept(true); +# 3453 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erfcf(float x) noexcept(true); +# 3485 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double lgamma(double x) noexcept(true); +# 3513 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erfcinv(double x); +# 3534 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erfcinvf(float x); +# 3556 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double normcdfinv(double x); +# 3578 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float normcdfinvf(float x); +# 3597 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double normcdf(double x); +# 3616 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float normcdff(float x); +# 3636 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double erfcx(double x); +# 3656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float erfcxf(float x); +# 3689 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float lgammaf(float x) noexcept(true); +# 3718 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double tgamma(double x) noexcept(true); +# 3747 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float tgammaf(float x) noexcept(true); +# 3761 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double copysign(double x, double y) noexcept(true); +# 3775 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float copysignf(float x, float y) noexcept(true); +# 3794 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double nextafter(double x, double y) noexcept(true); +# 3813 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float nextafterf(float x, float y) noexcept(true); +# 3829 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double nan(const char * tagp) noexcept(true); +# 3845 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float nanf(const char * tagp) noexcept(true); +# 3852 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isinff(float) noexcept(true); +# 3853 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isnanf(float) noexcept(true); +# 3863 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __finite(double) noexcept(true); +# 3864 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __finitef(float) noexcept(true); +# 3865 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __signbit(double) noexcept(true); +# 3866 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isnan(double) noexcept(true); +# 3867 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isinf(double) noexcept(true); +# 3870 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __signbitf(float) noexcept(true); +# 3921 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern double fma(double x, double y, double z) noexcept(true); +# 3971 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fmaf(float x, float y, float z) noexcept(true); +# 3982 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __signbitl(long double) noexcept(true); +# 3988 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __finitel(long double) noexcept(true); +# 3989 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isinfl(long double) noexcept(true); +# 3990 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern int __isnanl(long double) noexcept(true); +# 4034 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float acosf(float x) noexcept(true); +# 4056 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float asinf(float x) noexcept(true); +# 4083 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float atanf(float x) noexcept(true); +# 4163 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float atan2f(float y, float x) noexcept(true); +# 4182 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float cosf(float x) noexcept(true); +# 4202 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float sinf(float x) noexcept(true); +# 4222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float tanf(float x) noexcept(true); +# 4241 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float coshf(float x) noexcept(true); +# 4261 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float sinhf(float x) noexcept(true); +# 4281 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float tanhf(float x) noexcept(true); +# 4304 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float logf(float x) noexcept(true); +# 4334 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float expf(float x) noexcept(true); +# 4357 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float log10f(float x) noexcept(true); +# 4380 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float modff(float x, float * iptr) noexcept(true); +# 4463 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float powf(float x, float y) noexcept(true); +# 4487 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float sqrtf(float x) noexcept(true); +# 4510 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float ceilf(float x) noexcept(true); +# 4533 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float floorf(float x) noexcept(true); +# 4559 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern float fmodf(float x, float y) noexcept(true); +# 4574 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +extern "C++" { +# 70 +namespace std __attribute((__visibility__("default"))) { +# 74 +struct __true_type { }; +# 75 +struct __false_type { }; +# 77 +template< bool > +# 78 +struct __truth_type { +# 79 +typedef __false_type __type; }; +# 82 +template<> struct __truth_type< true> { +# 83 +typedef __true_type __type; }; +# 87 +template< class _Sp, class _Tp> +# 88 +struct __traitor { +# 90 +enum { __value = ((bool)_Sp::__value) || ((bool)_Tp::__value)}; +# 91 +typedef typename __truth_type< __value> ::__type __type; +# 92 +}; +# 95 +template< class , class > +# 96 +struct __are_same { +# 98 +enum { __value}; +# 99 +typedef __false_type __type; +# 100 +}; +# 102 +template< class _Tp> +# 103 +struct __are_same< _Tp, _Tp> { +# 105 +enum { __value = 1}; +# 106 +typedef __true_type __type; +# 107 +}; +# 110 +template< class _Tp> +# 111 +struct __is_void { +# 113 +enum { __value}; +# 114 +typedef __false_type __type; +# 115 +}; +# 118 +template<> struct __is_void< void> { +# 120 +enum { __value = 1}; +# 121 +typedef __true_type __type; +# 122 +}; +# 127 +template< class _Tp> +# 128 +struct __is_integer { +# 130 +enum { __value}; +# 131 +typedef __false_type __type; +# 132 +}; +# 139 +template<> struct __is_integer< bool> { +# 141 +enum { __value = 1}; +# 142 +typedef __true_type __type; +# 143 +}; +# 146 +template<> struct __is_integer< char> { +# 148 +enum { __value = 1}; +# 149 +typedef __true_type __type; +# 150 +}; +# 153 +template<> struct __is_integer< signed char> { +# 155 +enum { __value = 1}; +# 156 +typedef __true_type __type; +# 157 +}; +# 160 +template<> struct __is_integer< unsigned char> { +# 162 +enum { __value = 1}; +# 163 +typedef __true_type __type; +# 164 +}; +# 168 +template<> struct __is_integer< wchar_t> { +# 170 +enum { __value = 1}; +# 171 +typedef __true_type __type; +# 172 +}; +# 186 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template<> struct __is_integer< char16_t> { +# 188 +enum { __value = 1}; +# 189 +typedef __true_type __type; +# 190 +}; +# 193 +template<> struct __is_integer< char32_t> { +# 195 +enum { __value = 1}; +# 196 +typedef __true_type __type; +# 197 +}; +# 201 +template<> struct __is_integer< short> { +# 203 +enum { __value = 1}; +# 204 +typedef __true_type __type; +# 205 +}; +# 208 +template<> struct __is_integer< unsigned short> { +# 210 +enum { __value = 1}; +# 211 +typedef __true_type __type; +# 212 +}; +# 215 +template<> struct __is_integer< int> { +# 217 +enum { __value = 1}; +# 218 +typedef __true_type __type; +# 219 +}; +# 222 +template<> struct __is_integer< unsigned> { +# 224 +enum { __value = 1}; +# 225 +typedef __true_type __type; +# 226 +}; +# 229 +template<> struct __is_integer< long> { +# 231 +enum { __value = 1}; +# 232 +typedef __true_type __type; +# 233 +}; +# 236 +template<> struct __is_integer< unsigned long> { +# 238 +enum { __value = 1}; +# 239 +typedef __true_type __type; +# 240 +}; +# 243 +template<> struct __is_integer< long long> { +# 245 +enum { __value = 1}; +# 246 +typedef __true_type __type; +# 247 +}; +# 250 +template<> struct __is_integer< unsigned long long> { +# 252 +enum { __value = 1}; +# 253 +typedef __true_type __type; +# 254 +}; +# 273 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template<> struct __is_integer< __int128> { enum { __value = 1}; typedef __true_type __type; }; template<> struct __is_integer< unsigned __int128> { enum { __value = 1}; typedef __true_type __type; }; +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template< class _Tp> +# 291 +struct __is_floating { +# 293 +enum { __value}; +# 294 +typedef __false_type __type; +# 295 +}; +# 299 +template<> struct __is_floating< float> { +# 301 +enum { __value = 1}; +# 302 +typedef __true_type __type; +# 303 +}; +# 306 +template<> struct __is_floating< double> { +# 308 +enum { __value = 1}; +# 309 +typedef __true_type __type; +# 310 +}; +# 313 +template<> struct __is_floating< long double> { +# 315 +enum { __value = 1}; +# 316 +typedef __true_type __type; +# 317 +}; +# 367 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template< class _Tp> +# 368 +struct __is_pointer { +# 370 +enum { __value}; +# 371 +typedef __false_type __type; +# 372 +}; +# 374 +template< class _Tp> +# 375 +struct __is_pointer< _Tp *> { +# 377 +enum { __value = 1}; +# 378 +typedef __true_type __type; +# 379 +}; +# 384 +template< class _Tp> +# 385 +struct __is_arithmetic : public __traitor< __is_integer< _Tp> , __is_floating< _Tp> > { +# 387 +}; +# 392 +template< class _Tp> +# 393 +struct __is_scalar : public __traitor< __is_arithmetic< _Tp> , __is_pointer< _Tp> > { +# 395 +}; +# 400 +template< class _Tp> +# 401 +struct __is_char { +# 403 +enum { __value}; +# 404 +typedef __false_type __type; +# 405 +}; +# 408 +template<> struct __is_char< char> { +# 410 +enum { __value = 1}; +# 411 +typedef __true_type __type; +# 412 +}; +# 416 +template<> struct __is_char< wchar_t> { +# 418 +enum { __value = 1}; +# 419 +typedef __true_type __type; +# 420 +}; +# 423 +template< class _Tp> +# 424 +struct __is_byte { +# 426 +enum { __value}; +# 427 +typedef __false_type __type; +# 428 +}; +# 431 +template<> struct __is_byte< char> { +# 433 +enum { __value = 1}; +# 434 +typedef __true_type __type; +# 435 +}; +# 438 +template<> struct __is_byte< signed char> { +# 440 +enum { __value = 1}; +# 441 +typedef __true_type __type; +# 442 +}; +# 445 +template<> struct __is_byte< unsigned char> { +# 447 +enum { __value = 1}; +# 448 +typedef __true_type __type; +# 449 +}; +# 452 +enum class byte: unsigned char; +# 455 +template<> struct __is_byte< byte> { +# 457 +enum { __value = 1}; +# 458 +typedef __true_type __type; +# 459 +}; +# 471 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template< class > struct iterator_traits; +# 474 +template< class _Tp> +# 475 +struct __is_nonvolatile_trivially_copyable { +# 477 +enum { __value = __is_trivially_copyable(_Tp)}; +# 478 +}; +# 483 +template< class _Tp> +# 484 +struct __is_nonvolatile_trivially_copyable< volatile _Tp> { +# 486 +enum { __value}; +# 487 +}; +# 490 +template< class _OutputIter, class _InputIter> +# 491 +struct __memcpyable { +# 493 +enum { __value}; +# 494 +}; +# 496 +template< class _Tp> +# 497 +struct __memcpyable< _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 499 +}; +# 501 +template< class _Tp> +# 502 +struct __memcpyable< _Tp *, const _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 504 +}; +# 511 +template< class _Iter1, class _Iter2> +# 512 +struct __memcmpable { +# 514 +enum { __value}; +# 515 +}; +# 518 +template< class _Tp> +# 519 +struct __memcmpable< _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 521 +}; +# 523 +template< class _Tp> +# 524 +struct __memcmpable< const _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 526 +}; +# 528 +template< class _Tp> +# 529 +struct __memcmpable< _Tp *, const _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 531 +}; +# 539 +template< class _Tp, bool _TreatAsBytes = __is_byte< _Tp> ::__value> +# 546 +struct __is_memcmp_ordered { +# 548 +static const bool __value = (((_Tp)(-1)) > ((_Tp)1)); +# 549 +}; +# 551 +template< class _Tp> +# 552 +struct __is_memcmp_ordered< _Tp, false> { +# 554 +static const bool __value = false; +# 555 +}; +# 558 +template< class _Tp, class _Up, bool = sizeof(_Tp) == sizeof(_Up)> +# 559 +struct __is_memcmp_ordered_with { +# 561 +static const bool __value = (__is_memcmp_ordered< _Tp> ::__value && __is_memcmp_ordered< _Up> ::__value); +# 563 +}; +# 565 +template< class _Tp, class _Up> +# 566 +struct __is_memcmp_ordered_with< _Tp, _Up, false> { +# 568 +static const bool __value = false; +# 569 +}; +# 581 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/cpp_type_traits.h" 3 +template<> struct __is_memcmp_ordered_with< byte, byte, true> { +# 582 +static constexpr inline bool __value = true; }; +# 584 +template< class _Tp, bool _SameSize> +# 585 +struct __is_memcmp_ordered_with< _Tp, byte, _SameSize> { +# 586 +static constexpr inline bool __value = false; }; +# 588 +template< class _Up, bool _SameSize> +# 589 +struct __is_memcmp_ordered_with< byte, _Up, _SameSize> { +# 590 +static constexpr inline bool __value = false; }; +# 596 +template< class _Tp> +# 597 +struct __is_move_iterator { +# 599 +enum { __value}; +# 600 +typedef __false_type __type; +# 601 +}; +# 605 +template< class _Iterator> inline _Iterator +# 608 +__miter_base(_Iterator __it) +# 609 +{ return __it; } +# 612 +} +# 613 +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 +extern "C++" { +# 39 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 44 +template< bool , class > +# 45 +struct __enable_if { +# 46 +}; +# 48 +template< class _Tp> +# 49 +struct __enable_if< true, _Tp> { +# 50 +typedef _Tp __type; }; +# 54 +template< bool _Cond, class _Iftrue, class _Iffalse> +# 55 +struct __conditional_type { +# 56 +typedef _Iftrue __type; }; +# 58 +template< class _Iftrue, class _Iffalse> +# 59 +struct __conditional_type< false, _Iftrue, _Iffalse> { +# 60 +typedef _Iffalse __type; }; +# 64 +template< class _Tp> +# 65 +struct __add_unsigned { +# 68 +private: typedef __enable_if< std::__is_integer< _Tp> ::__value, _Tp> __if_type; +# 71 +public: typedef typename __enable_if< std::__is_integer< _Tp> ::__value, _Tp> ::__type __type; +# 72 +}; +# 75 +template<> struct __add_unsigned< char> { +# 76 +typedef unsigned char __type; }; +# 79 +template<> struct __add_unsigned< signed char> { +# 80 +typedef unsigned char __type; }; +# 83 +template<> struct __add_unsigned< short> { +# 84 +typedef unsigned short __type; }; +# 87 +template<> struct __add_unsigned< int> { +# 88 +typedef unsigned __type; }; +# 91 +template<> struct __add_unsigned< long> { +# 92 +typedef unsigned long __type; }; +# 95 +template<> struct __add_unsigned< long long> { +# 96 +typedef unsigned long long __type; }; +# 100 +template<> struct __add_unsigned< bool> ; +# 103 +template<> struct __add_unsigned< wchar_t> ; +# 107 +template< class _Tp> +# 108 +struct __remove_unsigned { +# 111 +private: typedef __enable_if< std::__is_integer< _Tp> ::__value, _Tp> __if_type; +# 114 +public: typedef typename __enable_if< std::__is_integer< _Tp> ::__value, _Tp> ::__type __type; +# 115 +}; +# 118 +template<> struct __remove_unsigned< char> { +# 119 +typedef signed char __type; }; +# 122 +template<> struct __remove_unsigned< unsigned char> { +# 123 +typedef signed char __type; }; +# 126 +template<> struct __remove_unsigned< unsigned short> { +# 127 +typedef short __type; }; +# 130 +template<> struct __remove_unsigned< unsigned> { +# 131 +typedef int __type; }; +# 134 +template<> struct __remove_unsigned< unsigned long> { +# 135 +typedef long __type; }; +# 138 +template<> struct __remove_unsigned< unsigned long long> { +# 139 +typedef long long __type; }; +# 143 +template<> struct __remove_unsigned< bool> ; +# 146 +template<> struct __remove_unsigned< wchar_t> ; +# 150 +template< class _Type> constexpr bool +# 153 +__is_null_pointer(_Type *__ptr) +# 154 +{ return __ptr == 0; } +# 156 +template< class _Type> constexpr bool +# 159 +__is_null_pointer(_Type) +# 160 +{ return false; } +# 164 +constexpr bool __is_null_pointer(std::nullptr_t) +# 165 +{ return true; } +# 170 +template< class _Tp, bool = std::template __is_integer< _Tp> ::__value> +# 171 +struct __promote { +# 172 +typedef double __type; }; +# 177 +template< class _Tp> +# 178 +struct __promote< _Tp, false> { +# 179 +}; +# 182 +template<> struct __promote< long double> { +# 183 +typedef long double __type; }; +# 186 +template<> struct __promote< double> { +# 187 +typedef double __type; }; +# 190 +template<> struct __promote< float> { +# 191 +typedef float __type; }; +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 +template< class ..._Tp> using __promoted_t = __decltype(((((typename __promote< _Tp> ::__type)0) + ... ))); +# 230 +template< class _Tp, class _Up> using __promote_2 = __promote< __promoted_t< _Tp, _Up> > ; +# 233 +template< class _Tp, class _Up, class _Vp> using __promote_3 = __promote< __promoted_t< _Tp, _Up, _Vp> > ; +# 236 +template< class _Tp, class _Up, class _Vp, class _Wp> using __promote_4 = __promote< __promoted_t< _Tp, _Up, _Vp, _Wp> > ; +# 270 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/type_traits.h" 3 +} +# 271 +} +# 34 "/usr/include/math.h" 3 +extern "C" { +# 167 "/usr/include/math.h" 3 +typedef float float_t; +# 168 +typedef double double_t; +# 256 "/usr/include/math.h" 3 +enum { +# 257 +FP_INT_UPWARD, +# 260 +FP_INT_DOWNWARD, +# 263 +FP_INT_TOWARDZERO, +# 266 +FP_INT_TONEARESTFROMZERO, +# 269 +FP_INT_TONEAREST +# 272 +}; +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassify(double __value) noexcept(true) +# 21 + __attribute((const)); +# 24 +extern int __signbit(double __value) noexcept(true) +# 25 + __attribute((const)); +# 29 +extern int __isinf(double __value) noexcept(true) +# 30 + __attribute((const)); +# 33 +extern int __finite(double __value) noexcept(true) +# 34 + __attribute((const)); +# 37 +extern int __isnan(double __value) noexcept(true) +# 38 + __attribute((const)); +# 41 +extern int __iseqsig(double __x, double __y) noexcept(true); +# 44 +extern int __issignaling(double __value) noexcept(true) +# 45 + __attribute((const)); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern double acos(double __x) noexcept(true); extern double __acos(double __x) noexcept(true); +# 55 +extern double asin(double __x) noexcept(true); extern double __asin(double __x) noexcept(true); +# 57 +extern double atan(double __x) noexcept(true); extern double __atan(double __x) noexcept(true); +# 59 +extern double atan2(double __y, double __x) noexcept(true); extern double __atan2(double __y, double __x) noexcept(true); +# 62 +extern double cos(double __x) noexcept(true); extern double __cos(double __x) noexcept(true); +# 64 +extern double sin(double __x) noexcept(true); extern double __sin(double __x) noexcept(true); +# 66 +extern double tan(double __x) noexcept(true); extern double __tan(double __x) noexcept(true); +# 70 +extern double acospi(double __x) noexcept(true); extern double __acospi(double __x) noexcept(true); +# 72 +extern double asinpi(double __x) noexcept(true); extern double __asinpi(double __x) noexcept(true); +# 74 +extern double atanpi(double __x) noexcept(true); extern double __atanpi(double __x) noexcept(true); +# 76 +extern double atan2pi(double __y, double __x) noexcept(true); extern double __atan2pi(double __y, double __x) noexcept(true); +# 79 +extern double cospi(double __x) noexcept(true); extern double __cospi(double __x) noexcept(true); +# 81 +extern double sinpi(double __x) noexcept(true); extern double __sinpi(double __x) noexcept(true); +# 83 +extern double tanpi(double __x) noexcept(true); extern double __tanpi(double __x) noexcept(true); +# 89 +extern double cosh(double __x) noexcept(true); extern double __cosh(double __x) noexcept(true); +# 91 +extern double sinh(double __x) noexcept(true); extern double __sinh(double __x) noexcept(true); +# 93 +extern double tanh(double __x) noexcept(true); extern double __tanh(double __x) noexcept(true); +# 97 +extern void sincos(double __x, double * __sinx, double * __cosx) noexcept(true); extern void __sincos(double __x, double * __sinx, double * __cosx) noexcept(true); +# 103 +extern double acosh(double __x) noexcept(true); extern double __acosh(double __x) noexcept(true); +# 105 +extern double asinh(double __x) noexcept(true); extern double __asinh(double __x) noexcept(true); +# 107 +extern double atanh(double __x) noexcept(true); extern double __atanh(double __x) noexcept(true); +# 113 +extern double exp(double __x) noexcept(true); extern double __exp(double __x) noexcept(true); +# 116 +extern double frexp(double __x, int * __exponent) noexcept(true); extern double __frexp(double __x, int * __exponent) noexcept(true); +# 119 +extern double ldexp(double __x, int __exponent) noexcept(true); extern double __ldexp(double __x, int __exponent) noexcept(true); +# 122 +extern double log(double __x) noexcept(true); extern double __log(double __x) noexcept(true); +# 125 +extern double log10(double __x) noexcept(true); extern double __log10(double __x) noexcept(true); +# 128 +extern double modf(double __x, double * __iptr) noexcept(true); extern double __modf(double __x, double * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern double exp10(double __x) noexcept(true); extern double __exp10(double __x) noexcept(true); +# 135 +extern double exp2m1(double __x) noexcept(true); extern double __exp2m1(double __x) noexcept(true); +# 138 +extern double exp10m1(double __x) noexcept(true); extern double __exp10m1(double __x) noexcept(true); +# 141 +extern double log2p1(double __x) noexcept(true); extern double __log2p1(double __x) noexcept(true); +# 144 +extern double log10p1(double __x) noexcept(true); extern double __log10p1(double __x) noexcept(true); +# 147 +extern double logp1(double __x) noexcept(true); extern double __logp1(double __x) noexcept(true); +# 152 +extern double expm1(double __x) noexcept(true); extern double __expm1(double __x) noexcept(true); +# 155 +extern double log1p(double __x) noexcept(true); extern double __log1p(double __x) noexcept(true); +# 158 +extern double logb(double __x) noexcept(true); extern double __logb(double __x) noexcept(true); +# 163 +extern double exp2(double __x) noexcept(true); extern double __exp2(double __x) noexcept(true); +# 166 +extern double log2(double __x) noexcept(true); extern double __log2(double __x) noexcept(true); +# 173 +extern double pow(double __x, double __y) noexcept(true); extern double __pow(double __x, double __y) noexcept(true); +# 176 +extern double sqrt(double __x) noexcept(true); extern double __sqrt(double __x) noexcept(true); +# 180 +extern double hypot(double __x, double __y) noexcept(true); extern double __hypot(double __x, double __y) noexcept(true); +# 185 +extern double cbrt(double __x) noexcept(true); extern double __cbrt(double __x) noexcept(true); +# 192 +extern double ceil(double __x) noexcept(true) __attribute((const)); +# 195 +extern double fabs(double __x) noexcept(true) __attribute((const)); +# 198 +extern double floor(double __x) noexcept(true) __attribute((const)); +# 201 +extern double fmod(double __x, double __y) noexcept(true); extern double __fmod(double __x, double __y) noexcept(true); +# 216 "/usr/include/bits/mathcalls.h" 3 +extern int finite(double __value) noexcept(true) +# 217 + __attribute((const)); +# 220 +extern double drem(double __x, double __y) noexcept(true); extern double __drem(double __x, double __y) noexcept(true); +# 224 +extern double significand(double __x) noexcept(true); extern double __significand(double __x) noexcept(true); +# 231 +extern double copysign(double __x, double __y) noexcept(true) __attribute((const)); +# 236 +extern double nan(const char * __tagb) noexcept(true); extern double __nan(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern double j0(double) noexcept(true); extern double __j0(double) noexcept(true); +# 254 +extern double j1(double) noexcept(true); extern double __j1(double) noexcept(true); +# 255 +extern double jn(int, double) noexcept(true); extern double __jn(int, double) noexcept(true); +# 256 +extern double y0(double) noexcept(true); extern double __y0(double) noexcept(true); +# 257 +extern double y1(double) noexcept(true); extern double __y1(double) noexcept(true); +# 258 +extern double yn(int, double) noexcept(true); extern double __yn(int, double) noexcept(true); +# 264 +extern double erf(double) noexcept(true); extern double __erf(double) noexcept(true); +# 265 +extern double erfc(double) noexcept(true); extern double __erfc(double) noexcept(true); +# 266 +extern double lgamma(double) noexcept(true); extern double __lgamma(double) noexcept(true); +# 271 +extern double tgamma(double) noexcept(true); extern double __tgamma(double) noexcept(true); +# 277 +extern double gamma(double) noexcept(true); extern double __gamma(double) noexcept(true); +# 285 +extern double lgamma_r(double, int * __signgamp) noexcept(true); extern double __lgamma_r(double, int * __signgamp) noexcept(true); +# 292 +extern double rint(double __x) noexcept(true); extern double __rint(double __x) noexcept(true); +# 295 +extern double nextafter(double __x, double __y) noexcept(true); extern double __nextafter(double __x, double __y) noexcept(true); +# 297 +extern double nexttoward(double __x, long double __y) noexcept(true); extern double __nexttoward(double __x, long double __y) noexcept(true); +# 302 +extern double nextdown(double __x) noexcept(true); extern double __nextdown(double __x) noexcept(true); +# 304 +extern double nextup(double __x) noexcept(true); extern double __nextup(double __x) noexcept(true); +# 308 +extern double remainder(double __x, double __y) noexcept(true); extern double __remainder(double __x, double __y) noexcept(true); +# 312 +extern double scalbn(double __x, int __n) noexcept(true); extern double __scalbn(double __x, int __n) noexcept(true); +# 316 +extern int ilogb(double __x) noexcept(true); extern int __ilogb(double __x) noexcept(true); +# 321 +extern long llogb(double __x) noexcept(true); extern long __llogb(double __x) noexcept(true); +# 326 +extern double scalbln(double __x, long __n) noexcept(true); extern double __scalbln(double __x, long __n) noexcept(true); +# 330 +extern double nearbyint(double __x) noexcept(true); extern double __nearbyint(double __x) noexcept(true); +# 334 +extern double round(double __x) noexcept(true) __attribute((const)); +# 338 +extern double trunc(double __x) noexcept(true) __attribute((const)); +# 343 +extern double remquo(double __x, double __y, int * __quo) noexcept(true); extern double __remquo(double __x, double __y, int * __quo) noexcept(true); +# 350 +extern long lrint(double __x) noexcept(true); extern long __lrint(double __x) noexcept(true); +# 352 +__extension__ extern long long llrint(double __x) noexcept(true); extern long long __llrint(double __x) noexcept(true); +# 356 +extern long lround(double __x) noexcept(true); extern long __lround(double __x) noexcept(true); +# 358 +__extension__ extern long long llround(double __x) noexcept(true); extern long long __llround(double __x) noexcept(true); +# 362 +extern double fdim(double __x, double __y) noexcept(true); extern double __fdim(double __x, double __y) noexcept(true); +# 366 +extern double fmax(double __x, double __y) noexcept(true) __attribute((const)); +# 369 +extern double fmin(double __x, double __y) noexcept(true) __attribute((const)); +# 373 +extern double fma(double __x, double __y, double __z) noexcept(true); extern double __fma(double __x, double __y, double __z) noexcept(true); +# 378 +extern double roundeven(double __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfp(double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfp(double __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfp(double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfp(double __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpx(double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpx(double __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpx(double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpx(double __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalize(double * __cx, const double * __x) noexcept(true); +# 410 +extern double fmaxmag(double __x, double __y) noexcept(true) __attribute((const)); +# 413 +extern double fminmag(double __x, double __y) noexcept(true) __attribute((const)); +# 418 +extern double fmaximum(double __x, double __y) noexcept(true) __attribute((const)); +# 421 +extern double fminimum(double __x, double __y) noexcept(true) __attribute((const)); +# 424 +extern double fmaximum_num(double __x, double __y) noexcept(true) __attribute((const)); +# 427 +extern double fminimum_num(double __x, double __y) noexcept(true) __attribute((const)); +# 430 +extern double fmaximum_mag(double __x, double __y) noexcept(true) __attribute((const)); +# 433 +extern double fminimum_mag(double __x, double __y) noexcept(true) __attribute((const)); +# 436 +extern double fmaximum_mag_num(double __x, double __y) noexcept(true) __attribute((const)); +# 439 +extern double fminimum_mag_num(double __x, double __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorder(const double * __x, const double * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermag(const double * __x, const double * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern double getpayload(const double * __x) noexcept(true); extern double __getpayload(const double * __x) noexcept(true); +# 457 +extern int setpayload(double * __x, double __payload) noexcept(true); +# 460 +extern int setpayloadsig(double * __x, double __payload) noexcept(true); +# 468 +extern double scalb(double __x, double __n) noexcept(true); extern double __scalb(double __x, double __n) noexcept(true); +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassifyf(float __value) noexcept(true) +# 21 + __attribute((const)); +# 24 +extern int __signbitf(float __value) noexcept(true) +# 25 + __attribute((const)); +# 29 +extern int __isinff(float __value) noexcept(true) +# 30 + __attribute((const)); +# 33 +extern int __finitef(float __value) noexcept(true) +# 34 + __attribute((const)); +# 37 +extern int __isnanf(float __value) noexcept(true) +# 38 + __attribute((const)); +# 41 +extern int __iseqsigf(float __x, float __y) noexcept(true); +# 44 +extern int __issignalingf(float __value) noexcept(true) +# 45 + __attribute((const)); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern float acosf(float __x) noexcept(true); extern float __acosf(float __x) noexcept(true); +# 55 +extern float asinf(float __x) noexcept(true); extern float __asinf(float __x) noexcept(true); +# 57 +extern float atanf(float __x) noexcept(true); extern float __atanf(float __x) noexcept(true); +# 59 +extern float atan2f(float __y, float __x) noexcept(true); extern float __atan2f(float __y, float __x) noexcept(true); +# 62 +extern float cosf(float __x) noexcept(true); +# 64 +extern float sinf(float __x) noexcept(true); +# 66 +extern float tanf(float __x) noexcept(true); +# 70 +extern float acospif(float __x) noexcept(true); extern float __acospif(float __x) noexcept(true); +# 72 +extern float asinpif(float __x) noexcept(true); extern float __asinpif(float __x) noexcept(true); +# 74 +extern float atanpif(float __x) noexcept(true); extern float __atanpif(float __x) noexcept(true); +# 76 +extern float atan2pif(float __y, float __x) noexcept(true); extern float __atan2pif(float __y, float __x) noexcept(true); +# 79 +extern float cospif(float __x) noexcept(true); extern float __cospif(float __x) noexcept(true); +# 81 +extern float sinpif(float __x) noexcept(true); extern float __sinpif(float __x) noexcept(true); +# 83 +extern float tanpif(float __x) noexcept(true); extern float __tanpif(float __x) noexcept(true); +# 89 +extern float coshf(float __x) noexcept(true); extern float __coshf(float __x) noexcept(true); +# 91 +extern float sinhf(float __x) noexcept(true); extern float __sinhf(float __x) noexcept(true); +# 93 +extern float tanhf(float __x) noexcept(true); +# 97 +extern void sincosf(float __x, float * __sinx, float * __cosx) noexcept(true); +# 103 +extern float acoshf(float __x) noexcept(true); extern float __acoshf(float __x) noexcept(true); +# 105 +extern float asinhf(float __x) noexcept(true); extern float __asinhf(float __x) noexcept(true); +# 107 +extern float atanhf(float __x) noexcept(true); extern float __atanhf(float __x) noexcept(true); +# 113 +extern float expf(float __x) noexcept(true); +# 116 +extern float frexpf(float __x, int * __exponent) noexcept(true); extern float __frexpf(float __x, int * __exponent) noexcept(true); +# 119 +extern float ldexpf(float __x, int __exponent) noexcept(true); extern float __ldexpf(float __x, int __exponent) noexcept(true); +# 122 +extern float logf(float __x) noexcept(true); +# 125 +extern float log10f(float __x) noexcept(true); +# 128 +extern float modff(float __x, float * __iptr) noexcept(true); extern float __modff(float __x, float * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern float exp10f(float __x) noexcept(true); +# 135 +extern float exp2m1f(float __x) noexcept(true); extern float __exp2m1f(float __x) noexcept(true); +# 138 +extern float exp10m1f(float __x) noexcept(true); extern float __exp10m1f(float __x) noexcept(true); +# 141 +extern float log2p1f(float __x) noexcept(true); extern float __log2p1f(float __x) noexcept(true); +# 144 +extern float log10p1f(float __x) noexcept(true); extern float __log10p1f(float __x) noexcept(true); +# 147 +extern float logp1f(float __x) noexcept(true); extern float __logp1f(float __x) noexcept(true); +# 152 +extern float expm1f(float __x) noexcept(true); extern float __expm1f(float __x) noexcept(true); +# 155 +extern float log1pf(float __x) noexcept(true); extern float __log1pf(float __x) noexcept(true); +# 158 +extern float logbf(float __x) noexcept(true); extern float __logbf(float __x) noexcept(true); +# 163 +extern float exp2f(float __x) noexcept(true); extern float __exp2f(float __x) noexcept(true); +# 166 +extern float log2f(float __x) noexcept(true); +# 173 +extern float powf(float __x, float __y) noexcept(true); +# 176 +extern float sqrtf(float __x) noexcept(true); extern float __sqrtf(float __x) noexcept(true); +# 180 +extern float hypotf(float __x, float __y) noexcept(true); extern float __hypotf(float __x, float __y) noexcept(true); +# 185 +extern float cbrtf(float __x) noexcept(true); extern float __cbrtf(float __x) noexcept(true); +# 192 +extern float ceilf(float __x) noexcept(true) __attribute((const)); +# 195 +extern float fabsf(float __x) noexcept(true) __attribute((const)); +# 198 +extern float floorf(float __x) noexcept(true) __attribute((const)); +# 201 +extern float fmodf(float __x, float __y) noexcept(true); extern float __fmodf(float __x, float __y) noexcept(true); +# 210 "/usr/include/bits/mathcalls.h" 3 +extern int isinff(float __value) noexcept(true) +# 211 + __attribute((const)); +# 216 +extern int finitef(float __value) noexcept(true) +# 217 + __attribute((const)); +# 220 +extern float dremf(float __x, float __y) noexcept(true); extern float __dremf(float __x, float __y) noexcept(true); +# 224 +extern float significandf(float __x) noexcept(true); extern float __significandf(float __x) noexcept(true); +# 231 +extern float copysignf(float __x, float __y) noexcept(true) __attribute((const)); +# 236 +extern float nanf(const char * __tagb) noexcept(true); extern float __nanf(const char * __tagb) noexcept(true); +# 246 "/usr/include/bits/mathcalls.h" 3 +extern int isnanf(float __value) noexcept(true) +# 247 + __attribute((const)); +# 253 +extern float j0f(float) noexcept(true); extern float __j0f(float) noexcept(true); +# 254 +extern float j1f(float) noexcept(true); extern float __j1f(float) noexcept(true); +# 255 +extern float jnf(int, float) noexcept(true); extern float __jnf(int, float) noexcept(true); +# 256 +extern float y0f(float) noexcept(true); extern float __y0f(float) noexcept(true); +# 257 +extern float y1f(float) noexcept(true); extern float __y1f(float) noexcept(true); +# 258 +extern float ynf(int, float) noexcept(true); extern float __ynf(int, float) noexcept(true); +# 264 +extern float erff(float) noexcept(true); extern float __erff(float) noexcept(true); +# 265 +extern float erfcf(float) noexcept(true); extern float __erfcf(float) noexcept(true); +# 266 +extern float lgammaf(float) noexcept(true); extern float __lgammaf(float) noexcept(true); +# 271 +extern float tgammaf(float) noexcept(true); extern float __tgammaf(float) noexcept(true); +# 277 +extern float gammaf(float) noexcept(true); extern float __gammaf(float) noexcept(true); +# 285 +extern float lgammaf_r(float, int * __signgamp) noexcept(true); extern float __lgammaf_r(float, int * __signgamp) noexcept(true); +# 292 +extern float rintf(float __x) noexcept(true); extern float __rintf(float __x) noexcept(true); +# 295 +extern float nextafterf(float __x, float __y) noexcept(true); extern float __nextafterf(float __x, float __y) noexcept(true); +# 297 +extern float nexttowardf(float __x, long double __y) noexcept(true); extern float __nexttowardf(float __x, long double __y) noexcept(true); +# 302 +extern float nextdownf(float __x) noexcept(true); extern float __nextdownf(float __x) noexcept(true); +# 304 +extern float nextupf(float __x) noexcept(true); extern float __nextupf(float __x) noexcept(true); +# 308 +extern float remainderf(float __x, float __y) noexcept(true); extern float __remainderf(float __x, float __y) noexcept(true); +# 312 +extern float scalbnf(float __x, int __n) noexcept(true); extern float __scalbnf(float __x, int __n) noexcept(true); +# 316 +extern int ilogbf(float __x) noexcept(true); extern int __ilogbf(float __x) noexcept(true); +# 321 +extern long llogbf(float __x) noexcept(true); extern long __llogbf(float __x) noexcept(true); +# 326 +extern float scalblnf(float __x, long __n) noexcept(true); extern float __scalblnf(float __x, long __n) noexcept(true); +# 330 +extern float nearbyintf(float __x) noexcept(true); extern float __nearbyintf(float __x) noexcept(true); +# 334 +extern float roundf(float __x) noexcept(true) __attribute((const)); +# 338 +extern float truncf(float __x) noexcept(true) __attribute((const)); +# 343 +extern float remquof(float __x, float __y, int * __quo) noexcept(true); extern float __remquof(float __x, float __y, int * __quo) noexcept(true); +# 350 +extern long lrintf(float __x) noexcept(true); extern long __lrintf(float __x) noexcept(true); +# 352 +__extension__ extern long long llrintf(float __x) noexcept(true); extern long long __llrintf(float __x) noexcept(true); +# 356 +extern long lroundf(float __x) noexcept(true); extern long __lroundf(float __x) noexcept(true); +# 358 +__extension__ extern long long llroundf(float __x) noexcept(true); extern long long __llroundf(float __x) noexcept(true); +# 362 +extern float fdimf(float __x, float __y) noexcept(true); extern float __fdimf(float __x, float __y) noexcept(true); +# 366 +extern float fmaxf(float __x, float __y) noexcept(true) __attribute((const)); +# 369 +extern float fminf(float __x, float __y) noexcept(true) __attribute((const)); +# 373 +extern float fmaf(float __x, float __y, float __z) noexcept(true); extern float __fmaf(float __x, float __y, float __z) noexcept(true); +# 378 +extern float roundevenf(float __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf(float __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf(float __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf(float __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf(float __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf(float __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf(float __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf(float __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf(float __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef(float * __cx, const float * __x) noexcept(true); +# 410 +extern float fmaxmagf(float __x, float __y) noexcept(true) __attribute((const)); +# 413 +extern float fminmagf(float __x, float __y) noexcept(true) __attribute((const)); +# 418 +extern float fmaximumf(float __x, float __y) noexcept(true) __attribute((const)); +# 421 +extern float fminimumf(float __x, float __y) noexcept(true) __attribute((const)); +# 424 +extern float fmaximum_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 427 +extern float fminimum_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 430 +extern float fmaximum_magf(float __x, float __y) noexcept(true) __attribute((const)); +# 433 +extern float fminimum_magf(float __x, float __y) noexcept(true) __attribute((const)); +# 436 +extern float fmaximum_mag_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 439 +extern float fminimum_mag_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf(const float * __x, const float * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf(const float * __x, const float * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern float getpayloadf(const float * __x) noexcept(true); extern float __getpayloadf(const float * __x) noexcept(true); +# 457 +extern int setpayloadf(float * __x, float __payload) noexcept(true); +# 460 +extern int setpayloadsigf(float * __x, float __payload) noexcept(true); +# 468 +extern float scalbf(float __x, float __n) noexcept(true); extern float __scalbf(float __x, float __n) noexcept(true); +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassifyl(long double __value) noexcept(true) +# 21 + __attribute((const)); +# 24 +extern int __signbitl(long double __value) noexcept(true) +# 25 + __attribute((const)); +# 29 +extern int __isinfl(long double __value) noexcept(true) +# 30 + __attribute((const)); +# 33 +extern int __finitel(long double __value) noexcept(true) +# 34 + __attribute((const)); +# 37 +extern int __isnanl(long double __value) noexcept(true) +# 38 + __attribute((const)); +# 41 +extern int __iseqsigl(long double __x, long double __y) noexcept(true); +# 44 +extern int __issignalingl(long double __value) noexcept(true) +# 45 + __attribute((const)); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern long double acosl(long double __x) noexcept(true); extern long double __acosl(long double __x) noexcept(true); +# 55 +extern long double asinl(long double __x) noexcept(true); extern long double __asinl(long double __x) noexcept(true); +# 57 +extern long double atanl(long double __x) noexcept(true); extern long double __atanl(long double __x) noexcept(true); +# 59 +extern long double atan2l(long double __y, long double __x) noexcept(true); extern long double __atan2l(long double __y, long double __x) noexcept(true); +# 62 +extern long double cosl(long double __x) noexcept(true); extern long double __cosl(long double __x) noexcept(true); +# 64 +extern long double sinl(long double __x) noexcept(true); extern long double __sinl(long double __x) noexcept(true); +# 66 +extern long double tanl(long double __x) noexcept(true); extern long double __tanl(long double __x) noexcept(true); +# 70 +extern long double acospil(long double __x) noexcept(true); extern long double __acospil(long double __x) noexcept(true); +# 72 +extern long double asinpil(long double __x) noexcept(true); extern long double __asinpil(long double __x) noexcept(true); +# 74 +extern long double atanpil(long double __x) noexcept(true); extern long double __atanpil(long double __x) noexcept(true); +# 76 +extern long double atan2pil(long double __y, long double __x) noexcept(true); extern long double __atan2pil(long double __y, long double __x) noexcept(true); +# 79 +extern long double cospil(long double __x) noexcept(true); extern long double __cospil(long double __x) noexcept(true); +# 81 +extern long double sinpil(long double __x) noexcept(true); extern long double __sinpil(long double __x) noexcept(true); +# 83 +extern long double tanpil(long double __x) noexcept(true); extern long double __tanpil(long double __x) noexcept(true); +# 89 +extern long double coshl(long double __x) noexcept(true); extern long double __coshl(long double __x) noexcept(true); +# 91 +extern long double sinhl(long double __x) noexcept(true); extern long double __sinhl(long double __x) noexcept(true); +# 93 +extern long double tanhl(long double __x) noexcept(true); extern long double __tanhl(long double __x) noexcept(true); +# 97 +extern void sincosl(long double __x, long double * __sinx, long double * __cosx) noexcept(true); extern void __sincosl(long double __x, long double * __sinx, long double * __cosx) noexcept(true); +# 103 +extern long double acoshl(long double __x) noexcept(true); extern long double __acoshl(long double __x) noexcept(true); +# 105 +extern long double asinhl(long double __x) noexcept(true); extern long double __asinhl(long double __x) noexcept(true); +# 107 +extern long double atanhl(long double __x) noexcept(true); extern long double __atanhl(long double __x) noexcept(true); +# 113 +extern long double expl(long double __x) noexcept(true); extern long double __expl(long double __x) noexcept(true); +# 116 +extern long double frexpl(long double __x, int * __exponent) noexcept(true); extern long double __frexpl(long double __x, int * __exponent) noexcept(true); +# 119 +extern long double ldexpl(long double __x, int __exponent) noexcept(true); extern long double __ldexpl(long double __x, int __exponent) noexcept(true); +# 122 +extern long double logl(long double __x) noexcept(true); extern long double __logl(long double __x) noexcept(true); +# 125 +extern long double log10l(long double __x) noexcept(true); extern long double __log10l(long double __x) noexcept(true); +# 128 +extern long double modfl(long double __x, long double * __iptr) noexcept(true); extern long double __modfl(long double __x, long double * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern long double exp10l(long double __x) noexcept(true); extern long double __exp10l(long double __x) noexcept(true); +# 135 +extern long double exp2m1l(long double __x) noexcept(true); extern long double __exp2m1l(long double __x) noexcept(true); +# 138 +extern long double exp10m1l(long double __x) noexcept(true); extern long double __exp10m1l(long double __x) noexcept(true); +# 141 +extern long double log2p1l(long double __x) noexcept(true); extern long double __log2p1l(long double __x) noexcept(true); +# 144 +extern long double log10p1l(long double __x) noexcept(true); extern long double __log10p1l(long double __x) noexcept(true); +# 147 +extern long double logp1l(long double __x) noexcept(true); extern long double __logp1l(long double __x) noexcept(true); +# 152 +extern long double expm1l(long double __x) noexcept(true); extern long double __expm1l(long double __x) noexcept(true); +# 155 +extern long double log1pl(long double __x) noexcept(true); extern long double __log1pl(long double __x) noexcept(true); +# 158 +extern long double logbl(long double __x) noexcept(true); extern long double __logbl(long double __x) noexcept(true); +# 163 +extern long double exp2l(long double __x) noexcept(true); extern long double __exp2l(long double __x) noexcept(true); +# 166 +extern long double log2l(long double __x) noexcept(true); extern long double __log2l(long double __x) noexcept(true); +# 173 +extern long double powl(long double __x, long double __y) noexcept(true); extern long double __powl(long double __x, long double __y) noexcept(true); +# 176 +extern long double sqrtl(long double __x) noexcept(true); extern long double __sqrtl(long double __x) noexcept(true); +# 180 +extern long double hypotl(long double __x, long double __y) noexcept(true); extern long double __hypotl(long double __x, long double __y) noexcept(true); +# 185 +extern long double cbrtl(long double __x) noexcept(true); extern long double __cbrtl(long double __x) noexcept(true); +# 192 +extern long double ceill(long double __x) noexcept(true) __attribute((const)); +# 195 +extern long double fabsl(long double __x) noexcept(true) __attribute((const)); +# 198 +extern long double floorl(long double __x) noexcept(true) __attribute((const)); +# 201 +extern long double fmodl(long double __x, long double __y) noexcept(true); extern long double __fmodl(long double __x, long double __y) noexcept(true); +# 210 "/usr/include/bits/mathcalls.h" 3 +extern int isinfl(long double __value) noexcept(true) +# 211 + __attribute((const)); +# 216 +extern int finitel(long double __value) noexcept(true) +# 217 + __attribute((const)); +# 220 +extern long double dreml(long double __x, long double __y) noexcept(true); extern long double __dreml(long double __x, long double __y) noexcept(true); +# 224 +extern long double significandl(long double __x) noexcept(true); extern long double __significandl(long double __x) noexcept(true); +# 231 +extern long double copysignl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 236 +extern long double nanl(const char * __tagb) noexcept(true); extern long double __nanl(const char * __tagb) noexcept(true); +# 246 "/usr/include/bits/mathcalls.h" 3 +extern int isnanl(long double __value) noexcept(true) +# 247 + __attribute((const)); +# 253 +extern long double j0l(long double) noexcept(true); extern long double __j0l(long double) noexcept(true); +# 254 +extern long double j1l(long double) noexcept(true); extern long double __j1l(long double) noexcept(true); +# 255 +extern long double jnl(int, long double) noexcept(true); extern long double __jnl(int, long double) noexcept(true); +# 256 +extern long double y0l(long double) noexcept(true); extern long double __y0l(long double) noexcept(true); +# 257 +extern long double y1l(long double) noexcept(true); extern long double __y1l(long double) noexcept(true); +# 258 +extern long double ynl(int, long double) noexcept(true); extern long double __ynl(int, long double) noexcept(true); +# 264 +extern long double erfl(long double) noexcept(true); extern long double __erfl(long double) noexcept(true); +# 265 +extern long double erfcl(long double) noexcept(true); extern long double __erfcl(long double) noexcept(true); +# 266 +extern long double lgammal(long double) noexcept(true); extern long double __lgammal(long double) noexcept(true); +# 271 +extern long double tgammal(long double) noexcept(true); extern long double __tgammal(long double) noexcept(true); +# 277 +extern long double gammal(long double) noexcept(true); extern long double __gammal(long double) noexcept(true); +# 285 +extern long double lgammal_r(long double, int * __signgamp) noexcept(true); extern long double __lgammal_r(long double, int * __signgamp) noexcept(true); +# 292 +extern long double rintl(long double __x) noexcept(true); extern long double __rintl(long double __x) noexcept(true); +# 295 +extern long double nextafterl(long double __x, long double __y) noexcept(true); extern long double __nextafterl(long double __x, long double __y) noexcept(true); +# 297 +extern long double nexttowardl(long double __x, long double __y) noexcept(true); extern long double __nexttowardl(long double __x, long double __y) noexcept(true); +# 302 +extern long double nextdownl(long double __x) noexcept(true); extern long double __nextdownl(long double __x) noexcept(true); +# 304 +extern long double nextupl(long double __x) noexcept(true); extern long double __nextupl(long double __x) noexcept(true); +# 308 +extern long double remainderl(long double __x, long double __y) noexcept(true); extern long double __remainderl(long double __x, long double __y) noexcept(true); +# 312 +extern long double scalbnl(long double __x, int __n) noexcept(true); extern long double __scalbnl(long double __x, int __n) noexcept(true); +# 316 +extern int ilogbl(long double __x) noexcept(true); extern int __ilogbl(long double __x) noexcept(true); +# 321 +extern long llogbl(long double __x) noexcept(true); extern long __llogbl(long double __x) noexcept(true); +# 326 +extern long double scalblnl(long double __x, long __n) noexcept(true); extern long double __scalblnl(long double __x, long __n) noexcept(true); +# 330 +extern long double nearbyintl(long double __x) noexcept(true); extern long double __nearbyintl(long double __x) noexcept(true); +# 334 +extern long double roundl(long double __x) noexcept(true) __attribute((const)); +# 338 +extern long double truncl(long double __x) noexcept(true) __attribute((const)); +# 343 +extern long double remquol(long double __x, long double __y, int * __quo) noexcept(true); extern long double __remquol(long double __x, long double __y, int * __quo) noexcept(true); +# 350 +extern long lrintl(long double __x) noexcept(true); extern long __lrintl(long double __x) noexcept(true); +# 352 +__extension__ extern long long llrintl(long double __x) noexcept(true); extern long long __llrintl(long double __x) noexcept(true); +# 356 +extern long lroundl(long double __x) noexcept(true); extern long __lroundl(long double __x) noexcept(true); +# 358 +__extension__ extern long long llroundl(long double __x) noexcept(true); extern long long __llroundl(long double __x) noexcept(true); +# 362 +extern long double fdiml(long double __x, long double __y) noexcept(true); extern long double __fdiml(long double __x, long double __y) noexcept(true); +# 366 +extern long double fmaxl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 369 +extern long double fminl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 373 +extern long double fmal(long double __x, long double __y, long double __z) noexcept(true); extern long double __fmal(long double __x, long double __y, long double __z) noexcept(true); +# 378 +extern long double roundevenl(long double __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpl(long double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpl(long double __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpl(long double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpl(long double __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxl(long double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxl(long double __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxl(long double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxl(long double __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizel(long double * __cx, const long double * __x) noexcept(true); +# 410 +extern long double fmaxmagl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 413 +extern long double fminmagl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 418 +extern long double fmaximuml(long double __x, long double __y) noexcept(true) __attribute((const)); +# 421 +extern long double fminimuml(long double __x, long double __y) noexcept(true) __attribute((const)); +# 424 +extern long double fmaximum_numl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 427 +extern long double fminimum_numl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 430 +extern long double fmaximum_magl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 433 +extern long double fminimum_magl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 436 +extern long double fmaximum_mag_numl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 439 +extern long double fminimum_mag_numl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderl(const long double * __x, const long double * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagl(const long double * __x, const long double * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern long double getpayloadl(const long double * __x) noexcept(true); extern long double __getpayloadl(const long double * __x) noexcept(true); +# 457 +extern int setpayloadl(long double * __x, long double __payload) noexcept(true); +# 460 +extern int setpayloadsigl(long double * __x, long double __payload) noexcept(true); +# 468 +extern long double scalbl(long double __x, long double __n) noexcept(true); extern long double __scalbl(long double __x, long double __n) noexcept(true); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float32 acosf32(_Float32 __x) noexcept(true); extern _Float32 __acosf32(_Float32 __x) noexcept(true); +# 55 +extern _Float32 asinf32(_Float32 __x) noexcept(true); extern _Float32 __asinf32(_Float32 __x) noexcept(true); +# 57 +extern _Float32 atanf32(_Float32 __x) noexcept(true); extern _Float32 __atanf32(_Float32 __x) noexcept(true); +# 59 +extern _Float32 atan2f32(_Float32 __y, _Float32 __x) noexcept(true); extern _Float32 __atan2f32(_Float32 __y, _Float32 __x) noexcept(true); +# 62 +extern _Float32 cosf32(_Float32 __x) noexcept(true); extern _Float32 __cosf32(_Float32 __x) noexcept(true); +# 64 +extern _Float32 sinf32(_Float32 __x) noexcept(true); extern _Float32 __sinf32(_Float32 __x) noexcept(true); +# 66 +extern _Float32 tanf32(_Float32 __x) noexcept(true); extern _Float32 __tanf32(_Float32 __x) noexcept(true); +# 70 +extern _Float32 acospif32(_Float32 __x) noexcept(true); extern _Float32 __acospif32(_Float32 __x) noexcept(true); +# 72 +extern _Float32 asinpif32(_Float32 __x) noexcept(true); extern _Float32 __asinpif32(_Float32 __x) noexcept(true); +# 74 +extern _Float32 atanpif32(_Float32 __x) noexcept(true); extern _Float32 __atanpif32(_Float32 __x) noexcept(true); +# 76 +extern _Float32 atan2pif32(_Float32 __y, _Float32 __x) noexcept(true); extern _Float32 __atan2pif32(_Float32 __y, _Float32 __x) noexcept(true); +# 79 +extern _Float32 cospif32(_Float32 __x) noexcept(true); extern _Float32 __cospif32(_Float32 __x) noexcept(true); +# 81 +extern _Float32 sinpif32(_Float32 __x) noexcept(true); extern _Float32 __sinpif32(_Float32 __x) noexcept(true); +# 83 +extern _Float32 tanpif32(_Float32 __x) noexcept(true); extern _Float32 __tanpif32(_Float32 __x) noexcept(true); +# 89 +extern _Float32 coshf32(_Float32 __x) noexcept(true); extern _Float32 __coshf32(_Float32 __x) noexcept(true); +# 91 +extern _Float32 sinhf32(_Float32 __x) noexcept(true); extern _Float32 __sinhf32(_Float32 __x) noexcept(true); +# 93 +extern _Float32 tanhf32(_Float32 __x) noexcept(true); extern _Float32 __tanhf32(_Float32 __x) noexcept(true); +# 97 +extern void sincosf32(_Float32 __x, _Float32 * __sinx, _Float32 * __cosx) noexcept(true); extern void __sincosf32(_Float32 __x, _Float32 * __sinx, _Float32 * __cosx) noexcept(true); +# 103 +extern _Float32 acoshf32(_Float32 __x) noexcept(true); extern _Float32 __acoshf32(_Float32 __x) noexcept(true); +# 105 +extern _Float32 asinhf32(_Float32 __x) noexcept(true); extern _Float32 __asinhf32(_Float32 __x) noexcept(true); +# 107 +extern _Float32 atanhf32(_Float32 __x) noexcept(true); extern _Float32 __atanhf32(_Float32 __x) noexcept(true); +# 113 +extern _Float32 expf32(_Float32 __x) noexcept(true); extern _Float32 __expf32(_Float32 __x) noexcept(true); +# 116 +extern _Float32 frexpf32(_Float32 __x, int * __exponent) noexcept(true); extern _Float32 __frexpf32(_Float32 __x, int * __exponent) noexcept(true); +# 119 +extern _Float32 ldexpf32(_Float32 __x, int __exponent) noexcept(true); extern _Float32 __ldexpf32(_Float32 __x, int __exponent) noexcept(true); +# 122 +extern _Float32 logf32(_Float32 __x) noexcept(true); extern _Float32 __logf32(_Float32 __x) noexcept(true); +# 125 +extern _Float32 log10f32(_Float32 __x) noexcept(true); extern _Float32 __log10f32(_Float32 __x) noexcept(true); +# 128 +extern _Float32 modff32(_Float32 __x, _Float32 * __iptr) noexcept(true); extern _Float32 __modff32(_Float32 __x, _Float32 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float32 exp10f32(_Float32 __x) noexcept(true); extern _Float32 __exp10f32(_Float32 __x) noexcept(true); +# 135 +extern _Float32 exp2m1f32(_Float32 __x) noexcept(true); extern _Float32 __exp2m1f32(_Float32 __x) noexcept(true); +# 138 +extern _Float32 exp10m1f32(_Float32 __x) noexcept(true); extern _Float32 __exp10m1f32(_Float32 __x) noexcept(true); +# 141 +extern _Float32 log2p1f32(_Float32 __x) noexcept(true); extern _Float32 __log2p1f32(_Float32 __x) noexcept(true); +# 144 +extern _Float32 log10p1f32(_Float32 __x) noexcept(true); extern _Float32 __log10p1f32(_Float32 __x) noexcept(true); +# 147 +extern _Float32 logp1f32(_Float32 __x) noexcept(true); extern _Float32 __logp1f32(_Float32 __x) noexcept(true); +# 152 +extern _Float32 expm1f32(_Float32 __x) noexcept(true); extern _Float32 __expm1f32(_Float32 __x) noexcept(true); +# 155 +extern _Float32 log1pf32(_Float32 __x) noexcept(true); extern _Float32 __log1pf32(_Float32 __x) noexcept(true); +# 158 +extern _Float32 logbf32(_Float32 __x) noexcept(true); extern _Float32 __logbf32(_Float32 __x) noexcept(true); +# 163 +extern _Float32 exp2f32(_Float32 __x) noexcept(true); extern _Float32 __exp2f32(_Float32 __x) noexcept(true); +# 166 +extern _Float32 log2f32(_Float32 __x) noexcept(true); extern _Float32 __log2f32(_Float32 __x) noexcept(true); +# 173 +extern _Float32 powf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __powf32(_Float32 __x, _Float32 __y) noexcept(true); +# 176 +extern _Float32 sqrtf32(_Float32 __x) noexcept(true); extern _Float32 __sqrtf32(_Float32 __x) noexcept(true); +# 180 +extern _Float32 hypotf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __hypotf32(_Float32 __x, _Float32 __y) noexcept(true); +# 185 +extern _Float32 cbrtf32(_Float32 __x) noexcept(true); extern _Float32 __cbrtf32(_Float32 __x) noexcept(true); +# 192 +extern _Float32 ceilf32(_Float32 __x) noexcept(true) __attribute((const)); +# 195 +extern _Float32 fabsf32(_Float32 __x) noexcept(true) __attribute((const)); +# 198 +extern _Float32 floorf32(_Float32 __x) noexcept(true) __attribute((const)); +# 201 +extern _Float32 fmodf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __fmodf32(_Float32 __x, _Float32 __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float32 copysignf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 236 +extern _Float32 nanf32(const char * __tagb) noexcept(true); extern _Float32 __nanf32(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float32 j0f32(_Float32) noexcept(true); extern _Float32 __j0f32(_Float32) noexcept(true); +# 254 +extern _Float32 j1f32(_Float32) noexcept(true); extern _Float32 __j1f32(_Float32) noexcept(true); +# 255 +extern _Float32 jnf32(int, _Float32) noexcept(true); extern _Float32 __jnf32(int, _Float32) noexcept(true); +# 256 +extern _Float32 y0f32(_Float32) noexcept(true); extern _Float32 __y0f32(_Float32) noexcept(true); +# 257 +extern _Float32 y1f32(_Float32) noexcept(true); extern _Float32 __y1f32(_Float32) noexcept(true); +# 258 +extern _Float32 ynf32(int, _Float32) noexcept(true); extern _Float32 __ynf32(int, _Float32) noexcept(true); +# 264 +extern _Float32 erff32(_Float32) noexcept(true); extern _Float32 __erff32(_Float32) noexcept(true); +# 265 +extern _Float32 erfcf32(_Float32) noexcept(true); extern _Float32 __erfcf32(_Float32) noexcept(true); +# 266 +extern _Float32 lgammaf32(_Float32) noexcept(true); extern _Float32 __lgammaf32(_Float32) noexcept(true); +# 271 +extern _Float32 tgammaf32(_Float32) noexcept(true); extern _Float32 __tgammaf32(_Float32) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float32 lgammaf32_r(_Float32, int * __signgamp) noexcept(true); extern _Float32 __lgammaf32_r(_Float32, int * __signgamp) noexcept(true); +# 292 +extern _Float32 rintf32(_Float32 __x) noexcept(true); extern _Float32 __rintf32(_Float32 __x) noexcept(true); +# 295 +extern _Float32 nextafterf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __nextafterf32(_Float32 __x, _Float32 __y) noexcept(true); +# 302 +extern _Float32 nextdownf32(_Float32 __x) noexcept(true); extern _Float32 __nextdownf32(_Float32 __x) noexcept(true); +# 304 +extern _Float32 nextupf32(_Float32 __x) noexcept(true); extern _Float32 __nextupf32(_Float32 __x) noexcept(true); +# 308 +extern _Float32 remainderf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __remainderf32(_Float32 __x, _Float32 __y) noexcept(true); +# 312 +extern _Float32 scalbnf32(_Float32 __x, int __n) noexcept(true); extern _Float32 __scalbnf32(_Float32 __x, int __n) noexcept(true); +# 316 +extern int ilogbf32(_Float32 __x) noexcept(true); extern int __ilogbf32(_Float32 __x) noexcept(true); +# 321 +extern long llogbf32(_Float32 __x) noexcept(true); extern long __llogbf32(_Float32 __x) noexcept(true); +# 326 +extern _Float32 scalblnf32(_Float32 __x, long __n) noexcept(true); extern _Float32 __scalblnf32(_Float32 __x, long __n) noexcept(true); +# 330 +extern _Float32 nearbyintf32(_Float32 __x) noexcept(true); extern _Float32 __nearbyintf32(_Float32 __x) noexcept(true); +# 334 +extern _Float32 roundf32(_Float32 __x) noexcept(true) __attribute((const)); +# 338 +extern _Float32 truncf32(_Float32 __x) noexcept(true) __attribute((const)); +# 343 +extern _Float32 remquof32(_Float32 __x, _Float32 __y, int * __quo) noexcept(true); extern _Float32 __remquof32(_Float32 __x, _Float32 __y, int * __quo) noexcept(true); +# 350 +extern long lrintf32(_Float32 __x) noexcept(true); extern long __lrintf32(_Float32 __x) noexcept(true); +# 352 +__extension__ extern long long llrintf32(_Float32 __x) noexcept(true); extern long long __llrintf32(_Float32 __x) noexcept(true); +# 356 +extern long lroundf32(_Float32 __x) noexcept(true); extern long __lroundf32(_Float32 __x) noexcept(true); +# 358 +__extension__ extern long long llroundf32(_Float32 __x) noexcept(true); extern long long __llroundf32(_Float32 __x) noexcept(true); +# 362 +extern _Float32 fdimf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __fdimf32(_Float32 __x, _Float32 __y) noexcept(true); +# 366 +extern _Float32 fmaxf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 369 +extern _Float32 fminf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 373 +extern _Float32 fmaf32(_Float32 __x, _Float32 __y, _Float32 __z) noexcept(true); extern _Float32 __fmaf32(_Float32 __x, _Float32 __y, _Float32 __z) noexcept(true); +# 378 +extern _Float32 roundevenf32(_Float32 __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef32(_Float32 * __cx, const _Float32 * __x) noexcept(true); +# 410 +extern _Float32 fmaxmagf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 413 +extern _Float32 fminmagf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 418 +extern _Float32 fmaximumf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 421 +extern _Float32 fminimumf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 424 +extern _Float32 fmaximum_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 427 +extern _Float32 fminimum_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 430 +extern _Float32 fmaximum_magf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 433 +extern _Float32 fminimum_magf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 436 +extern _Float32 fmaximum_mag_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 439 +extern _Float32 fminimum_mag_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf32(const _Float32 * __x, const _Float32 * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf32(const _Float32 * __x, const _Float32 * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float32 getpayloadf32(const _Float32 * __x) noexcept(true); extern _Float32 __getpayloadf32(const _Float32 * __x) noexcept(true); +# 457 +extern int setpayloadf32(_Float32 * __x, _Float32 __payload) noexcept(true); +# 460 +extern int setpayloadsigf32(_Float32 * __x, _Float32 __payload) noexcept(true); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float64 acosf64(_Float64 __x) noexcept(true); extern _Float64 __acosf64(_Float64 __x) noexcept(true); +# 55 +extern _Float64 asinf64(_Float64 __x) noexcept(true); extern _Float64 __asinf64(_Float64 __x) noexcept(true); +# 57 +extern _Float64 atanf64(_Float64 __x) noexcept(true); extern _Float64 __atanf64(_Float64 __x) noexcept(true); +# 59 +extern _Float64 atan2f64(_Float64 __y, _Float64 __x) noexcept(true); extern _Float64 __atan2f64(_Float64 __y, _Float64 __x) noexcept(true); +# 62 +extern _Float64 cosf64(_Float64 __x) noexcept(true); extern _Float64 __cosf64(_Float64 __x) noexcept(true); +# 64 +extern _Float64 sinf64(_Float64 __x) noexcept(true); extern _Float64 __sinf64(_Float64 __x) noexcept(true); +# 66 +extern _Float64 tanf64(_Float64 __x) noexcept(true); extern _Float64 __tanf64(_Float64 __x) noexcept(true); +# 70 +extern _Float64 acospif64(_Float64 __x) noexcept(true); extern _Float64 __acospif64(_Float64 __x) noexcept(true); +# 72 +extern _Float64 asinpif64(_Float64 __x) noexcept(true); extern _Float64 __asinpif64(_Float64 __x) noexcept(true); +# 74 +extern _Float64 atanpif64(_Float64 __x) noexcept(true); extern _Float64 __atanpif64(_Float64 __x) noexcept(true); +# 76 +extern _Float64 atan2pif64(_Float64 __y, _Float64 __x) noexcept(true); extern _Float64 __atan2pif64(_Float64 __y, _Float64 __x) noexcept(true); +# 79 +extern _Float64 cospif64(_Float64 __x) noexcept(true); extern _Float64 __cospif64(_Float64 __x) noexcept(true); +# 81 +extern _Float64 sinpif64(_Float64 __x) noexcept(true); extern _Float64 __sinpif64(_Float64 __x) noexcept(true); +# 83 +extern _Float64 tanpif64(_Float64 __x) noexcept(true); extern _Float64 __tanpif64(_Float64 __x) noexcept(true); +# 89 +extern _Float64 coshf64(_Float64 __x) noexcept(true); extern _Float64 __coshf64(_Float64 __x) noexcept(true); +# 91 +extern _Float64 sinhf64(_Float64 __x) noexcept(true); extern _Float64 __sinhf64(_Float64 __x) noexcept(true); +# 93 +extern _Float64 tanhf64(_Float64 __x) noexcept(true); extern _Float64 __tanhf64(_Float64 __x) noexcept(true); +# 97 +extern void sincosf64(_Float64 __x, _Float64 * __sinx, _Float64 * __cosx) noexcept(true); extern void __sincosf64(_Float64 __x, _Float64 * __sinx, _Float64 * __cosx) noexcept(true); +# 103 +extern _Float64 acoshf64(_Float64 __x) noexcept(true); extern _Float64 __acoshf64(_Float64 __x) noexcept(true); +# 105 +extern _Float64 asinhf64(_Float64 __x) noexcept(true); extern _Float64 __asinhf64(_Float64 __x) noexcept(true); +# 107 +extern _Float64 atanhf64(_Float64 __x) noexcept(true); extern _Float64 __atanhf64(_Float64 __x) noexcept(true); +# 113 +extern _Float64 expf64(_Float64 __x) noexcept(true); extern _Float64 __expf64(_Float64 __x) noexcept(true); +# 116 +extern _Float64 frexpf64(_Float64 __x, int * __exponent) noexcept(true); extern _Float64 __frexpf64(_Float64 __x, int * __exponent) noexcept(true); +# 119 +extern _Float64 ldexpf64(_Float64 __x, int __exponent) noexcept(true); extern _Float64 __ldexpf64(_Float64 __x, int __exponent) noexcept(true); +# 122 +extern _Float64 logf64(_Float64 __x) noexcept(true); extern _Float64 __logf64(_Float64 __x) noexcept(true); +# 125 +extern _Float64 log10f64(_Float64 __x) noexcept(true); extern _Float64 __log10f64(_Float64 __x) noexcept(true); +# 128 +extern _Float64 modff64(_Float64 __x, _Float64 * __iptr) noexcept(true); extern _Float64 __modff64(_Float64 __x, _Float64 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float64 exp10f64(_Float64 __x) noexcept(true); extern _Float64 __exp10f64(_Float64 __x) noexcept(true); +# 135 +extern _Float64 exp2m1f64(_Float64 __x) noexcept(true); extern _Float64 __exp2m1f64(_Float64 __x) noexcept(true); +# 138 +extern _Float64 exp10m1f64(_Float64 __x) noexcept(true); extern _Float64 __exp10m1f64(_Float64 __x) noexcept(true); +# 141 +extern _Float64 log2p1f64(_Float64 __x) noexcept(true); extern _Float64 __log2p1f64(_Float64 __x) noexcept(true); +# 144 +extern _Float64 log10p1f64(_Float64 __x) noexcept(true); extern _Float64 __log10p1f64(_Float64 __x) noexcept(true); +# 147 +extern _Float64 logp1f64(_Float64 __x) noexcept(true); extern _Float64 __logp1f64(_Float64 __x) noexcept(true); +# 152 +extern _Float64 expm1f64(_Float64 __x) noexcept(true); extern _Float64 __expm1f64(_Float64 __x) noexcept(true); +# 155 +extern _Float64 log1pf64(_Float64 __x) noexcept(true); extern _Float64 __log1pf64(_Float64 __x) noexcept(true); +# 158 +extern _Float64 logbf64(_Float64 __x) noexcept(true); extern _Float64 __logbf64(_Float64 __x) noexcept(true); +# 163 +extern _Float64 exp2f64(_Float64 __x) noexcept(true); extern _Float64 __exp2f64(_Float64 __x) noexcept(true); +# 166 +extern _Float64 log2f64(_Float64 __x) noexcept(true); extern _Float64 __log2f64(_Float64 __x) noexcept(true); +# 173 +extern _Float64 powf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __powf64(_Float64 __x, _Float64 __y) noexcept(true); +# 176 +extern _Float64 sqrtf64(_Float64 __x) noexcept(true); extern _Float64 __sqrtf64(_Float64 __x) noexcept(true); +# 180 +extern _Float64 hypotf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __hypotf64(_Float64 __x, _Float64 __y) noexcept(true); +# 185 +extern _Float64 cbrtf64(_Float64 __x) noexcept(true); extern _Float64 __cbrtf64(_Float64 __x) noexcept(true); +# 192 +extern _Float64 ceilf64(_Float64 __x) noexcept(true) __attribute((const)); +# 195 +extern _Float64 fabsf64(_Float64 __x) noexcept(true) __attribute((const)); +# 198 +extern _Float64 floorf64(_Float64 __x) noexcept(true) __attribute((const)); +# 201 +extern _Float64 fmodf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __fmodf64(_Float64 __x, _Float64 __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float64 copysignf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 236 +extern _Float64 nanf64(const char * __tagb) noexcept(true); extern _Float64 __nanf64(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float64 j0f64(_Float64) noexcept(true); extern _Float64 __j0f64(_Float64) noexcept(true); +# 254 +extern _Float64 j1f64(_Float64) noexcept(true); extern _Float64 __j1f64(_Float64) noexcept(true); +# 255 +extern _Float64 jnf64(int, _Float64) noexcept(true); extern _Float64 __jnf64(int, _Float64) noexcept(true); +# 256 +extern _Float64 y0f64(_Float64) noexcept(true); extern _Float64 __y0f64(_Float64) noexcept(true); +# 257 +extern _Float64 y1f64(_Float64) noexcept(true); extern _Float64 __y1f64(_Float64) noexcept(true); +# 258 +extern _Float64 ynf64(int, _Float64) noexcept(true); extern _Float64 __ynf64(int, _Float64) noexcept(true); +# 264 +extern _Float64 erff64(_Float64) noexcept(true); extern _Float64 __erff64(_Float64) noexcept(true); +# 265 +extern _Float64 erfcf64(_Float64) noexcept(true); extern _Float64 __erfcf64(_Float64) noexcept(true); +# 266 +extern _Float64 lgammaf64(_Float64) noexcept(true); extern _Float64 __lgammaf64(_Float64) noexcept(true); +# 271 +extern _Float64 tgammaf64(_Float64) noexcept(true); extern _Float64 __tgammaf64(_Float64) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float64 lgammaf64_r(_Float64, int * __signgamp) noexcept(true); extern _Float64 __lgammaf64_r(_Float64, int * __signgamp) noexcept(true); +# 292 +extern _Float64 rintf64(_Float64 __x) noexcept(true); extern _Float64 __rintf64(_Float64 __x) noexcept(true); +# 295 +extern _Float64 nextafterf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __nextafterf64(_Float64 __x, _Float64 __y) noexcept(true); +# 302 +extern _Float64 nextdownf64(_Float64 __x) noexcept(true); extern _Float64 __nextdownf64(_Float64 __x) noexcept(true); +# 304 +extern _Float64 nextupf64(_Float64 __x) noexcept(true); extern _Float64 __nextupf64(_Float64 __x) noexcept(true); +# 308 +extern _Float64 remainderf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __remainderf64(_Float64 __x, _Float64 __y) noexcept(true); +# 312 +extern _Float64 scalbnf64(_Float64 __x, int __n) noexcept(true); extern _Float64 __scalbnf64(_Float64 __x, int __n) noexcept(true); +# 316 +extern int ilogbf64(_Float64 __x) noexcept(true); extern int __ilogbf64(_Float64 __x) noexcept(true); +# 321 +extern long llogbf64(_Float64 __x) noexcept(true); extern long __llogbf64(_Float64 __x) noexcept(true); +# 326 +extern _Float64 scalblnf64(_Float64 __x, long __n) noexcept(true); extern _Float64 __scalblnf64(_Float64 __x, long __n) noexcept(true); +# 330 +extern _Float64 nearbyintf64(_Float64 __x) noexcept(true); extern _Float64 __nearbyintf64(_Float64 __x) noexcept(true); +# 334 +extern _Float64 roundf64(_Float64 __x) noexcept(true) __attribute((const)); +# 338 +extern _Float64 truncf64(_Float64 __x) noexcept(true) __attribute((const)); +# 343 +extern _Float64 remquof64(_Float64 __x, _Float64 __y, int * __quo) noexcept(true); extern _Float64 __remquof64(_Float64 __x, _Float64 __y, int * __quo) noexcept(true); +# 350 +extern long lrintf64(_Float64 __x) noexcept(true); extern long __lrintf64(_Float64 __x) noexcept(true); +# 352 +__extension__ extern long long llrintf64(_Float64 __x) noexcept(true); extern long long __llrintf64(_Float64 __x) noexcept(true); +# 356 +extern long lroundf64(_Float64 __x) noexcept(true); extern long __lroundf64(_Float64 __x) noexcept(true); +# 358 +__extension__ extern long long llroundf64(_Float64 __x) noexcept(true); extern long long __llroundf64(_Float64 __x) noexcept(true); +# 362 +extern _Float64 fdimf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __fdimf64(_Float64 __x, _Float64 __y) noexcept(true); +# 366 +extern _Float64 fmaxf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 369 +extern _Float64 fminf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 373 +extern _Float64 fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); extern _Float64 __fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); +# 378 +extern _Float64 roundevenf64(_Float64 __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef64(_Float64 * __cx, const _Float64 * __x) noexcept(true); +# 410 +extern _Float64 fmaxmagf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 413 +extern _Float64 fminmagf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 418 +extern _Float64 fmaximumf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 421 +extern _Float64 fminimumf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 424 +extern _Float64 fmaximum_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 427 +extern _Float64 fminimum_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 430 +extern _Float64 fmaximum_magf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 433 +extern _Float64 fminimum_magf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 436 +extern _Float64 fmaximum_mag_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 439 +extern _Float64 fminimum_mag_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf64(const _Float64 * __x, const _Float64 * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf64(const _Float64 * __x, const _Float64 * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float64 getpayloadf64(const _Float64 * __x) noexcept(true); extern _Float64 __getpayloadf64(const _Float64 * __x) noexcept(true); +# 457 +extern int setpayloadf64(_Float64 * __x, _Float64 __payload) noexcept(true); +# 460 +extern int setpayloadsigf64(_Float64 * __x, _Float64 __payload) noexcept(true); +# 20 "/usr/include/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassifyf128(_Float128 __value) noexcept(true) +# 21 + __attribute((const)); +# 24 +extern int __signbitf128(_Float128 __value) noexcept(true) +# 25 + __attribute((const)); +# 29 +extern int __isinff128(_Float128 __value) noexcept(true) +# 30 + __attribute((const)); +# 33 +extern int __finitef128(_Float128 __value) noexcept(true) +# 34 + __attribute((const)); +# 37 +extern int __isnanf128(_Float128 __value) noexcept(true) +# 38 + __attribute((const)); +# 41 +extern int __iseqsigf128(_Float128 __x, _Float128 __y) noexcept(true); +# 44 +extern int __issignalingf128(_Float128 __value) noexcept(true) +# 45 + __attribute((const)); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float128 acosf128(_Float128 __x) noexcept(true); extern _Float128 __acosf128(_Float128 __x) noexcept(true); +# 55 +extern _Float128 asinf128(_Float128 __x) noexcept(true); extern _Float128 __asinf128(_Float128 __x) noexcept(true); +# 57 +extern _Float128 atanf128(_Float128 __x) noexcept(true); extern _Float128 __atanf128(_Float128 __x) noexcept(true); +# 59 +extern _Float128 atan2f128(_Float128 __y, _Float128 __x) noexcept(true); extern _Float128 __atan2f128(_Float128 __y, _Float128 __x) noexcept(true); +# 62 +extern _Float128 cosf128(_Float128 __x) noexcept(true); extern _Float128 __cosf128(_Float128 __x) noexcept(true); +# 64 +extern _Float128 sinf128(_Float128 __x) noexcept(true); extern _Float128 __sinf128(_Float128 __x) noexcept(true); +# 66 +extern _Float128 tanf128(_Float128 __x) noexcept(true); extern _Float128 __tanf128(_Float128 __x) noexcept(true); +# 70 +extern _Float128 acospif128(_Float128 __x) noexcept(true); extern _Float128 __acospif128(_Float128 __x) noexcept(true); +# 72 +extern _Float128 asinpif128(_Float128 __x) noexcept(true); extern _Float128 __asinpif128(_Float128 __x) noexcept(true); +# 74 +extern _Float128 atanpif128(_Float128 __x) noexcept(true); extern _Float128 __atanpif128(_Float128 __x) noexcept(true); +# 76 +extern _Float128 atan2pif128(_Float128 __y, _Float128 __x) noexcept(true); extern _Float128 __atan2pif128(_Float128 __y, _Float128 __x) noexcept(true); +# 79 +extern _Float128 cospif128(_Float128 __x) noexcept(true); extern _Float128 __cospif128(_Float128 __x) noexcept(true); +# 81 +extern _Float128 sinpif128(_Float128 __x) noexcept(true); extern _Float128 __sinpif128(_Float128 __x) noexcept(true); +# 83 +extern _Float128 tanpif128(_Float128 __x) noexcept(true); extern _Float128 __tanpif128(_Float128 __x) noexcept(true); +# 89 +extern _Float128 coshf128(_Float128 __x) noexcept(true); extern _Float128 __coshf128(_Float128 __x) noexcept(true); +# 91 +extern _Float128 sinhf128(_Float128 __x) noexcept(true); extern _Float128 __sinhf128(_Float128 __x) noexcept(true); +# 93 +extern _Float128 tanhf128(_Float128 __x) noexcept(true); extern _Float128 __tanhf128(_Float128 __x) noexcept(true); +# 97 +extern void sincosf128(_Float128 __x, _Float128 * __sinx, _Float128 * __cosx) noexcept(true); extern void __sincosf128(_Float128 __x, _Float128 * __sinx, _Float128 * __cosx) noexcept(true); +# 103 +extern _Float128 acoshf128(_Float128 __x) noexcept(true); extern _Float128 __acoshf128(_Float128 __x) noexcept(true); +# 105 +extern _Float128 asinhf128(_Float128 __x) noexcept(true); extern _Float128 __asinhf128(_Float128 __x) noexcept(true); +# 107 +extern _Float128 atanhf128(_Float128 __x) noexcept(true); extern _Float128 __atanhf128(_Float128 __x) noexcept(true); +# 113 +extern _Float128 expf128(_Float128 __x) noexcept(true); extern _Float128 __expf128(_Float128 __x) noexcept(true); +# 116 +extern _Float128 frexpf128(_Float128 __x, int * __exponent) noexcept(true); extern _Float128 __frexpf128(_Float128 __x, int * __exponent) noexcept(true); +# 119 +extern _Float128 ldexpf128(_Float128 __x, int __exponent) noexcept(true); extern _Float128 __ldexpf128(_Float128 __x, int __exponent) noexcept(true); +# 122 +extern _Float128 logf128(_Float128 __x) noexcept(true); extern _Float128 __logf128(_Float128 __x) noexcept(true); +# 125 +extern _Float128 log10f128(_Float128 __x) noexcept(true); extern _Float128 __log10f128(_Float128 __x) noexcept(true); +# 128 +extern _Float128 modff128(_Float128 __x, _Float128 * __iptr) noexcept(true); extern _Float128 __modff128(_Float128 __x, _Float128 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float128 exp10f128(_Float128 __x) noexcept(true); extern _Float128 __exp10f128(_Float128 __x) noexcept(true); +# 135 +extern _Float128 exp2m1f128(_Float128 __x) noexcept(true); extern _Float128 __exp2m1f128(_Float128 __x) noexcept(true); +# 138 +extern _Float128 exp10m1f128(_Float128 __x) noexcept(true); extern _Float128 __exp10m1f128(_Float128 __x) noexcept(true); +# 141 +extern _Float128 log2p1f128(_Float128 __x) noexcept(true); extern _Float128 __log2p1f128(_Float128 __x) noexcept(true); +# 144 +extern _Float128 log10p1f128(_Float128 __x) noexcept(true); extern _Float128 __log10p1f128(_Float128 __x) noexcept(true); +# 147 +extern _Float128 logp1f128(_Float128 __x) noexcept(true); extern _Float128 __logp1f128(_Float128 __x) noexcept(true); +# 152 +extern _Float128 expm1f128(_Float128 __x) noexcept(true); extern _Float128 __expm1f128(_Float128 __x) noexcept(true); +# 155 +extern _Float128 log1pf128(_Float128 __x) noexcept(true); extern _Float128 __log1pf128(_Float128 __x) noexcept(true); +# 158 +extern _Float128 logbf128(_Float128 __x) noexcept(true); extern _Float128 __logbf128(_Float128 __x) noexcept(true); +# 163 +extern _Float128 exp2f128(_Float128 __x) noexcept(true); extern _Float128 __exp2f128(_Float128 __x) noexcept(true); +# 166 +extern _Float128 log2f128(_Float128 __x) noexcept(true); extern _Float128 __log2f128(_Float128 __x) noexcept(true); +# 173 +extern _Float128 powf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __powf128(_Float128 __x, _Float128 __y) noexcept(true); +# 176 +extern _Float128 sqrtf128(_Float128 __x) noexcept(true); extern _Float128 __sqrtf128(_Float128 __x) noexcept(true); +# 180 +extern _Float128 hypotf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __hypotf128(_Float128 __x, _Float128 __y) noexcept(true); +# 185 +extern _Float128 cbrtf128(_Float128 __x) noexcept(true); extern _Float128 __cbrtf128(_Float128 __x) noexcept(true); +# 192 +extern _Float128 ceilf128(_Float128 __x) noexcept(true) __attribute((const)); +# 195 +extern _Float128 fabsf128(_Float128 __x) noexcept(true) __attribute((const)); +# 198 +extern _Float128 floorf128(_Float128 __x) noexcept(true) __attribute((const)); +# 201 +extern _Float128 fmodf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __fmodf128(_Float128 __x, _Float128 __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float128 copysignf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 236 +extern _Float128 nanf128(const char * __tagb) noexcept(true); extern _Float128 __nanf128(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float128 j0f128(_Float128) noexcept(true); extern _Float128 __j0f128(_Float128) noexcept(true); +# 254 +extern _Float128 j1f128(_Float128) noexcept(true); extern _Float128 __j1f128(_Float128) noexcept(true); +# 255 +extern _Float128 jnf128(int, _Float128) noexcept(true); extern _Float128 __jnf128(int, _Float128) noexcept(true); +# 256 +extern _Float128 y0f128(_Float128) noexcept(true); extern _Float128 __y0f128(_Float128) noexcept(true); +# 257 +extern _Float128 y1f128(_Float128) noexcept(true); extern _Float128 __y1f128(_Float128) noexcept(true); +# 258 +extern _Float128 ynf128(int, _Float128) noexcept(true); extern _Float128 __ynf128(int, _Float128) noexcept(true); +# 264 +extern _Float128 erff128(_Float128) noexcept(true); extern _Float128 __erff128(_Float128) noexcept(true); +# 265 +extern _Float128 erfcf128(_Float128) noexcept(true); extern _Float128 __erfcf128(_Float128) noexcept(true); +# 266 +extern _Float128 lgammaf128(_Float128) noexcept(true); extern _Float128 __lgammaf128(_Float128) noexcept(true); +# 271 +extern _Float128 tgammaf128(_Float128) noexcept(true); extern _Float128 __tgammaf128(_Float128) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float128 lgammaf128_r(_Float128, int * __signgamp) noexcept(true); extern _Float128 __lgammaf128_r(_Float128, int * __signgamp) noexcept(true); +# 292 +extern _Float128 rintf128(_Float128 __x) noexcept(true); extern _Float128 __rintf128(_Float128 __x) noexcept(true); +# 295 +extern _Float128 nextafterf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __nextafterf128(_Float128 __x, _Float128 __y) noexcept(true); +# 302 +extern _Float128 nextdownf128(_Float128 __x) noexcept(true); extern _Float128 __nextdownf128(_Float128 __x) noexcept(true); +# 304 +extern _Float128 nextupf128(_Float128 __x) noexcept(true); extern _Float128 __nextupf128(_Float128 __x) noexcept(true); +# 308 +extern _Float128 remainderf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __remainderf128(_Float128 __x, _Float128 __y) noexcept(true); +# 312 +extern _Float128 scalbnf128(_Float128 __x, int __n) noexcept(true); extern _Float128 __scalbnf128(_Float128 __x, int __n) noexcept(true); +# 316 +extern int ilogbf128(_Float128 __x) noexcept(true); extern int __ilogbf128(_Float128 __x) noexcept(true); +# 321 +extern long llogbf128(_Float128 __x) noexcept(true); extern long __llogbf128(_Float128 __x) noexcept(true); +# 326 +extern _Float128 scalblnf128(_Float128 __x, long __n) noexcept(true); extern _Float128 __scalblnf128(_Float128 __x, long __n) noexcept(true); +# 330 +extern _Float128 nearbyintf128(_Float128 __x) noexcept(true); extern _Float128 __nearbyintf128(_Float128 __x) noexcept(true); +# 334 +extern _Float128 roundf128(_Float128 __x) noexcept(true) __attribute((const)); +# 338 +extern _Float128 truncf128(_Float128 __x) noexcept(true) __attribute((const)); +# 343 +extern _Float128 remquof128(_Float128 __x, _Float128 __y, int * __quo) noexcept(true); extern _Float128 __remquof128(_Float128 __x, _Float128 __y, int * __quo) noexcept(true); +# 350 +extern long lrintf128(_Float128 __x) noexcept(true); extern long __lrintf128(_Float128 __x) noexcept(true); +# 352 +__extension__ extern long long llrintf128(_Float128 __x) noexcept(true); extern long long __llrintf128(_Float128 __x) noexcept(true); +# 356 +extern long lroundf128(_Float128 __x) noexcept(true); extern long __lroundf128(_Float128 __x) noexcept(true); +# 358 +__extension__ extern long long llroundf128(_Float128 __x) noexcept(true); extern long long __llroundf128(_Float128 __x) noexcept(true); +# 362 +extern _Float128 fdimf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __fdimf128(_Float128 __x, _Float128 __y) noexcept(true); +# 366 +extern _Float128 fmaxf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 369 +extern _Float128 fminf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 373 +extern _Float128 fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); extern _Float128 __fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 378 +extern _Float128 roundevenf128(_Float128 __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef128(_Float128 * __cx, const _Float128 * __x) noexcept(true); +# 410 +extern _Float128 fmaxmagf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 413 +extern _Float128 fminmagf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 418 +extern _Float128 fmaximumf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 421 +extern _Float128 fminimumf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 424 +extern _Float128 fmaximum_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 427 +extern _Float128 fminimum_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 430 +extern _Float128 fmaximum_magf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 433 +extern _Float128 fminimum_magf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 436 +extern _Float128 fmaximum_mag_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 439 +extern _Float128 fminimum_mag_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf128(const _Float128 * __x, const _Float128 * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf128(const _Float128 * __x, const _Float128 * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float128 getpayloadf128(const _Float128 * __x) noexcept(true); extern _Float128 __getpayloadf128(const _Float128 * __x) noexcept(true); +# 457 +extern int setpayloadf128(_Float128 * __x, _Float128 __payload) noexcept(true); +# 460 +extern int setpayloadsigf128(_Float128 * __x, _Float128 __payload) noexcept(true); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float32x acosf32x(_Float32x __x) noexcept(true); extern _Float32x __acosf32x(_Float32x __x) noexcept(true); +# 55 +extern _Float32x asinf32x(_Float32x __x) noexcept(true); extern _Float32x __asinf32x(_Float32x __x) noexcept(true); +# 57 +extern _Float32x atanf32x(_Float32x __x) noexcept(true); extern _Float32x __atanf32x(_Float32x __x) noexcept(true); +# 59 +extern _Float32x atan2f32x(_Float32x __y, _Float32x __x) noexcept(true); extern _Float32x __atan2f32x(_Float32x __y, _Float32x __x) noexcept(true); +# 62 +extern _Float32x cosf32x(_Float32x __x) noexcept(true); extern _Float32x __cosf32x(_Float32x __x) noexcept(true); +# 64 +extern _Float32x sinf32x(_Float32x __x) noexcept(true); extern _Float32x __sinf32x(_Float32x __x) noexcept(true); +# 66 +extern _Float32x tanf32x(_Float32x __x) noexcept(true); extern _Float32x __tanf32x(_Float32x __x) noexcept(true); +# 70 +extern _Float32x acospif32x(_Float32x __x) noexcept(true); extern _Float32x __acospif32x(_Float32x __x) noexcept(true); +# 72 +extern _Float32x asinpif32x(_Float32x __x) noexcept(true); extern _Float32x __asinpif32x(_Float32x __x) noexcept(true); +# 74 +extern _Float32x atanpif32x(_Float32x __x) noexcept(true); extern _Float32x __atanpif32x(_Float32x __x) noexcept(true); +# 76 +extern _Float32x atan2pif32x(_Float32x __y, _Float32x __x) noexcept(true); extern _Float32x __atan2pif32x(_Float32x __y, _Float32x __x) noexcept(true); +# 79 +extern _Float32x cospif32x(_Float32x __x) noexcept(true); extern _Float32x __cospif32x(_Float32x __x) noexcept(true); +# 81 +extern _Float32x sinpif32x(_Float32x __x) noexcept(true); extern _Float32x __sinpif32x(_Float32x __x) noexcept(true); +# 83 +extern _Float32x tanpif32x(_Float32x __x) noexcept(true); extern _Float32x __tanpif32x(_Float32x __x) noexcept(true); +# 89 +extern _Float32x coshf32x(_Float32x __x) noexcept(true); extern _Float32x __coshf32x(_Float32x __x) noexcept(true); +# 91 +extern _Float32x sinhf32x(_Float32x __x) noexcept(true); extern _Float32x __sinhf32x(_Float32x __x) noexcept(true); +# 93 +extern _Float32x tanhf32x(_Float32x __x) noexcept(true); extern _Float32x __tanhf32x(_Float32x __x) noexcept(true); +# 97 +extern void sincosf32x(_Float32x __x, _Float32x * __sinx, _Float32x * __cosx) noexcept(true); extern void __sincosf32x(_Float32x __x, _Float32x * __sinx, _Float32x * __cosx) noexcept(true); +# 103 +extern _Float32x acoshf32x(_Float32x __x) noexcept(true); extern _Float32x __acoshf32x(_Float32x __x) noexcept(true); +# 105 +extern _Float32x asinhf32x(_Float32x __x) noexcept(true); extern _Float32x __asinhf32x(_Float32x __x) noexcept(true); +# 107 +extern _Float32x atanhf32x(_Float32x __x) noexcept(true); extern _Float32x __atanhf32x(_Float32x __x) noexcept(true); +# 113 +extern _Float32x expf32x(_Float32x __x) noexcept(true); extern _Float32x __expf32x(_Float32x __x) noexcept(true); +# 116 +extern _Float32x frexpf32x(_Float32x __x, int * __exponent) noexcept(true); extern _Float32x __frexpf32x(_Float32x __x, int * __exponent) noexcept(true); +# 119 +extern _Float32x ldexpf32x(_Float32x __x, int __exponent) noexcept(true); extern _Float32x __ldexpf32x(_Float32x __x, int __exponent) noexcept(true); +# 122 +extern _Float32x logf32x(_Float32x __x) noexcept(true); extern _Float32x __logf32x(_Float32x __x) noexcept(true); +# 125 +extern _Float32x log10f32x(_Float32x __x) noexcept(true); extern _Float32x __log10f32x(_Float32x __x) noexcept(true); +# 128 +extern _Float32x modff32x(_Float32x __x, _Float32x * __iptr) noexcept(true); extern _Float32x __modff32x(_Float32x __x, _Float32x * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float32x exp10f32x(_Float32x __x) noexcept(true); extern _Float32x __exp10f32x(_Float32x __x) noexcept(true); +# 135 +extern _Float32x exp2m1f32x(_Float32x __x) noexcept(true); extern _Float32x __exp2m1f32x(_Float32x __x) noexcept(true); +# 138 +extern _Float32x exp10m1f32x(_Float32x __x) noexcept(true); extern _Float32x __exp10m1f32x(_Float32x __x) noexcept(true); +# 141 +extern _Float32x log2p1f32x(_Float32x __x) noexcept(true); extern _Float32x __log2p1f32x(_Float32x __x) noexcept(true); +# 144 +extern _Float32x log10p1f32x(_Float32x __x) noexcept(true); extern _Float32x __log10p1f32x(_Float32x __x) noexcept(true); +# 147 +extern _Float32x logp1f32x(_Float32x __x) noexcept(true); extern _Float32x __logp1f32x(_Float32x __x) noexcept(true); +# 152 +extern _Float32x expm1f32x(_Float32x __x) noexcept(true); extern _Float32x __expm1f32x(_Float32x __x) noexcept(true); +# 155 +extern _Float32x log1pf32x(_Float32x __x) noexcept(true); extern _Float32x __log1pf32x(_Float32x __x) noexcept(true); +# 158 +extern _Float32x logbf32x(_Float32x __x) noexcept(true); extern _Float32x __logbf32x(_Float32x __x) noexcept(true); +# 163 +extern _Float32x exp2f32x(_Float32x __x) noexcept(true); extern _Float32x __exp2f32x(_Float32x __x) noexcept(true); +# 166 +extern _Float32x log2f32x(_Float32x __x) noexcept(true); extern _Float32x __log2f32x(_Float32x __x) noexcept(true); +# 173 +extern _Float32x powf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __powf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 176 +extern _Float32x sqrtf32x(_Float32x __x) noexcept(true); extern _Float32x __sqrtf32x(_Float32x __x) noexcept(true); +# 180 +extern _Float32x hypotf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __hypotf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 185 +extern _Float32x cbrtf32x(_Float32x __x) noexcept(true); extern _Float32x __cbrtf32x(_Float32x __x) noexcept(true); +# 192 +extern _Float32x ceilf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 195 +extern _Float32x fabsf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 198 +extern _Float32x floorf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 201 +extern _Float32x fmodf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __fmodf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float32x copysignf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 236 +extern _Float32x nanf32x(const char * __tagb) noexcept(true); extern _Float32x __nanf32x(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float32x j0f32x(_Float32x) noexcept(true); extern _Float32x __j0f32x(_Float32x) noexcept(true); +# 254 +extern _Float32x j1f32x(_Float32x) noexcept(true); extern _Float32x __j1f32x(_Float32x) noexcept(true); +# 255 +extern _Float32x jnf32x(int, _Float32x) noexcept(true); extern _Float32x __jnf32x(int, _Float32x) noexcept(true); +# 256 +extern _Float32x y0f32x(_Float32x) noexcept(true); extern _Float32x __y0f32x(_Float32x) noexcept(true); +# 257 +extern _Float32x y1f32x(_Float32x) noexcept(true); extern _Float32x __y1f32x(_Float32x) noexcept(true); +# 258 +extern _Float32x ynf32x(int, _Float32x) noexcept(true); extern _Float32x __ynf32x(int, _Float32x) noexcept(true); +# 264 +extern _Float32x erff32x(_Float32x) noexcept(true); extern _Float32x __erff32x(_Float32x) noexcept(true); +# 265 +extern _Float32x erfcf32x(_Float32x) noexcept(true); extern _Float32x __erfcf32x(_Float32x) noexcept(true); +# 266 +extern _Float32x lgammaf32x(_Float32x) noexcept(true); extern _Float32x __lgammaf32x(_Float32x) noexcept(true); +# 271 +extern _Float32x tgammaf32x(_Float32x) noexcept(true); extern _Float32x __tgammaf32x(_Float32x) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float32x lgammaf32x_r(_Float32x, int * __signgamp) noexcept(true); extern _Float32x __lgammaf32x_r(_Float32x, int * __signgamp) noexcept(true); +# 292 +extern _Float32x rintf32x(_Float32x __x) noexcept(true); extern _Float32x __rintf32x(_Float32x __x) noexcept(true); +# 295 +extern _Float32x nextafterf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __nextafterf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 302 +extern _Float32x nextdownf32x(_Float32x __x) noexcept(true); extern _Float32x __nextdownf32x(_Float32x __x) noexcept(true); +# 304 +extern _Float32x nextupf32x(_Float32x __x) noexcept(true); extern _Float32x __nextupf32x(_Float32x __x) noexcept(true); +# 308 +extern _Float32x remainderf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __remainderf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 312 +extern _Float32x scalbnf32x(_Float32x __x, int __n) noexcept(true); extern _Float32x __scalbnf32x(_Float32x __x, int __n) noexcept(true); +# 316 +extern int ilogbf32x(_Float32x __x) noexcept(true); extern int __ilogbf32x(_Float32x __x) noexcept(true); +# 321 +extern long llogbf32x(_Float32x __x) noexcept(true); extern long __llogbf32x(_Float32x __x) noexcept(true); +# 326 +extern _Float32x scalblnf32x(_Float32x __x, long __n) noexcept(true); extern _Float32x __scalblnf32x(_Float32x __x, long __n) noexcept(true); +# 330 +extern _Float32x nearbyintf32x(_Float32x __x) noexcept(true); extern _Float32x __nearbyintf32x(_Float32x __x) noexcept(true); +# 334 +extern _Float32x roundf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 338 +extern _Float32x truncf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 343 +extern _Float32x remquof32x(_Float32x __x, _Float32x __y, int * __quo) noexcept(true); extern _Float32x __remquof32x(_Float32x __x, _Float32x __y, int * __quo) noexcept(true); +# 350 +extern long lrintf32x(_Float32x __x) noexcept(true); extern long __lrintf32x(_Float32x __x) noexcept(true); +# 352 +__extension__ extern long long llrintf32x(_Float32x __x) noexcept(true); extern long long __llrintf32x(_Float32x __x) noexcept(true); +# 356 +extern long lroundf32x(_Float32x __x) noexcept(true); extern long __lroundf32x(_Float32x __x) noexcept(true); +# 358 +__extension__ extern long long llroundf32x(_Float32x __x) noexcept(true); extern long long __llroundf32x(_Float32x __x) noexcept(true); +# 362 +extern _Float32x fdimf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __fdimf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 366 +extern _Float32x fmaxf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 369 +extern _Float32x fminf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 373 +extern _Float32x fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) noexcept(true); extern _Float32x __fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) noexcept(true); +# 378 +extern _Float32x roundevenf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef32x(_Float32x * __cx, const _Float32x * __x) noexcept(true); +# 410 +extern _Float32x fmaxmagf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 413 +extern _Float32x fminmagf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 418 +extern _Float32x fmaximumf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 421 +extern _Float32x fminimumf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 424 +extern _Float32x fmaximum_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 427 +extern _Float32x fminimum_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 430 +extern _Float32x fmaximum_magf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 433 +extern _Float32x fminimum_magf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 436 +extern _Float32x fmaximum_mag_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 439 +extern _Float32x fminimum_mag_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf32x(const _Float32x * __x, const _Float32x * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf32x(const _Float32x * __x, const _Float32x * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float32x getpayloadf32x(const _Float32x * __x) noexcept(true); extern _Float32x __getpayloadf32x(const _Float32x * __x) noexcept(true); +# 457 +extern int setpayloadf32x(_Float32x * __x, _Float32x __payload) noexcept(true); +# 460 +extern int setpayloadsigf32x(_Float32x * __x, _Float32x __payload) noexcept(true); +# 53 "/usr/include/bits/mathcalls.h" 3 +extern _Float64x acosf64x(_Float64x __x) noexcept(true); extern _Float64x __acosf64x(_Float64x __x) noexcept(true); +# 55 +extern _Float64x asinf64x(_Float64x __x) noexcept(true); extern _Float64x __asinf64x(_Float64x __x) noexcept(true); +# 57 +extern _Float64x atanf64x(_Float64x __x) noexcept(true); extern _Float64x __atanf64x(_Float64x __x) noexcept(true); +# 59 +extern _Float64x atan2f64x(_Float64x __y, _Float64x __x) noexcept(true); extern _Float64x __atan2f64x(_Float64x __y, _Float64x __x) noexcept(true); +# 62 +extern _Float64x cosf64x(_Float64x __x) noexcept(true); extern _Float64x __cosf64x(_Float64x __x) noexcept(true); +# 64 +extern _Float64x sinf64x(_Float64x __x) noexcept(true); extern _Float64x __sinf64x(_Float64x __x) noexcept(true); +# 66 +extern _Float64x tanf64x(_Float64x __x) noexcept(true); extern _Float64x __tanf64x(_Float64x __x) noexcept(true); +# 70 +extern _Float64x acospif64x(_Float64x __x) noexcept(true); extern _Float64x __acospif64x(_Float64x __x) noexcept(true); +# 72 +extern _Float64x asinpif64x(_Float64x __x) noexcept(true); extern _Float64x __asinpif64x(_Float64x __x) noexcept(true); +# 74 +extern _Float64x atanpif64x(_Float64x __x) noexcept(true); extern _Float64x __atanpif64x(_Float64x __x) noexcept(true); +# 76 +extern _Float64x atan2pif64x(_Float64x __y, _Float64x __x) noexcept(true); extern _Float64x __atan2pif64x(_Float64x __y, _Float64x __x) noexcept(true); +# 79 +extern _Float64x cospif64x(_Float64x __x) noexcept(true); extern _Float64x __cospif64x(_Float64x __x) noexcept(true); +# 81 +extern _Float64x sinpif64x(_Float64x __x) noexcept(true); extern _Float64x __sinpif64x(_Float64x __x) noexcept(true); +# 83 +extern _Float64x tanpif64x(_Float64x __x) noexcept(true); extern _Float64x __tanpif64x(_Float64x __x) noexcept(true); +# 89 +extern _Float64x coshf64x(_Float64x __x) noexcept(true); extern _Float64x __coshf64x(_Float64x __x) noexcept(true); +# 91 +extern _Float64x sinhf64x(_Float64x __x) noexcept(true); extern _Float64x __sinhf64x(_Float64x __x) noexcept(true); +# 93 +extern _Float64x tanhf64x(_Float64x __x) noexcept(true); extern _Float64x __tanhf64x(_Float64x __x) noexcept(true); +# 97 +extern void sincosf64x(_Float64x __x, _Float64x * __sinx, _Float64x * __cosx) noexcept(true); extern void __sincosf64x(_Float64x __x, _Float64x * __sinx, _Float64x * __cosx) noexcept(true); +# 103 +extern _Float64x acoshf64x(_Float64x __x) noexcept(true); extern _Float64x __acoshf64x(_Float64x __x) noexcept(true); +# 105 +extern _Float64x asinhf64x(_Float64x __x) noexcept(true); extern _Float64x __asinhf64x(_Float64x __x) noexcept(true); +# 107 +extern _Float64x atanhf64x(_Float64x __x) noexcept(true); extern _Float64x __atanhf64x(_Float64x __x) noexcept(true); +# 113 +extern _Float64x expf64x(_Float64x __x) noexcept(true); extern _Float64x __expf64x(_Float64x __x) noexcept(true); +# 116 +extern _Float64x frexpf64x(_Float64x __x, int * __exponent) noexcept(true); extern _Float64x __frexpf64x(_Float64x __x, int * __exponent) noexcept(true); +# 119 +extern _Float64x ldexpf64x(_Float64x __x, int __exponent) noexcept(true); extern _Float64x __ldexpf64x(_Float64x __x, int __exponent) noexcept(true); +# 122 +extern _Float64x logf64x(_Float64x __x) noexcept(true); extern _Float64x __logf64x(_Float64x __x) noexcept(true); +# 125 +extern _Float64x log10f64x(_Float64x __x) noexcept(true); extern _Float64x __log10f64x(_Float64x __x) noexcept(true); +# 128 +extern _Float64x modff64x(_Float64x __x, _Float64x * __iptr) noexcept(true); extern _Float64x __modff64x(_Float64x __x, _Float64x * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 132 +extern _Float64x exp10f64x(_Float64x __x) noexcept(true); extern _Float64x __exp10f64x(_Float64x __x) noexcept(true); +# 135 +extern _Float64x exp2m1f64x(_Float64x __x) noexcept(true); extern _Float64x __exp2m1f64x(_Float64x __x) noexcept(true); +# 138 +extern _Float64x exp10m1f64x(_Float64x __x) noexcept(true); extern _Float64x __exp10m1f64x(_Float64x __x) noexcept(true); +# 141 +extern _Float64x log2p1f64x(_Float64x __x) noexcept(true); extern _Float64x __log2p1f64x(_Float64x __x) noexcept(true); +# 144 +extern _Float64x log10p1f64x(_Float64x __x) noexcept(true); extern _Float64x __log10p1f64x(_Float64x __x) noexcept(true); +# 147 +extern _Float64x logp1f64x(_Float64x __x) noexcept(true); extern _Float64x __logp1f64x(_Float64x __x) noexcept(true); +# 152 +extern _Float64x expm1f64x(_Float64x __x) noexcept(true); extern _Float64x __expm1f64x(_Float64x __x) noexcept(true); +# 155 +extern _Float64x log1pf64x(_Float64x __x) noexcept(true); extern _Float64x __log1pf64x(_Float64x __x) noexcept(true); +# 158 +extern _Float64x logbf64x(_Float64x __x) noexcept(true); extern _Float64x __logbf64x(_Float64x __x) noexcept(true); +# 163 +extern _Float64x exp2f64x(_Float64x __x) noexcept(true); extern _Float64x __exp2f64x(_Float64x __x) noexcept(true); +# 166 +extern _Float64x log2f64x(_Float64x __x) noexcept(true); extern _Float64x __log2f64x(_Float64x __x) noexcept(true); +# 173 +extern _Float64x powf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __powf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 176 +extern _Float64x sqrtf64x(_Float64x __x) noexcept(true); extern _Float64x __sqrtf64x(_Float64x __x) noexcept(true); +# 180 +extern _Float64x hypotf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __hypotf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 185 +extern _Float64x cbrtf64x(_Float64x __x) noexcept(true); extern _Float64x __cbrtf64x(_Float64x __x) noexcept(true); +# 192 +extern _Float64x ceilf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 195 +extern _Float64x fabsf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 198 +extern _Float64x floorf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 201 +extern _Float64x fmodf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __fmodf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 231 "/usr/include/bits/mathcalls.h" 3 +extern _Float64x copysignf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 236 +extern _Float64x nanf64x(const char * __tagb) noexcept(true); extern _Float64x __nanf64x(const char * __tagb) noexcept(true); +# 253 "/usr/include/bits/mathcalls.h" 3 +extern _Float64x j0f64x(_Float64x) noexcept(true); extern _Float64x __j0f64x(_Float64x) noexcept(true); +# 254 +extern _Float64x j1f64x(_Float64x) noexcept(true); extern _Float64x __j1f64x(_Float64x) noexcept(true); +# 255 +extern _Float64x jnf64x(int, _Float64x) noexcept(true); extern _Float64x __jnf64x(int, _Float64x) noexcept(true); +# 256 +extern _Float64x y0f64x(_Float64x) noexcept(true); extern _Float64x __y0f64x(_Float64x) noexcept(true); +# 257 +extern _Float64x y1f64x(_Float64x) noexcept(true); extern _Float64x __y1f64x(_Float64x) noexcept(true); +# 258 +extern _Float64x ynf64x(int, _Float64x) noexcept(true); extern _Float64x __ynf64x(int, _Float64x) noexcept(true); +# 264 +extern _Float64x erff64x(_Float64x) noexcept(true); extern _Float64x __erff64x(_Float64x) noexcept(true); +# 265 +extern _Float64x erfcf64x(_Float64x) noexcept(true); extern _Float64x __erfcf64x(_Float64x) noexcept(true); +# 266 +extern _Float64x lgammaf64x(_Float64x) noexcept(true); extern _Float64x __lgammaf64x(_Float64x) noexcept(true); +# 271 +extern _Float64x tgammaf64x(_Float64x) noexcept(true); extern _Float64x __tgammaf64x(_Float64x) noexcept(true); +# 285 "/usr/include/bits/mathcalls.h" 3 +extern _Float64x lgammaf64x_r(_Float64x, int * __signgamp) noexcept(true); extern _Float64x __lgammaf64x_r(_Float64x, int * __signgamp) noexcept(true); +# 292 +extern _Float64x rintf64x(_Float64x __x) noexcept(true); extern _Float64x __rintf64x(_Float64x __x) noexcept(true); +# 295 +extern _Float64x nextafterf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __nextafterf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 302 +extern _Float64x nextdownf64x(_Float64x __x) noexcept(true); extern _Float64x __nextdownf64x(_Float64x __x) noexcept(true); +# 304 +extern _Float64x nextupf64x(_Float64x __x) noexcept(true); extern _Float64x __nextupf64x(_Float64x __x) noexcept(true); +# 308 +extern _Float64x remainderf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __remainderf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 312 +extern _Float64x scalbnf64x(_Float64x __x, int __n) noexcept(true); extern _Float64x __scalbnf64x(_Float64x __x, int __n) noexcept(true); +# 316 +extern int ilogbf64x(_Float64x __x) noexcept(true); extern int __ilogbf64x(_Float64x __x) noexcept(true); +# 321 +extern long llogbf64x(_Float64x __x) noexcept(true); extern long __llogbf64x(_Float64x __x) noexcept(true); +# 326 +extern _Float64x scalblnf64x(_Float64x __x, long __n) noexcept(true); extern _Float64x __scalblnf64x(_Float64x __x, long __n) noexcept(true); +# 330 +extern _Float64x nearbyintf64x(_Float64x __x) noexcept(true); extern _Float64x __nearbyintf64x(_Float64x __x) noexcept(true); +# 334 +extern _Float64x roundf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 338 +extern _Float64x truncf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 343 +extern _Float64x remquof64x(_Float64x __x, _Float64x __y, int * __quo) noexcept(true); extern _Float64x __remquof64x(_Float64x __x, _Float64x __y, int * __quo) noexcept(true); +# 350 +extern long lrintf64x(_Float64x __x) noexcept(true); extern long __lrintf64x(_Float64x __x) noexcept(true); +# 352 +__extension__ extern long long llrintf64x(_Float64x __x) noexcept(true); extern long long __llrintf64x(_Float64x __x) noexcept(true); +# 356 +extern long lroundf64x(_Float64x __x) noexcept(true); extern long __lroundf64x(_Float64x __x) noexcept(true); +# 358 +__extension__ extern long long llroundf64x(_Float64x __x) noexcept(true); extern long long __llroundf64x(_Float64x __x) noexcept(true); +# 362 +extern _Float64x fdimf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __fdimf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 366 +extern _Float64x fmaxf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 369 +extern _Float64x fminf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 373 +extern _Float64x fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); extern _Float64x __fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 378 +extern _Float64x roundevenf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 382 +extern __intmax_t fromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 387 +extern __uintmax_t ufromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 393 +extern __intmax_t fromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 399 +extern __uintmax_t ufromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 403 +extern int canonicalizef64x(_Float64x * __cx, const _Float64x * __x) noexcept(true); +# 410 +extern _Float64x fmaxmagf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 413 +extern _Float64x fminmagf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 418 +extern _Float64x fmaximumf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 421 +extern _Float64x fminimumf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 424 +extern _Float64x fmaximum_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 427 +extern _Float64x fminimum_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 430 +extern _Float64x fmaximum_magf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 433 +extern _Float64x fminimum_magf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 436 +extern _Float64x fmaximum_mag_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 439 +extern _Float64x fminimum_mag_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 444 +extern int totalorderf64x(const _Float64x * __x, const _Float64x * __y) noexcept(true) +# 446 + __attribute((__pure__)); +# 449 +extern int totalordermagf64x(const _Float64x * __x, const _Float64x * __y) noexcept(true) +# 451 + __attribute((__pure__)); +# 454 +extern _Float64x getpayloadf64x(const _Float64x * __x) noexcept(true); extern _Float64x __getpayloadf64x(const _Float64x * __x) noexcept(true); +# 457 +extern int setpayloadf64x(_Float64x * __x, _Float64x __payload) noexcept(true); +# 460 +extern int setpayloadsigf64x(_Float64x * __x, _Float64x __payload) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern float fadd(double __x, double __y) noexcept(true); +# 27 +extern float fdiv(double __x, double __y) noexcept(true); +# 30 +extern float ffma(double __x, double __y, double __z) noexcept(true); +# 33 +extern float fmul(double __x, double __y) noexcept(true); +# 36 +extern float fsqrt(double __x) noexcept(true); +# 39 +extern float fsub(double __x, double __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern float faddl(long double __x, long double __y) noexcept(true); +# 27 +extern float fdivl(long double __x, long double __y) noexcept(true); +# 30 +extern float ffmal(long double __x, long double __y, long double __z) noexcept(true); +# 33 +extern float fmull(long double __x, long double __y) noexcept(true); +# 36 +extern float fsqrtl(long double __x) noexcept(true); +# 39 +extern float fsubl(long double __x, long double __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern double daddl(long double __x, long double __y) noexcept(true); +# 27 +extern double ddivl(long double __x, long double __y) noexcept(true); +# 30 +extern double dfmal(long double __x, long double __y, long double __z) noexcept(true); +# 33 +extern double dmull(long double __x, long double __y) noexcept(true); +# 36 +extern double dsqrtl(long double __x) noexcept(true); +# 39 +extern double dsubl(long double __x, long double __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 27 +extern _Float32 f32divf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 30 +extern _Float32 f32fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) noexcept(true); +# 33 +extern _Float32 f32mulf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 36 +extern _Float32 f32sqrtf32x(_Float32x __x) noexcept(true); +# 39 +extern _Float32 f32subf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf64(_Float64 __x, _Float64 __y) noexcept(true); +# 27 +extern _Float32 f32divf64(_Float64 __x, _Float64 __y) noexcept(true); +# 30 +extern _Float32 f32fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); +# 33 +extern _Float32 f32mulf64(_Float64 __x, _Float64 __y) noexcept(true); +# 36 +extern _Float32 f32sqrtf64(_Float64 __x) noexcept(true); +# 39 +extern _Float32 f32subf64(_Float64 __x, _Float64 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 27 +extern _Float32 f32divf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 30 +extern _Float32 f32fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 33 +extern _Float32 f32mulf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 36 +extern _Float32 f32sqrtf64x(_Float64x __x) noexcept(true); +# 39 +extern _Float32 f32subf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf128(_Float128 __x, _Float128 __y) noexcept(true); +# 27 +extern _Float32 f32divf128(_Float128 __x, _Float128 __y) noexcept(true); +# 30 +extern _Float32 f32fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 33 +extern _Float32 f32mulf128(_Float128 __x, _Float128 __y) noexcept(true); +# 36 +extern _Float32 f32sqrtf128(_Float128 __x) noexcept(true); +# 39 +extern _Float32 f32subf128(_Float128 __x, _Float128 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32x f32xaddf64(_Float64 __x, _Float64 __y) noexcept(true); +# 27 +extern _Float32x f32xdivf64(_Float64 __x, _Float64 __y) noexcept(true); +# 30 +extern _Float32x f32xfmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); +# 33 +extern _Float32x f32xmulf64(_Float64 __x, _Float64 __y) noexcept(true); +# 36 +extern _Float32x f32xsqrtf64(_Float64 __x) noexcept(true); +# 39 +extern _Float32x f32xsubf64(_Float64 __x, _Float64 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32x f32xaddf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 27 +extern _Float32x f32xdivf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 30 +extern _Float32x f32xfmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 33 +extern _Float32x f32xmulf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 36 +extern _Float32x f32xsqrtf64x(_Float64x __x) noexcept(true); +# 39 +extern _Float32x f32xsubf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float32x f32xaddf128(_Float128 __x, _Float128 __y) noexcept(true); +# 27 +extern _Float32x f32xdivf128(_Float128 __x, _Float128 __y) noexcept(true); +# 30 +extern _Float32x f32xfmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 33 +extern _Float32x f32xmulf128(_Float128 __x, _Float128 __y) noexcept(true); +# 36 +extern _Float32x f32xsqrtf128(_Float128 __x) noexcept(true); +# 39 +extern _Float32x f32xsubf128(_Float128 __x, _Float128 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float64 f64addf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 27 +extern _Float64 f64divf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 30 +extern _Float64 f64fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 33 +extern _Float64 f64mulf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 36 +extern _Float64 f64sqrtf64x(_Float64x __x) noexcept(true); +# 39 +extern _Float64 f64subf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float64 f64addf128(_Float128 __x, _Float128 __y) noexcept(true); +# 27 +extern _Float64 f64divf128(_Float128 __x, _Float128 __y) noexcept(true); +# 30 +extern _Float64 f64fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 33 +extern _Float64 f64mulf128(_Float128 __x, _Float128 __y) noexcept(true); +# 36 +extern _Float64 f64sqrtf128(_Float128 __x) noexcept(true); +# 39 +extern _Float64 f64subf128(_Float128 __x, _Float128 __y) noexcept(true); +# 24 "/usr/include/bits/mathcalls-narrow.h" 3 +extern _Float64x f64xaddf128(_Float128 __x, _Float128 __y) noexcept(true); +# 27 +extern _Float64x f64xdivf128(_Float128 __x, _Float128 __y) noexcept(true); +# 30 +extern _Float64x f64xfmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 33 +extern _Float64x f64xmulf128(_Float128 __x, _Float128 __y) noexcept(true); +# 36 +extern _Float64x f64xsqrtf128(_Float128 __x) noexcept(true); +# 39 +extern _Float64x f64xsubf128(_Float128 __x, _Float128 __y) noexcept(true); +# 823 "/usr/include/math.h" 3 +extern int signgam; +# 904 "/usr/include/math.h" 3 +enum { +# 905 +FP_NAN, +# 908 +FP_INFINITE, +# 911 +FP_ZERO, +# 914 +FP_SUBNORMAL, +# 917 +FP_NORMAL +# 920 +}; +# 23 "/usr/include/bits/iscanonical.h" 3 +extern int __iscanonicall(long double __x) noexcept(true) +# 24 + __attribute((const)); +# 46 "/usr/include/bits/iscanonical.h" 3 +extern "C++" { +# 47 +inline int iscanonical(float __val) { return (((void)((__typeof__(__val))__val)), 1); } +# 48 +inline int iscanonical(double __val) { return (((void)((__typeof__(__val))__val)), 1); } +# 49 +inline int iscanonical(long double __val) { return __iscanonicall(__val); } +# 51 +inline int iscanonical(_Float128 __val) { return (((void)((__typeof__(__val))__val)), 1); } +# 53 +} +# 1036 "/usr/include/math.h" 3 +extern "C++" { +# 1037 +inline int issignaling(float __val) { return __issignalingf(__val); } +# 1038 +inline int issignaling(double __val) { return __issignaling(__val); } +# 1040 +inline int issignaling(long double __val) +# 1041 +{ +# 1045 +return __issignalingl(__val); +# 1047 +} +# 1051 +inline int issignaling(_Float128 __val) { return __issignalingf128(__val); } +# 1053 +} +# 1067 "/usr/include/math.h" 3 +extern "C++" { +# 1098 "/usr/include/math.h" 3 +template< class __T> inline bool +# 1099 +iszero(__T __val) +# 1100 +{ +# 1101 +return __val == 0; +# 1102 +} +# 1104 +} +# 1333 "/usr/include/math.h" 3 +extern "C++" { +# 1334 +template< class > struct __iseqsig_type; +# 1336 +template<> struct __iseqsig_type< float> { +# 1338 +static int __call(float __x, float __y) throw() +# 1339 +{ +# 1340 +return __iseqsigf(__x, __y); +# 1341 +} +# 1342 +}; +# 1344 +template<> struct __iseqsig_type< double> { +# 1346 +static int __call(double __x, double __y) throw() +# 1347 +{ +# 1348 +return __iseqsig(__x, __y); +# 1349 +} +# 1350 +}; +# 1352 +template<> struct __iseqsig_type< long double> { +# 1354 +static int __call(long double __x, long double __y) throw() +# 1355 +{ +# 1357 +return __iseqsigl(__x, __y); +# 1361 +} +# 1362 +}; +# 1365 +template<> struct __iseqsig_type< _Float32> { +# 1367 +static int __call(_Float32 __x, _Float32 __y) throw() +# 1368 +{ +# 1369 +return __iseqsigf(__x, __y); +# 1370 +} +# 1371 +}; +# 1375 +template<> struct __iseqsig_type< _Float64> { +# 1377 +static int __call(_Float64 __x, _Float64 __y) throw() +# 1378 +{ +# 1379 +return __iseqsig(__x, __y); +# 1380 +} +# 1381 +}; +# 1387 +template<> struct __iseqsig_type< _Float128> { +# 1389 +static int __call(_Float128 __x, _Float128 __y) throw() +# 1390 +{ +# 1392 +return __iseqsigf128(__x, __y); +# 1396 +} +# 1397 +}; +# 1401 +template<> struct __iseqsig_type< _Float32x> { +# 1403 +static int __call(_Float32x __x, _Float32x __y) throw() +# 1404 +{ +# 1405 +return __iseqsig(__x, __y); +# 1406 +} +# 1407 +}; +# 1411 +template<> struct __iseqsig_type< _Float64x> { +# 1413 +static int __call(_Float64x __x, _Float64x __y) throw() +# 1414 +{ +# 1416 +return __iseqsigl(__x, __y); +# 1420 +} +# 1421 +}; +# 1424 +template< class _T1, class _T2> inline int +# 1426 +iseqsig(_T1 __x, _T2 __y) throw() +# 1427 +{ +# 1429 +typedef __decltype(((__x + __y) + (0.0F))) _T3; +# 1433 +return __iseqsig_type< __decltype(((__x + __y) + (0.0F)))> ::__call(__x, __y); +# 1434 +} +# 1436 +} +# 1441 +} +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +extern "C++" { +# 85 +namespace std __attribute((__visibility__("default"))) { +# 89 +using ::acos; +# 93 +constexpr float acos(float __x) +# 94 +{ return __builtin_acosf(__x); } +# 97 +constexpr long double acos(long double __x) +# 98 +{ return __builtin_acosl(__x); } +# 101 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 105 +acos(_Tp __x) +# 106 +{ return __builtin_acos(__x); } +# 108 +using ::asin; +# 112 +constexpr float asin(float __x) +# 113 +{ return __builtin_asinf(__x); } +# 116 +constexpr long double asin(long double __x) +# 117 +{ return __builtin_asinl(__x); } +# 120 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 124 +asin(_Tp __x) +# 125 +{ return __builtin_asin(__x); } +# 127 +using ::atan; +# 131 +constexpr float atan(float __x) +# 132 +{ return __builtin_atanf(__x); } +# 135 +constexpr long double atan(long double __x) +# 136 +{ return __builtin_atanl(__x); } +# 139 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 143 +atan(_Tp __x) +# 144 +{ return __builtin_atan(__x); } +# 146 +using ::atan2; +# 150 +constexpr float atan2(float __y, float __x) +# 151 +{ return __builtin_atan2f(__y, __x); } +# 154 +constexpr long double atan2(long double __y, long double __x) +# 155 +{ return __builtin_atan2l(__y, __x); } +# 158 +using ::ceil; +# 162 +constexpr float ceil(float __x) +# 163 +{ return __builtin_ceilf(__x); } +# 166 +constexpr long double ceil(long double __x) +# 167 +{ return __builtin_ceill(__x); } +# 170 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 174 +ceil(_Tp __x) +# 175 +{ return __builtin_ceil(__x); } +# 177 +using ::cos; +# 181 +constexpr float cos(float __x) +# 182 +{ return __builtin_cosf(__x); } +# 185 +constexpr long double cos(long double __x) +# 186 +{ return __builtin_cosl(__x); } +# 189 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 193 +cos(_Tp __x) +# 194 +{ return __builtin_cos(__x); } +# 196 +using ::cosh; +# 200 +constexpr float cosh(float __x) +# 201 +{ return __builtin_coshf(__x); } +# 204 +constexpr long double cosh(long double __x) +# 205 +{ return __builtin_coshl(__x); } +# 208 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 212 +cosh(_Tp __x) +# 213 +{ return __builtin_cosh(__x); } +# 215 +using ::exp; +# 219 +constexpr float exp(float __x) +# 220 +{ return __builtin_expf(__x); } +# 223 +constexpr long double exp(long double __x) +# 224 +{ return __builtin_expl(__x); } +# 227 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 231 +exp(_Tp __x) +# 232 +{ return __builtin_exp(__x); } +# 234 +using ::fabs; +# 238 +constexpr float fabs(float __x) +# 239 +{ return __builtin_fabsf(__x); } +# 242 +constexpr long double fabs(long double __x) +# 243 +{ return __builtin_fabsl(__x); } +# 246 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 250 +fabs(_Tp __x) +# 251 +{ return __builtin_fabs(__x); } +# 253 +using ::floor; +# 257 +constexpr float floor(float __x) +# 258 +{ return __builtin_floorf(__x); } +# 261 +constexpr long double floor(long double __x) +# 262 +{ return __builtin_floorl(__x); } +# 265 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 269 +floor(_Tp __x) +# 270 +{ return __builtin_floor(__x); } +# 272 +using ::fmod; +# 276 +constexpr float fmod(float __x, float __y) +# 277 +{ return __builtin_fmodf(__x, __y); } +# 280 +constexpr long double fmod(long double __x, long double __y) +# 281 +{ return __builtin_fmodl(__x, __y); } +# 284 +using ::frexp; +# 288 +inline float frexp(float __x, int *__exp) +# 289 +{ return __builtin_frexpf(__x, __exp); } +# 292 +inline long double frexp(long double __x, int *__exp) +# 293 +{ return __builtin_frexpl(__x, __exp); } +# 296 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 300 +frexp(_Tp __x, int *__exp) +# 301 +{ return __builtin_frexp(__x, __exp); } +# 303 +using ::ldexp; +# 307 +constexpr float ldexp(float __x, int __exp) +# 308 +{ return __builtin_ldexpf(__x, __exp); } +# 311 +constexpr long double ldexp(long double __x, int __exp) +# 312 +{ return __builtin_ldexpl(__x, __exp); } +# 315 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 319 +ldexp(_Tp __x, int __exp) +# 320 +{ return __builtin_ldexp(__x, __exp); } +# 322 +using ::log; +# 326 +constexpr float log(float __x) +# 327 +{ return __builtin_logf(__x); } +# 330 +constexpr long double log(long double __x) +# 331 +{ return __builtin_logl(__x); } +# 334 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 338 +log(_Tp __x) +# 339 +{ return __builtin_log(__x); } +# 341 +using ::log10; +# 345 +constexpr float log10(float __x) +# 346 +{ return __builtin_log10f(__x); } +# 349 +constexpr long double log10(long double __x) +# 350 +{ return __builtin_log10l(__x); } +# 353 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 357 +log10(_Tp __x) +# 358 +{ return __builtin_log10(__x); } +# 360 +using ::modf; +# 364 +inline float modf(float __x, float *__iptr) +# 365 +{ return __builtin_modff(__x, __iptr); } +# 368 +inline long double modf(long double __x, long double *__iptr) +# 369 +{ return __builtin_modfl(__x, __iptr); } +# 372 +using ::pow; +# 376 +constexpr float pow(float __x, float __y) +# 377 +{ return __builtin_powf(__x, __y); } +# 380 +constexpr long double pow(long double __x, long double __y) +# 381 +{ return __builtin_powl(__x, __y); } +# 400 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +using ::sin; +# 404 +constexpr float sin(float __x) +# 405 +{ return __builtin_sinf(__x); } +# 408 +constexpr long double sin(long double __x) +# 409 +{ return __builtin_sinl(__x); } +# 412 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 416 +sin(_Tp __x) +# 417 +{ return __builtin_sin(__x); } +# 419 +using ::sinh; +# 423 +constexpr float sinh(float __x) +# 424 +{ return __builtin_sinhf(__x); } +# 427 +constexpr long double sinh(long double __x) +# 428 +{ return __builtin_sinhl(__x); } +# 431 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 435 +sinh(_Tp __x) +# 436 +{ return __builtin_sinh(__x); } +# 438 +using ::sqrt; +# 442 +constexpr float sqrt(float __x) +# 443 +{ return __builtin_sqrtf(__x); } +# 446 +constexpr long double sqrt(long double __x) +# 447 +{ return __builtin_sqrtl(__x); } +# 450 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 454 +sqrt(_Tp __x) +# 455 +{ return __builtin_sqrt(__x); } +# 457 +using ::tan; +# 461 +constexpr float tan(float __x) +# 462 +{ return __builtin_tanf(__x); } +# 465 +constexpr long double tan(long double __x) +# 466 +{ return __builtin_tanl(__x); } +# 469 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 473 +tan(_Tp __x) +# 474 +{ return __builtin_tan(__x); } +# 476 +using ::tanh; +# 480 +constexpr float tanh(float __x) +# 481 +{ return __builtin_tanhf(__x); } +# 484 +constexpr long double tanh(long double __x) +# 485 +{ return __builtin_tanhl(__x); } +# 488 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 492 +tanh(_Tp __x) +# 493 +{ return __builtin_tanh(__x); } +# 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1056 +atan2(_Tp __y, _Up __x) +# 1057 +{ +# 1058 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1059 +return atan2((__type)__y, (__type)__x); +# 1060 +} +# 1062 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1065 +fmod(_Tp __x, _Up __y) +# 1066 +{ +# 1067 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1068 +return fmod((__type)__x, (__type)__y); +# 1069 +} +# 1071 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1074 +pow(_Tp __x, _Up __y) +# 1075 +{ +# 1076 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1077 +return pow((__type)__x, (__type)__y); +# 1078 +} +# 1101 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +constexpr int fpclassify(float __x) +# 1102 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 1103 +} +# 1106 +constexpr int fpclassify(double __x) +# 1107 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 1108 +} +# 1111 +constexpr int fpclassify(long double __x) +# 1112 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 1113 +} +# 1117 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, int> ::__type +# 1120 +fpclassify(_Tp __x) +# 1121 +{ return (__x != 0) ? 4 : 2; } +# 1126 +constexpr bool isfinite(float __x) +# 1127 +{ return __builtin_isfinite(__x); } +# 1130 +constexpr bool isfinite(double __x) +# 1131 +{ return __builtin_isfinite(__x); } +# 1134 +constexpr bool isfinite(long double __x) +# 1135 +{ return __builtin_isfinite(__x); } +# 1139 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1142 +isfinite(_Tp) +# 1143 +{ return true; } +# 1148 +constexpr bool isinf(float __x) +# 1149 +{ return __builtin_isinf(__x); } +# 1156 +constexpr bool isinf(double __x) +# 1157 +{ return __builtin_isinf(__x); } +# 1161 +constexpr bool isinf(long double __x) +# 1162 +{ return __builtin_isinf(__x); } +# 1166 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1169 +isinf(_Tp) +# 1170 +{ return false; } +# 1175 +constexpr bool isnan(float __x) +# 1176 +{ return __builtin_isnan(__x); } +# 1183 +constexpr bool isnan(double __x) +# 1184 +{ return __builtin_isnan(__x); } +# 1188 +constexpr bool isnan(long double __x) +# 1189 +{ return __builtin_isnan(__x); } +# 1193 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1196 +isnan(_Tp) +# 1197 +{ return false; } +# 1202 +constexpr bool isnormal(float __x) +# 1203 +{ return __builtin_isnormal(__x); } +# 1206 +constexpr bool isnormal(double __x) +# 1207 +{ return __builtin_isnormal(__x); } +# 1210 +constexpr bool isnormal(long double __x) +# 1211 +{ return __builtin_isnormal(__x); } +# 1215 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1218 +isnormal(_Tp __x) +# 1219 +{ return (__x != 0) ? true : false; } +# 1225 +constexpr bool signbit(float __x) +# 1226 +{ return __builtin_signbit(__x); } +# 1229 +constexpr bool signbit(double __x) +# 1230 +{ return __builtin_signbit(__x); } +# 1233 +constexpr bool signbit(long double __x) +# 1234 +{ return __builtin_signbit(__x); } +# 1238 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 1241 +signbit(_Tp __x) +# 1242 +{ return (__x < 0) ? true : false; } +# 1247 +constexpr bool isgreater(float __x, float __y) +# 1248 +{ return __builtin_isgreater(__x, __y); } +# 1251 +constexpr bool isgreater(double __x, double __y) +# 1252 +{ return __builtin_isgreater(__x, __y); } +# 1255 +constexpr bool isgreater(long double __x, long double __y) +# 1256 +{ return __builtin_isgreater(__x, __y); } +# 1260 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1264 +isgreater(_Tp __x, _Up __y) +# 1265 +{ +# 1266 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1267 +return __builtin_isgreater((__type)__x, (__type)__y); +# 1268 +} +# 1273 +constexpr bool isgreaterequal(float __x, float __y) +# 1274 +{ return __builtin_isgreaterequal(__x, __y); } +# 1277 +constexpr bool isgreaterequal(double __x, double __y) +# 1278 +{ return __builtin_isgreaterequal(__x, __y); } +# 1281 +constexpr bool isgreaterequal(long double __x, long double __y) +# 1282 +{ return __builtin_isgreaterequal(__x, __y); } +# 1286 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1290 +isgreaterequal(_Tp __x, _Up __y) +# 1291 +{ +# 1292 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1293 +return __builtin_isgreaterequal((__type)__x, (__type)__y); +# 1294 +} +# 1299 +constexpr bool isless(float __x, float __y) +# 1300 +{ return __builtin_isless(__x, __y); } +# 1303 +constexpr bool isless(double __x, double __y) +# 1304 +{ return __builtin_isless(__x, __y); } +# 1307 +constexpr bool isless(long double __x, long double __y) +# 1308 +{ return __builtin_isless(__x, __y); } +# 1312 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1316 +isless(_Tp __x, _Up __y) +# 1317 +{ +# 1318 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1319 +return __builtin_isless((__type)__x, (__type)__y); +# 1320 +} +# 1325 +constexpr bool islessequal(float __x, float __y) +# 1326 +{ return __builtin_islessequal(__x, __y); } +# 1329 +constexpr bool islessequal(double __x, double __y) +# 1330 +{ return __builtin_islessequal(__x, __y); } +# 1333 +constexpr bool islessequal(long double __x, long double __y) +# 1334 +{ return __builtin_islessequal(__x, __y); } +# 1338 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1342 +islessequal(_Tp __x, _Up __y) +# 1343 +{ +# 1344 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1345 +return __builtin_islessequal((__type)__x, (__type)__y); +# 1346 +} +# 1351 +constexpr bool islessgreater(float __x, float __y) +# 1352 +{ return __builtin_islessgreater(__x, __y); } +# 1355 +constexpr bool islessgreater(double __x, double __y) +# 1356 +{ return __builtin_islessgreater(__x, __y); } +# 1359 +constexpr bool islessgreater(long double __x, long double __y) +# 1360 +{ return __builtin_islessgreater(__x, __y); } +# 1364 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1368 +islessgreater(_Tp __x, _Up __y) +# 1369 +{ +# 1370 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1371 +return __builtin_islessgreater((__type)__x, (__type)__y); +# 1372 +} +# 1377 +constexpr bool isunordered(float __x, float __y) +# 1378 +{ return __builtin_isunordered(__x, __y); } +# 1381 +constexpr bool isunordered(double __x, double __y) +# 1382 +{ return __builtin_isunordered(__x, __y); } +# 1385 +constexpr bool isunordered(long double __x, long double __y) +# 1386 +{ return __builtin_isunordered(__x, __y); } +# 1390 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 1394 +isunordered(_Tp __x, _Up __y) +# 1395 +{ +# 1396 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1397 +return __builtin_isunordered((__type)__x, (__type)__y); +# 1398 +} +# 1820 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +using ::acosf; +# 1823 +using ::acosl; +# 1827 +using ::asinf; +# 1830 +using ::asinl; +# 1834 +using ::atanf; +# 1837 +using ::atanl; +# 1841 +using ::atan2f; +# 1844 +using ::atan2l; +# 1848 +using ::ceilf; +# 1851 +using ::ceill; +# 1855 +using ::cosf; +# 1858 +using ::cosl; +# 1862 +using ::coshf; +# 1865 +using ::coshl; +# 1869 +using ::expf; +# 1872 +using ::expl; +# 1876 +using ::fabsf; +# 1879 +using ::fabsl; +# 1883 +using ::floorf; +# 1886 +using ::floorl; +# 1890 +using ::fmodf; +# 1893 +using ::fmodl; +# 1897 +using ::frexpf; +# 1900 +using ::frexpl; +# 1904 +using ::ldexpf; +# 1907 +using ::ldexpl; +# 1911 +using ::logf; +# 1914 +using ::logl; +# 1918 +using ::log10f; +# 1921 +using ::log10l; +# 1925 +using ::modff; +# 1928 +using ::modfl; +# 1932 +using ::powf; +# 1935 +using ::powl; +# 1939 +using ::sinf; +# 1942 +using ::sinl; +# 1946 +using ::sinhf; +# 1949 +using ::sinhl; +# 1953 +using ::sqrtf; +# 1956 +using ::sqrtl; +# 1960 +using ::tanf; +# 1963 +using ::tanl; +# 1967 +using ::tanhf; +# 1970 +using ::tanhl; +# 2085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +using ::double_t; +# 2086 +using ::float_t; +# 2090 +using ::acosh; +# 2091 +using ::acoshf; +# 2092 +using ::acoshl; +# 2094 +using ::asinh; +# 2095 +using ::asinhf; +# 2096 +using ::asinhl; +# 2098 +using ::atanh; +# 2099 +using ::atanhf; +# 2100 +using ::atanhl; +# 2102 +using ::cbrt; +# 2103 +using ::cbrtf; +# 2104 +using ::cbrtl; +# 2106 +using ::copysign; +# 2107 +using ::copysignf; +# 2108 +using ::copysignl; +# 2110 +using ::erf; +# 2111 +using ::erff; +# 2112 +using ::erfl; +# 2114 +using ::erfc; +# 2115 +using ::erfcf; +# 2116 +using ::erfcl; +# 2118 +using ::exp2; +# 2119 +using ::exp2f; +# 2120 +using ::exp2l; +# 2122 +using ::expm1; +# 2123 +using ::expm1f; +# 2124 +using ::expm1l; +# 2126 +using ::fdim; +# 2127 +using ::fdimf; +# 2128 +using ::fdiml; +# 2130 +using ::fma; +# 2131 +using ::fmaf; +# 2132 +using ::fmal; +# 2134 +using ::fmax; +# 2135 +using ::fmaxf; +# 2136 +using ::fmaxl; +# 2138 +using ::fmin; +# 2139 +using ::fminf; +# 2140 +using ::fminl; +# 2142 +using ::hypot; +# 2143 +using ::hypotf; +# 2144 +using ::hypotl; +# 2146 +using ::ilogb; +# 2147 +using ::ilogbf; +# 2148 +using ::ilogbl; +# 2150 +using ::lgamma; +# 2151 +using ::lgammaf; +# 2152 +using ::lgammal; +# 2155 +using ::llrint; +# 2156 +using ::llrintf; +# 2157 +using ::llrintl; +# 2159 +using ::llround; +# 2160 +using ::llroundf; +# 2161 +using ::llroundl; +# 2164 +using ::log1p; +# 2165 +using ::log1pf; +# 2166 +using ::log1pl; +# 2168 +using ::log2; +# 2169 +using ::log2f; +# 2170 +using ::log2l; +# 2172 +using ::logb; +# 2173 +using ::logbf; +# 2174 +using ::logbl; +# 2176 +using ::lrint; +# 2177 +using ::lrintf; +# 2178 +using ::lrintl; +# 2180 +using ::lround; +# 2181 +using ::lroundf; +# 2182 +using ::lroundl; +# 2184 +using ::nan; +# 2185 +using ::nanf; +# 2186 +using ::nanl; +# 2188 +using ::nearbyint; +# 2189 +using ::nearbyintf; +# 2190 +using ::nearbyintl; +# 2192 +using ::nextafter; +# 2193 +using ::nextafterf; +# 2194 +using ::nextafterl; +# 2196 +using ::nexttoward; +# 2197 +using ::nexttowardf; +# 2198 +using ::nexttowardl; +# 2200 +using ::remainder; +# 2201 +using ::remainderf; +# 2202 +using ::remainderl; +# 2204 +using ::remquo; +# 2205 +using ::remquof; +# 2206 +using ::remquol; +# 2208 +using ::rint; +# 2209 +using ::rintf; +# 2210 +using ::rintl; +# 2212 +using ::round; +# 2213 +using ::roundf; +# 2214 +using ::roundl; +# 2216 +using ::scalbln; +# 2217 +using ::scalblnf; +# 2218 +using ::scalblnl; +# 2220 +using ::scalbn; +# 2221 +using ::scalbnf; +# 2222 +using ::scalbnl; +# 2224 +using ::tgamma; +# 2225 +using ::tgammaf; +# 2226 +using ::tgammal; +# 2228 +using ::trunc; +# 2229 +using ::truncf; +# 2230 +using ::truncl; +# 2235 +constexpr float acosh(float __x) +# 2236 +{ return __builtin_acoshf(__x); } +# 2239 +constexpr long double acosh(long double __x) +# 2240 +{ return __builtin_acoshl(__x); } +# 2244 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2247 +acosh(_Tp __x) +# 2248 +{ return __builtin_acosh(__x); } +# 2253 +constexpr float asinh(float __x) +# 2254 +{ return __builtin_asinhf(__x); } +# 2257 +constexpr long double asinh(long double __x) +# 2258 +{ return __builtin_asinhl(__x); } +# 2262 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2265 +asinh(_Tp __x) +# 2266 +{ return __builtin_asinh(__x); } +# 2271 +constexpr float atanh(float __x) +# 2272 +{ return __builtin_atanhf(__x); } +# 2275 +constexpr long double atanh(long double __x) +# 2276 +{ return __builtin_atanhl(__x); } +# 2280 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2283 +atanh(_Tp __x) +# 2284 +{ return __builtin_atanh(__x); } +# 2289 +constexpr float cbrt(float __x) +# 2290 +{ return __builtin_cbrtf(__x); } +# 2293 +constexpr long double cbrt(long double __x) +# 2294 +{ return __builtin_cbrtl(__x); } +# 2298 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2301 +cbrt(_Tp __x) +# 2302 +{ return __builtin_cbrt(__x); } +# 2307 +constexpr float copysign(float __x, float __y) +# 2308 +{ return __builtin_copysignf(__x, __y); } +# 2311 +constexpr long double copysign(long double __x, long double __y) +# 2312 +{ return __builtin_copysignl(__x, __y); } +# 2317 +constexpr float erf(float __x) +# 2318 +{ return __builtin_erff(__x); } +# 2321 +constexpr long double erf(long double __x) +# 2322 +{ return __builtin_erfl(__x); } +# 2326 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2329 +erf(_Tp __x) +# 2330 +{ return __builtin_erf(__x); } +# 2335 +constexpr float erfc(float __x) +# 2336 +{ return __builtin_erfcf(__x); } +# 2339 +constexpr long double erfc(long double __x) +# 2340 +{ return __builtin_erfcl(__x); } +# 2344 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2347 +erfc(_Tp __x) +# 2348 +{ return __builtin_erfc(__x); } +# 2353 +constexpr float exp2(float __x) +# 2354 +{ return __builtin_exp2f(__x); } +# 2357 +constexpr long double exp2(long double __x) +# 2358 +{ return __builtin_exp2l(__x); } +# 2362 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2365 +exp2(_Tp __x) +# 2366 +{ return __builtin_exp2(__x); } +# 2371 +constexpr float expm1(float __x) +# 2372 +{ return __builtin_expm1f(__x); } +# 2375 +constexpr long double expm1(long double __x) +# 2376 +{ return __builtin_expm1l(__x); } +# 2380 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2383 +expm1(_Tp __x) +# 2384 +{ return __builtin_expm1(__x); } +# 2389 +constexpr float fdim(float __x, float __y) +# 2390 +{ return __builtin_fdimf(__x, __y); } +# 2393 +constexpr long double fdim(long double __x, long double __y) +# 2394 +{ return __builtin_fdiml(__x, __y); } +# 2399 +constexpr float fma(float __x, float __y, float __z) +# 2400 +{ return __builtin_fmaf(__x, __y, __z); } +# 2403 +constexpr long double fma(long double __x, long double __y, long double __z) +# 2404 +{ return __builtin_fmal(__x, __y, __z); } +# 2409 +constexpr float fmax(float __x, float __y) +# 2410 +{ return __builtin_fmaxf(__x, __y); } +# 2413 +constexpr long double fmax(long double __x, long double __y) +# 2414 +{ return __builtin_fmaxl(__x, __y); } +# 2419 +constexpr float fmin(float __x, float __y) +# 2420 +{ return __builtin_fminf(__x, __y); } +# 2423 +constexpr long double fmin(long double __x, long double __y) +# 2424 +{ return __builtin_fminl(__x, __y); } +# 2429 +constexpr float hypot(float __x, float __y) +# 2430 +{ return __builtin_hypotf(__x, __y); } +# 2433 +constexpr long double hypot(long double __x, long double __y) +# 2434 +{ return __builtin_hypotl(__x, __y); } +# 2439 +constexpr int ilogb(float __x) +# 2440 +{ return __builtin_ilogbf(__x); } +# 2443 +constexpr int ilogb(long double __x) +# 2444 +{ return __builtin_ilogbl(__x); } +# 2448 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, int> ::__type +# 2452 +ilogb(_Tp __x) +# 2453 +{ return __builtin_ilogb(__x); } +# 2458 +constexpr float lgamma(float __x) +# 2459 +{ return __builtin_lgammaf(__x); } +# 2462 +constexpr long double lgamma(long double __x) +# 2463 +{ return __builtin_lgammal(__x); } +# 2467 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2470 +lgamma(_Tp __x) +# 2471 +{ return __builtin_lgamma(__x); } +# 2476 +constexpr long long llrint(float __x) +# 2477 +{ return __builtin_llrintf(__x); } +# 2480 +constexpr long long llrint(long double __x) +# 2481 +{ return __builtin_llrintl(__x); } +# 2485 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long long> ::__type +# 2488 +llrint(_Tp __x) +# 2489 +{ return __builtin_llrint(__x); } +# 2494 +constexpr long long llround(float __x) +# 2495 +{ return __builtin_llroundf(__x); } +# 2498 +constexpr long long llround(long double __x) +# 2499 +{ return __builtin_llroundl(__x); } +# 2503 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long long> ::__type +# 2506 +llround(_Tp __x) +# 2507 +{ return __builtin_llround(__x); } +# 2512 +constexpr float log1p(float __x) +# 2513 +{ return __builtin_log1pf(__x); } +# 2516 +constexpr long double log1p(long double __x) +# 2517 +{ return __builtin_log1pl(__x); } +# 2521 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2524 +log1p(_Tp __x) +# 2525 +{ return __builtin_log1p(__x); } +# 2531 +constexpr float log2(float __x) +# 2532 +{ return __builtin_log2f(__x); } +# 2535 +constexpr long double log2(long double __x) +# 2536 +{ return __builtin_log2l(__x); } +# 2540 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2543 +log2(_Tp __x) +# 2544 +{ return __builtin_log2(__x); } +# 2549 +constexpr float logb(float __x) +# 2550 +{ return __builtin_logbf(__x); } +# 2553 +constexpr long double logb(long double __x) +# 2554 +{ return __builtin_logbl(__x); } +# 2558 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2561 +logb(_Tp __x) +# 2562 +{ return __builtin_logb(__x); } +# 2567 +constexpr long lrint(float __x) +# 2568 +{ return __builtin_lrintf(__x); } +# 2571 +constexpr long lrint(long double __x) +# 2572 +{ return __builtin_lrintl(__x); } +# 2576 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long> ::__type +# 2579 +lrint(_Tp __x) +# 2580 +{ return __builtin_lrint(__x); } +# 2585 +constexpr long lround(float __x) +# 2586 +{ return __builtin_lroundf(__x); } +# 2589 +constexpr long lround(long double __x) +# 2590 +{ return __builtin_lroundl(__x); } +# 2594 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long> ::__type +# 2597 +lround(_Tp __x) +# 2598 +{ return __builtin_lround(__x); } +# 2603 +constexpr float nearbyint(float __x) +# 2604 +{ return __builtin_nearbyintf(__x); } +# 2607 +constexpr long double nearbyint(long double __x) +# 2608 +{ return __builtin_nearbyintl(__x); } +# 2612 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2615 +nearbyint(_Tp __x) +# 2616 +{ return __builtin_nearbyint(__x); } +# 2621 +constexpr float nextafter(float __x, float __y) +# 2622 +{ return __builtin_nextafterf(__x, __y); } +# 2625 +constexpr long double nextafter(long double __x, long double __y) +# 2626 +{ return __builtin_nextafterl(__x, __y); } +# 2631 +constexpr float nexttoward(float __x, long double __y) +# 2632 +{ return __builtin_nexttowardf(__x, __y); } +# 2635 +constexpr long double nexttoward(long double __x, long double __y) +# 2636 +{ return __builtin_nexttowardl(__x, __y); } +# 2640 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2643 +nexttoward(_Tp __x, long double __y) +# 2644 +{ return __builtin_nexttoward(__x, __y); } +# 2649 +constexpr float remainder(float __x, float __y) +# 2650 +{ return __builtin_remainderf(__x, __y); } +# 2653 +constexpr long double remainder(long double __x, long double __y) +# 2654 +{ return __builtin_remainderl(__x, __y); } +# 2659 +inline float remquo(float __x, float __y, int *__pquo) +# 2660 +{ return __builtin_remquof(__x, __y, __pquo); } +# 2663 +inline long double remquo(long double __x, long double __y, int *__pquo) +# 2664 +{ return __builtin_remquol(__x, __y, __pquo); } +# 2669 +constexpr float rint(float __x) +# 2670 +{ return __builtin_rintf(__x); } +# 2673 +constexpr long double rint(long double __x) +# 2674 +{ return __builtin_rintl(__x); } +# 2678 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2681 +rint(_Tp __x) +# 2682 +{ return __builtin_rint(__x); } +# 2687 +constexpr float round(float __x) +# 2688 +{ return __builtin_roundf(__x); } +# 2691 +constexpr long double round(long double __x) +# 2692 +{ return __builtin_roundl(__x); } +# 2696 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2699 +round(_Tp __x) +# 2700 +{ return __builtin_round(__x); } +# 2705 +constexpr float scalbln(float __x, long __ex) +# 2706 +{ return __builtin_scalblnf(__x, __ex); } +# 2709 +constexpr long double scalbln(long double __x, long __ex) +# 2710 +{ return __builtin_scalblnl(__x, __ex); } +# 2714 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2717 +scalbln(_Tp __x, long __ex) +# 2718 +{ return __builtin_scalbln(__x, __ex); } +# 2723 +constexpr float scalbn(float __x, int __ex) +# 2724 +{ return __builtin_scalbnf(__x, __ex); } +# 2727 +constexpr long double scalbn(long double __x, int __ex) +# 2728 +{ return __builtin_scalbnl(__x, __ex); } +# 2732 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2735 +scalbn(_Tp __x, int __ex) +# 2736 +{ return __builtin_scalbn(__x, __ex); } +# 2741 +constexpr float tgamma(float __x) +# 2742 +{ return __builtin_tgammaf(__x); } +# 2745 +constexpr long double tgamma(long double __x) +# 2746 +{ return __builtin_tgammal(__x); } +# 2750 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2753 +tgamma(_Tp __x) +# 2754 +{ return __builtin_tgamma(__x); } +# 2759 +constexpr float trunc(float __x) +# 2760 +{ return __builtin_truncf(__x); } +# 2763 +constexpr long double trunc(long double __x) +# 2764 +{ return __builtin_truncl(__x); } +# 2768 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 2771 +trunc(_Tp __x) +# 2772 +{ return __builtin_trunc(__x); } +# 3682 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3684 +copysign(_Tp __x, _Up __y) +# 3685 +{ +# 3686 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3687 +return copysign((__type)__x, (__type)__y); +# 3688 +} +# 3690 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3692 +fdim(_Tp __x, _Up __y) +# 3693 +{ +# 3694 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3695 +return fdim((__type)__x, (__type)__y); +# 3696 +} +# 3698 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3700 +fmax(_Tp __x, _Up __y) +# 3701 +{ +# 3702 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3703 +return fmax((__type)__x, (__type)__y); +# 3704 +} +# 3706 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3708 +fmin(_Tp __x, _Up __y) +# 3709 +{ +# 3710 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3711 +return fmin((__type)__x, (__type)__y); +# 3712 +} +# 3714 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3716 +hypot(_Tp __x, _Up __y) +# 3717 +{ +# 3718 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3719 +return hypot((__type)__x, (__type)__y); +# 3720 +} +# 3722 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3724 +nextafter(_Tp __x, _Up __y) +# 3725 +{ +# 3726 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3727 +return nextafter((__type)__x, (__type)__y); +# 3728 +} +# 3730 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3732 +remainder(_Tp __x, _Up __y) +# 3733 +{ +# 3734 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3735 +return remainder((__type)__x, (__type)__y); +# 3736 +} +# 3738 +template< class _Tp, class _Up> inline typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 3740 +remquo(_Tp __x, _Up __y, int *__pquo) +# 3741 +{ +# 3742 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 3743 +return remquo((__type)__x, (__type)__y, __pquo); +# 3744 +} +# 3746 +template< class _Tp, class _Up, class _Vp> constexpr typename __gnu_cxx::__promote_3< _Tp, _Up, _Vp> ::__type +# 3748 +fma(_Tp __x, _Up __y, _Vp __z) +# 3749 +{ +# 3750 +typedef typename __gnu_cxx::__promote_3< _Tp, _Up, _Vp> ::__type __type; +# 3751 +return fma((__type)__x, (__type)__y, (__type)__z); +# 3752 +} +# 3760 +template< class _Tp> inline _Tp +# 3762 +__hypot3(_Tp __x, _Tp __y, _Tp __z) +# 3763 +{ +# 3764 +__x = std::abs(__x); +# 3765 +__y = std::abs(__y); +# 3766 +__z = std::abs(__z); +# 3767 +if (_Tp __a = (__x < __y) ? (__y < __z) ? __z : __y : ((__x < __z) ? __z : __x)) { +# 3768 +return __a * std::sqrt((((__x / __a) * (__x / __a)) + ((__y / __a) * (__y / __a))) + ((__z / __a) * (__z / __a))); } else { +# 3772 +return {}; } +# 3773 +} +# 3776 +inline float hypot(float __x, float __y, float __z) +# 3777 +{ return std::__hypot3< float> (__x, __y, __z); } +# 3780 +inline double hypot(double __x, double __y, double __z) +# 3781 +{ return std::__hypot3< double> (__x, __y, __z); } +# 3784 +inline long double hypot(long double __x, long double __y, long double __z) +# 3785 +{ return std::__hypot3< long double> (__x, __y, __z); } +# 3787 +template< class _Tp, class _Up, class _Vp> __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> +# 3789 +hypot(_Tp __x, _Up __y, _Vp __z) +# 3790 +{ +# 3791 +using __type = __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> ; +# 3792 +return std::__hypot3< __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> > (__x, __y, __z); +# 3793 +} +# 3903 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +} +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 49 +void __throw_bad_exception() __attribute((__noreturn__)); +# 53 +void __throw_bad_alloc() __attribute((__noreturn__)); +# 56 +void __throw_bad_array_new_length() __attribute((__noreturn__)); +# 60 +void __throw_bad_cast() __attribute((__noreturn__, __cold__)); +# 63 +void __throw_bad_typeid() __attribute((__noreturn__, __cold__)); +# 67 +void __throw_logic_error(const char *) __attribute((__noreturn__, __cold__)); +# 70 +void __throw_domain_error(const char *) __attribute((__noreturn__, __cold__)); +# 73 +void __throw_invalid_argument(const char *) __attribute((__noreturn__, __cold__)); +# 76 +void __throw_length_error(const char *) __attribute((__noreturn__, __cold__)); +# 79 +void __throw_out_of_range(const char *) __attribute((__noreturn__, __cold__)); +# 82 +void __throw_out_of_range_fmt(const char *, ...) __attribute((__noreturn__, __cold__)) +# 83 + __attribute((__format__(__gnu_printf__, 1, 2))); +# 86 +void __throw_runtime_error(const char *) __attribute((__noreturn__, __cold__)); +# 89 +void __throw_range_error(const char *) __attribute((__noreturn__, __cold__)); +# 92 +void __throw_overflow_error(const char *) __attribute((__noreturn__, __cold__)); +# 95 +void __throw_underflow_error(const char *) __attribute((__noreturn__, __cold__)); +# 99 +void __throw_ios_failure(const char *) __attribute((__noreturn__, __cold__)); +# 102 +void __throw_ios_failure(const char *, int) __attribute((__noreturn__, __cold__)); +# 106 +void __throw_system_error(int) __attribute((__noreturn__, __cold__)); +# 110 +void __throw_future_error(int) __attribute((__noreturn__, __cold__)); +# 114 +void __throw_bad_function_call() __attribute((__noreturn__, __cold__)); +# 141 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/functexcept.h" 3 +} +# 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +template< class _Tp> +# 51 +struct __is_integer_nonstrict : public std::__is_integer< _Tp> { +# 54 +using std::__is_integer< _Tp> ::__value; +# 57 +enum { __width = (__value) ? sizeof(_Tp) * (8) : (0)}; +# 58 +}; +# 60 +template< class _Value> +# 61 +struct __numeric_traits_integer { +# 64 +static_assert((__is_integer_nonstrict< _Value> ::__value), "invalid specialization"); +# 70 +static const bool __is_signed = (((_Value)(-1)) < 0); +# 71 +static const int __digits = (__is_integer_nonstrict< _Value> ::__width - __is_signed); +# 75 +static const _Value __max = (__is_signed ? (((((_Value)1) << (__digits - 1)) - 1) << 1) + 1 : (~((_Value)0))); +# 78 +static const _Value __min = (__is_signed ? (-__max) - 1 : ((_Value)0)); +# 79 +}; +# 81 +template< class _Value> const _Value __numeric_traits_integer< _Value> ::__min; +# 84 +template< class _Value> const _Value __numeric_traits_integer< _Value> ::__max; +# 87 +template< class _Value> const bool __numeric_traits_integer< _Value> ::__is_signed; +# 90 +template< class _Value> const int __numeric_traits_integer< _Value> ::__digits; +# 137 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +template< class _Tp> using __int_traits = __numeric_traits_integer< _Tp> ; +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +template< class _Value> +# 158 +struct __numeric_traits_floating { +# 161 +static const int __max_digits10 = ((2) + ((((std::template __are_same< _Value, float> ::__value) ? 24 : ((std::template __are_same< _Value, double> ::__value) ? 53 : 64)) * 643L) / (2136))); +# 164 +static const bool __is_signed = true; +# 165 +static const int __digits10 = ((std::template __are_same< _Value, float> ::__value) ? 6 : ((std::template __are_same< _Value, double> ::__value) ? 15 : 18)); +# 166 +static const int __max_exponent10 = ((std::template __are_same< _Value, float> ::__value) ? 38 : ((std::template __are_same< _Value, double> ::__value) ? 308 : 4932)); +# 167 +}; +# 169 +template< class _Value> const int __numeric_traits_floating< _Value> ::__max_digits10; +# 172 +template< class _Value> const bool __numeric_traits_floating< _Value> ::__is_signed; +# 175 +template< class _Value> const int __numeric_traits_floating< _Value> ::__digits10; +# 178 +template< class _Value> const int __numeric_traits_floating< _Value> ::__max_exponent10; +# 186 +template< class _Value> +# 187 +struct __numeric_traits : public __numeric_traits_integer< _Value> { +# 189 +}; +# 192 +template<> struct __numeric_traits< float> : public __numeric_traits_floating< float> { +# 194 +}; +# 197 +template<> struct __numeric_traits< double> : public __numeric_traits_floating< double> { +# 199 +}; +# 202 +template<> struct __numeric_traits< long double> : public __numeric_traits_floating< long double> { +# 204 +}; +# 239 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/ext/numeric_traits.h" 3 +} +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +namespace std __attribute((__visibility__("default"))) { +# 69 +template< class _Tp> class reference_wrapper; +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp, _Tp __v> +# 87 +struct integral_constant { +# 89 +static constexpr inline _Tp value = (__v); +# 90 +using value_type = _Tp; +# 91 +using type = integral_constant; +# 92 +constexpr operator value_type() const noexcept { return value; } +# 95 +constexpr value_type operator()() const noexcept { return value; } +# 97 +}; +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< bool __v> using __bool_constant = integral_constant< bool, __v> ; +# 111 +using true_type = __bool_constant< true> ; +# 114 +using false_type = __bool_constant< false> ; +# 119 +template< bool __v> using bool_constant = __bool_constant< __v> ; +# 127 +template< bool , class _Tp = void> +# 128 +struct enable_if { +# 129 +}; +# 132 +template< class _Tp> +# 133 +struct enable_if< true, _Tp> { +# 134 +using type = _Tp; }; +# 137 +template< bool _Cond, class _Tp = void> using __enable_if_t = typename enable_if< _Cond, _Tp> ::type; +# 140 +template< bool > +# 141 +struct __conditional { +# 143 +template< class _Tp, class > using type = _Tp; +# 145 +}; +# 148 +template<> struct __conditional< false> { +# 150 +template< class , class _Up> using type = _Up; +# 152 +}; +# 155 +template< bool _Cond, class _If, class _Else> using __conditional_t = typename __conditional< _Cond> ::template type< _If, _Else> ; +# 160 +template< class _Type> +# 161 +struct __type_identity { +# 162 +using type = _Type; }; +# 164 +template< class _Tp> using __type_identity_t = typename __type_identity< _Tp> ::type; +# 167 +namespace __detail { +# 170 +template< class _Tp, class ...> using __first_t = _Tp; +# 174 +template< class ..._Bn> auto __or_fn(int)->__first_t< integral_constant< bool, false> , __enable_if_t< !((bool)_Bn::value)> ...> ; +# 178 +template< class ..._Bn> auto __or_fn(...)->true_type; +# 181 +template< class ..._Bn> auto __and_fn(int)->__first_t< integral_constant< bool, true> , __enable_if_t< (bool)_Bn::value> ...> ; +# 185 +template< class ..._Bn> auto __and_fn(...)->false_type; +# 187 +} +# 192 +template< class ..._Bn> +# 193 +struct __or_ : public __decltype((__detail::__or_fn< _Bn...> (0))) { +# 195 +}; +# 197 +template< class ..._Bn> +# 198 +struct __and_ : public __decltype((__detail::__and_fn< _Bn...> (0))) { +# 200 +}; +# 202 +template< class _Pp> +# 203 +struct __not_ : public __bool_constant< !((bool)_Pp::value)> { +# 205 +}; +# 211 +template< class ..._Bn> constexpr inline bool +# 212 +__or_v = (__or_< _Bn...> ::value); +# 213 +template< class ..._Bn> constexpr inline bool +# 214 +__and_v = (__and_< _Bn...> ::value); +# 216 +namespace __detail { +# 218 +template< class , class _B1, class ..._Bn> +# 219 +struct __disjunction_impl { +# 220 +using type = _B1; }; +# 222 +template< class _B1, class _B2, class ..._Bn> +# 223 +struct __disjunction_impl< __enable_if_t< !((bool)_B1::value)> , _B1, _B2, _Bn...> { +# 224 +using type = typename __detail::__disjunction_impl< void, _B2, _Bn...> ::type; }; +# 226 +template< class , class _B1, class ..._Bn> +# 227 +struct __conjunction_impl { +# 228 +using type = _B1; }; +# 230 +template< class _B1, class _B2, class ..._Bn> +# 231 +struct __conjunction_impl< __enable_if_t< (bool)_B1::value> , _B1, _B2, _Bn...> { +# 232 +using type = typename __detail::__conjunction_impl< void, _B2, _Bn...> ::type; }; +# 233 +} +# 236 +template< class ..._Bn> +# 237 +struct conjunction : public __detail::__conjunction_impl< void, _Bn...> ::type { +# 239 +}; +# 242 +template<> struct conjunction< > : public true_type { +# 244 +}; +# 246 +template< class ..._Bn> +# 247 +struct disjunction : public __detail::__disjunction_impl< void, _Bn...> ::type { +# 249 +}; +# 252 +template<> struct disjunction< > : public false_type { +# 254 +}; +# 256 +template< class _Pp> +# 257 +struct negation : public __not_< _Pp> ::type { +# 259 +}; +# 264 +template< class ..._Bn> constexpr inline bool +# 265 +conjunction_v = (conjunction< _Bn...> ::value); +# 267 +template< class ..._Bn> constexpr inline bool +# 268 +disjunction_v = (disjunction< _Bn...> ::value); +# 270 +template< class _Pp> constexpr inline bool +# 271 +negation_v = (negation< _Pp> ::value); +# 277 +template< class > struct is_reference; +# 279 +template< class > struct is_function; +# 281 +template< class > struct is_void; +# 283 +template< class > struct remove_cv; +# 285 +template< class > struct is_const; +# 289 +template< class > struct __is_array_unknown_bounds; +# 295 +template< class _Tp, size_t = sizeof(_Tp)> constexpr true_type +# 296 +__is_complete_or_unbounded(__type_identity< _Tp> ) +# 297 +{ return {}; } +# 299 +template< class _TypeIdentity, class +# 300 +_NestedType = typename _TypeIdentity::type> constexpr typename __or_< is_reference< _NestedType> , is_function< _NestedType> , is_void< _NestedType> , __is_array_unknown_bounds< _NestedType> > ::type +# 306 +__is_complete_or_unbounded(_TypeIdentity) +# 307 +{ return {}; } +# 310 +template< class _Tp> using __remove_cv_t = typename remove_cv< _Tp> ::type; +# 317 +template< class _Tp> +# 318 +struct is_void : public false_type { +# 319 +}; +# 322 +template<> struct is_void< void> : public true_type { +# 323 +}; +# 326 +template<> struct is_void< const void> : public true_type { +# 327 +}; +# 330 +template<> struct is_void< volatile void> : public true_type { +# 331 +}; +# 334 +template<> struct is_void< const volatile void> : public true_type { +# 335 +}; +# 338 +template< class > +# 339 +struct __is_integral_helper : public false_type { +# 340 +}; +# 343 +template<> struct __is_integral_helper< bool> : public true_type { +# 344 +}; +# 347 +template<> struct __is_integral_helper< char> : public true_type { +# 348 +}; +# 351 +template<> struct __is_integral_helper< signed char> : public true_type { +# 352 +}; +# 355 +template<> struct __is_integral_helper< unsigned char> : public true_type { +# 356 +}; +# 362 +template<> struct __is_integral_helper< wchar_t> : public true_type { +# 363 +}; +# 372 +template<> struct __is_integral_helper< char16_t> : public true_type { +# 373 +}; +# 376 +template<> struct __is_integral_helper< char32_t> : public true_type { +# 377 +}; +# 380 +template<> struct __is_integral_helper< short> : public true_type { +# 381 +}; +# 384 +template<> struct __is_integral_helper< unsigned short> : public true_type { +# 385 +}; +# 388 +template<> struct __is_integral_helper< int> : public true_type { +# 389 +}; +# 392 +template<> struct __is_integral_helper< unsigned> : public true_type { +# 393 +}; +# 396 +template<> struct __is_integral_helper< long> : public true_type { +# 397 +}; +# 400 +template<> struct __is_integral_helper< unsigned long> : public true_type { +# 401 +}; +# 404 +template<> struct __is_integral_helper< long long> : public true_type { +# 405 +}; +# 408 +template<> struct __is_integral_helper< unsigned long long> : public true_type { +# 409 +}; +# 416 +template<> struct __is_integral_helper< __int128> : public true_type { +# 417 +}; +# 421 +template<> struct __is_integral_helper< unsigned __int128> : public true_type { +# 422 +}; +# 460 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 461 +struct is_integral : public __is_integral_helper< __remove_cv_t< _Tp> > ::type { +# 463 +}; +# 466 +template< class > +# 467 +struct __is_floating_point_helper : public false_type { +# 468 +}; +# 471 +template<> struct __is_floating_point_helper< float> : public true_type { +# 472 +}; +# 475 +template<> struct __is_floating_point_helper< double> : public true_type { +# 476 +}; +# 479 +template<> struct __is_floating_point_helper< long double> : public true_type { +# 480 +}; +# 514 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template<> struct __is_floating_point_helper< __float128> : public true_type { +# 515 +}; +# 520 +template< class _Tp> +# 521 +struct is_floating_point : public __is_floating_point_helper< __remove_cv_t< _Tp> > ::type { +# 523 +}; +# 527 +template< class _Tp> +# 528 +struct is_array : public __bool_constant< __is_array(_Tp)> { +# 530 +}; +# 545 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class > +# 546 +struct __is_pointer_helper : public false_type { +# 547 +}; +# 549 +template< class _Tp> +# 550 +struct __is_pointer_helper< _Tp *> : public true_type { +# 551 +}; +# 554 +template< class _Tp> +# 555 +struct is_pointer : public __is_pointer_helper< __remove_cv_t< _Tp> > ::type { +# 557 +}; +# 560 +template< class > +# 561 +struct is_lvalue_reference : public false_type { +# 562 +}; +# 564 +template< class _Tp> +# 565 +struct is_lvalue_reference< _Tp &> : public true_type { +# 566 +}; +# 569 +template< class > +# 570 +struct is_rvalue_reference : public false_type { +# 571 +}; +# 573 +template< class _Tp> +# 574 +struct is_rvalue_reference< _Tp &&> : public true_type { +# 575 +}; +# 579 +template< class _Tp> +# 580 +struct is_member_object_pointer : public __bool_constant< __is_member_object_pointer(_Tp)> { +# 582 +}; +# 601 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 602 +struct is_member_function_pointer : public __bool_constant< __is_member_function_pointer(_Tp)> { +# 604 +}; +# 622 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 623 +struct is_enum : public __bool_constant< __is_enum(_Tp)> { +# 625 +}; +# 628 +template< class _Tp> +# 629 +struct is_union : public __bool_constant< __is_union(_Tp)> { +# 631 +}; +# 634 +template< class _Tp> +# 635 +struct is_class : public __bool_constant< __is_class(_Tp)> { +# 637 +}; +# 641 +template< class _Tp> +# 642 +struct is_function : public __bool_constant< __is_function(_Tp)> { +# 644 +}; +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 662 +struct is_null_pointer : public false_type { +# 663 +}; +# 666 +template<> struct is_null_pointer< __decltype((nullptr))> : public true_type { +# 667 +}; +# 670 +template<> struct is_null_pointer< const __decltype((nullptr))> : public true_type { +# 671 +}; +# 674 +template<> struct is_null_pointer< volatile __decltype((nullptr))> : public true_type { +# 675 +}; +# 678 +template<> struct is_null_pointer< const volatile __decltype((nullptr))> : public true_type { +# 679 +}; +# 683 +template< class _Tp> +# 684 +struct __is_nullptr_t : public is_null_pointer< _Tp> { +# 686 +} __attribute((__deprecated__("use \'std::is_null_pointer\' instead"))); +# 693 +template< class _Tp> +# 694 +struct is_reference : public __bool_constant< __is_reference(_Tp)> { +# 696 +}; +# 715 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 716 +struct is_arithmetic : public __or_< is_integral< _Tp> , is_floating_point< _Tp> > ::type { +# 718 +}; +# 721 +template< class _Tp> +# 722 +struct is_fundamental : public __or_< is_arithmetic< _Tp> , is_void< _Tp> , is_null_pointer< _Tp> > ::type { +# 725 +}; +# 729 +template< class _Tp> +# 730 +struct is_object : public __bool_constant< __is_object(_Tp)> { +# 732 +}; +# 741 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class > struct is_member_pointer; +# 745 +template< class _Tp> +# 746 +struct is_scalar : public __or_< is_arithmetic< _Tp> , is_enum< _Tp> , is_pointer< _Tp> , is_member_pointer< _Tp> , is_null_pointer< _Tp> > ::type { +# 749 +}; +# 752 +template< class _Tp> +# 753 +struct is_compound : public __bool_constant< !is_fundamental< _Tp> ::value> { +# 754 +}; +# 758 +template< class _Tp> +# 759 +struct is_member_pointer : public __bool_constant< __is_member_pointer(_Tp)> { +# 761 +}; +# 779 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class , class > struct is_same; +# 783 +template< class _Tp, class ..._Types> using __is_one_of = __or_< is_same< _Tp, _Types> ...> ; +# 788 +template< class _Tp> using __is_signed_integer = __is_one_of< __remove_cv_t< _Tp> , signed char, signed short, signed int, signed long, signed long long, signed __int128> ; +# 808 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> using __is_unsigned_integer = __is_one_of< __remove_cv_t< _Tp> , unsigned char, unsigned short, unsigned, unsigned long, unsigned long long, unsigned __int128> ; +# 827 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> using __is_standard_integer = __or_< __is_signed_integer< _Tp> , __is_unsigned_integer< _Tp> > ; +# 832 +template< class ...> using __void_t = void; +# 838 +template< class > +# 839 +struct is_const : public false_type { +# 840 +}; +# 842 +template< class _Tp> +# 843 +struct is_const< const _Tp> : public true_type { +# 844 +}; +# 847 +template< class > +# 848 +struct is_volatile : public false_type { +# 849 +}; +# 851 +template< class _Tp> +# 852 +struct is_volatile< volatile _Tp> : public true_type { +# 853 +}; +# 856 +template< class _Tp> +# 857 +struct is_trivial : public __bool_constant< __is_trivial(_Tp)> { +# 860 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 862 +}; +# 865 +template< class _Tp> +# 866 +struct is_trivially_copyable : public __bool_constant< __is_trivially_copyable(_Tp)> { +# 869 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 871 +}; +# 874 +template< class _Tp> +# 875 +struct is_standard_layout : public __bool_constant< __is_standard_layout(_Tp)> { +# 878 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 880 +}; +# 887 +template< class _Tp> +# 890 +struct is_pod : public __bool_constant< __is_pod(_Tp)> { +# 893 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 895 +}; +# 901 +template< class _Tp> +# 904 +struct +# 903 + [[__deprecated__]] is_literal_type : public __bool_constant< __is_literal_type(_Tp)> { +# 907 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 909 +}; +# 912 +template< class _Tp> +# 913 +struct is_empty : public __bool_constant< __is_empty(_Tp)> { +# 915 +}; +# 918 +template< class _Tp> +# 919 +struct is_polymorphic : public __bool_constant< __is_polymorphic(_Tp)> { +# 921 +}; +# 926 +template< class _Tp> +# 927 +struct is_final : public __bool_constant< __is_final(_Tp)> { +# 929 +}; +# 933 +template< class _Tp> +# 934 +struct is_abstract : public __bool_constant< __is_abstract(_Tp)> { +# 936 +}; +# 939 +template< class _Tp, bool +# 940 + = is_arithmetic< _Tp> ::value> +# 941 +struct __is_signed_helper : public false_type { +# 942 +}; +# 944 +template< class _Tp> +# 945 +struct __is_signed_helper< _Tp, true> : public __bool_constant< ((_Tp)(-1)) < ((_Tp)0)> { +# 947 +}; +# 951 +template< class _Tp> +# 952 +struct is_signed : public __is_signed_helper< _Tp> ::type { +# 954 +}; +# 957 +template< class _Tp> +# 958 +struct is_unsigned : public __and_< is_arithmetic< _Tp> , __not_< is_signed< _Tp> > > ::type { +# 960 +}; +# 963 +template< class _Tp, class _Up = _Tp &&> _Up __declval(int); +# 967 +template< class _Tp> _Tp __declval(long); +# 972 +template< class _Tp> auto declval() noexcept->__decltype((__declval< _Tp> (0))); +# 975 +template< class > struct remove_all_extents; +# 979 +template< class _Tp> +# 980 +struct __is_array_known_bounds : public false_type { +# 982 +}; +# 984 +template< class _Tp, size_t _Size> +# 985 +struct __is_array_known_bounds< _Tp [_Size]> : public true_type { +# 987 +}; +# 989 +template< class _Tp> +# 990 +struct __is_array_unknown_bounds : public false_type { +# 992 +}; +# 994 +template< class _Tp> +# 995 +struct __is_array_unknown_bounds< _Tp []> : public true_type { +# 997 +}; +# 1006 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +struct __do_is_destructible_impl { +# 1008 +template< class _Tp, class = __decltype((declval< _Tp &> ().~_Tp()))> static true_type __test(int); +# 1011 +template< class > static false_type __test(...); +# 1013 +}; +# 1015 +template< class _Tp> +# 1016 +struct __is_destructible_impl : public __do_is_destructible_impl { +# 1019 +using type = __decltype((__test< _Tp> (0))); +# 1020 +}; +# 1022 +template< class _Tp, bool +# 1023 + = __or_< is_void< _Tp> , __is_array_unknown_bounds< _Tp> , is_function< _Tp> > ::value, bool +# 1026 + = __or_< is_reference< _Tp> , is_scalar< _Tp> > ::value> struct __is_destructible_safe; +# 1029 +template< class _Tp> +# 1030 +struct __is_destructible_safe< _Tp, false, false> : public __is_destructible_impl< typename remove_all_extents< _Tp> ::type> ::type { +# 1033 +}; +# 1035 +template< class _Tp> +# 1036 +struct __is_destructible_safe< _Tp, true, false> : public false_type { +# 1037 +}; +# 1039 +template< class _Tp> +# 1040 +struct __is_destructible_safe< _Tp, false, true> : public true_type { +# 1041 +}; +# 1045 +template< class _Tp> +# 1046 +struct is_destructible : public __is_destructible_safe< _Tp> ::type { +# 1049 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1051 +}; +# 1059 +struct __do_is_nt_destructible_impl { +# 1061 +template< class _Tp> static __bool_constant< noexcept(declval< _Tp &> ().~_Tp())> __test(int); +# 1065 +template< class > static false_type __test(...); +# 1067 +}; +# 1069 +template< class _Tp> +# 1070 +struct __is_nt_destructible_impl : public __do_is_nt_destructible_impl { +# 1073 +using type = __decltype((__test< _Tp> (0))); +# 1074 +}; +# 1076 +template< class _Tp, bool +# 1077 + = __or_< is_void< _Tp> , __is_array_unknown_bounds< _Tp> , is_function< _Tp> > ::value, bool +# 1080 + = __or_< is_reference< _Tp> , is_scalar< _Tp> > ::value> struct __is_nt_destructible_safe; +# 1083 +template< class _Tp> +# 1084 +struct __is_nt_destructible_safe< _Tp, false, false> : public __is_nt_destructible_impl< typename remove_all_extents< _Tp> ::type> ::type { +# 1087 +}; +# 1089 +template< class _Tp> +# 1090 +struct __is_nt_destructible_safe< _Tp, true, false> : public false_type { +# 1091 +}; +# 1093 +template< class _Tp> +# 1094 +struct __is_nt_destructible_safe< _Tp, false, true> : public true_type { +# 1095 +}; +# 1099 +template< class _Tp> +# 1100 +struct is_nothrow_destructible : public __is_nt_destructible_safe< _Tp> ::type { +# 1103 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1105 +}; +# 1108 +template< class _Tp, class ..._Args> using __is_constructible_impl = __bool_constant< __is_constructible(_Tp, _Args...)> ; +# 1114 +template< class _Tp, class ..._Args> +# 1115 +struct is_constructible : public __is_constructible_impl< _Tp, _Args...> { +# 1118 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1120 +}; +# 1123 +template< class _Tp> +# 1124 +struct is_default_constructible : public __is_constructible_impl< _Tp> { +# 1127 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1129 +}; +# 1132 +template< class _Tp, class = void> +# 1133 +struct __add_lvalue_reference_helper { +# 1134 +using type = _Tp; }; +# 1136 +template< class _Tp> +# 1137 +struct __add_lvalue_reference_helper< _Tp, __void_t< _Tp &> > { +# 1138 +using type = _Tp &; }; +# 1140 +template< class _Tp> using __add_lval_ref_t = typename __add_lvalue_reference_helper< _Tp> ::type; +# 1145 +template< class _Tp> +# 1146 +struct is_copy_constructible : public __is_constructible_impl< _Tp, __add_lval_ref_t< const _Tp> > { +# 1149 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1151 +}; +# 1154 +template< class _Tp, class = void> +# 1155 +struct __add_rvalue_reference_helper { +# 1156 +using type = _Tp; }; +# 1158 +template< class _Tp> +# 1159 +struct __add_rvalue_reference_helper< _Tp, __void_t< _Tp &&> > { +# 1160 +using type = _Tp &&; }; +# 1162 +template< class _Tp> using __add_rval_ref_t = typename __add_rvalue_reference_helper< _Tp> ::type; +# 1167 +template< class _Tp> +# 1168 +struct is_move_constructible : public __is_constructible_impl< _Tp, __add_rval_ref_t< _Tp> > { +# 1171 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1173 +}; +# 1176 +template< class _Tp, class ..._Args> using __is_nothrow_constructible_impl = __bool_constant< __is_nothrow_constructible(_Tp, _Args...)> ; +# 1182 +template< class _Tp, class ..._Args> +# 1183 +struct is_nothrow_constructible : public __is_nothrow_constructible_impl< _Tp, _Args...> { +# 1186 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1188 +}; +# 1191 +template< class _Tp> +# 1192 +struct is_nothrow_default_constructible : public __is_nothrow_constructible_impl< _Tp> { +# 1195 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1197 +}; +# 1200 +template< class _Tp> +# 1201 +struct is_nothrow_copy_constructible : public __is_nothrow_constructible_impl< _Tp, __add_lval_ref_t< const _Tp> > { +# 1204 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1206 +}; +# 1209 +template< class _Tp> +# 1210 +struct is_nothrow_move_constructible : public __is_nothrow_constructible_impl< _Tp, __add_rval_ref_t< _Tp> > { +# 1213 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1215 +}; +# 1218 +template< class _Tp, class _Up> using __is_assignable_impl = __bool_constant< __is_assignable(_Tp, _Up)> ; +# 1223 +template< class _Tp, class _Up> +# 1224 +struct is_assignable : public __is_assignable_impl< _Tp, _Up> { +# 1227 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1229 +}; +# 1232 +template< class _Tp> +# 1233 +struct is_copy_assignable : public __is_assignable_impl< __add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> > { +# 1237 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1239 +}; +# 1242 +template< class _Tp> +# 1243 +struct is_move_assignable : public __is_assignable_impl< __add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> > { +# 1246 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1248 +}; +# 1251 +template< class _Tp, class _Up> using __is_nothrow_assignable_impl = __bool_constant< __is_nothrow_assignable(_Tp, _Up)> ; +# 1257 +template< class _Tp, class _Up> +# 1258 +struct is_nothrow_assignable : public __is_nothrow_assignable_impl< _Tp, _Up> { +# 1261 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1263 +}; +# 1266 +template< class _Tp> +# 1267 +struct is_nothrow_copy_assignable : public __is_nothrow_assignable_impl< __add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> > { +# 1271 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1273 +}; +# 1276 +template< class _Tp> +# 1277 +struct is_nothrow_move_assignable : public __is_nothrow_assignable_impl< __add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> > { +# 1281 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1283 +}; +# 1286 +template< class _Tp, class ..._Args> using __is_trivially_constructible_impl = __bool_constant< __is_trivially_constructible(_Tp, _Args...)> ; +# 1292 +template< class _Tp, class ..._Args> +# 1293 +struct is_trivially_constructible : public __is_trivially_constructible_impl< _Tp, _Args...> { +# 1296 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1298 +}; +# 1301 +template< class _Tp> +# 1302 +struct is_trivially_default_constructible : public __is_trivially_constructible_impl< _Tp> { +# 1305 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1307 +}; +# 1319 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +struct __do_is_implicitly_default_constructible_impl { +# 1321 +template< class _Tp> static void __helper(const _Tp &); +# 1324 +template< class _Tp> static true_type __test(const _Tp &, __decltype((__helper< const _Tp &> ({}))) * = 0); +# 1328 +static false_type __test(...); +# 1329 +}; +# 1331 +template< class _Tp> +# 1332 +struct __is_implicitly_default_constructible_impl : public __do_is_implicitly_default_constructible_impl { +# 1335 +using type = __decltype((__test(declval< _Tp> ()))); +# 1336 +}; +# 1338 +template< class _Tp> +# 1339 +struct __is_implicitly_default_constructible_safe : public __is_implicitly_default_constructible_impl< _Tp> ::type { +# 1341 +}; +# 1343 +template< class _Tp> +# 1344 +struct __is_implicitly_default_constructible : public __and_< __is_constructible_impl< _Tp> , __is_implicitly_default_constructible_safe< _Tp> > ::type { +# 1347 +}; +# 1351 +template< class _Tp> +# 1352 +struct is_trivially_copy_constructible : public __is_trivially_constructible_impl< _Tp, __add_lval_ref_t< const _Tp> > { +# 1355 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1357 +}; +# 1360 +template< class _Tp> +# 1361 +struct is_trivially_move_constructible : public __is_trivially_constructible_impl< _Tp, __add_rval_ref_t< _Tp> > { +# 1364 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1366 +}; +# 1369 +template< class _Tp, class _Up> using __is_trivially_assignable_impl = __bool_constant< __is_trivially_assignable(_Tp, _Up)> ; +# 1375 +template< class _Tp, class _Up> +# 1376 +struct is_trivially_assignable : public __is_trivially_assignable_impl< _Tp, _Up> { +# 1379 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1381 +}; +# 1384 +template< class _Tp> +# 1385 +struct is_trivially_copy_assignable : public __is_trivially_assignable_impl< __add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> > { +# 1389 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1391 +}; +# 1394 +template< class _Tp> +# 1395 +struct is_trivially_move_assignable : public __is_trivially_assignable_impl< __add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> > { +# 1399 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1401 +}; +# 1404 +template< class _Tp> +# 1405 +struct is_trivially_destructible : public __and_< __is_destructible_safe< _Tp> , __bool_constant< __has_trivial_destructor(_Tp)> > ::type { +# 1409 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1411 +}; +# 1415 +template< class _Tp> +# 1416 +struct has_virtual_destructor : public __bool_constant< __has_virtual_destructor(_Tp)> { +# 1419 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1421 +}; +# 1427 +template< class _Tp> +# 1428 +struct alignment_of : public integral_constant< unsigned long, __alignof__(_Tp)> { +# 1431 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1433 +}; +# 1436 +template< class > +# 1437 +struct rank : public integral_constant< unsigned long, 0UL> { +# 1438 +}; +# 1440 +template< class _Tp, size_t _Size> +# 1441 +struct rank< _Tp [_Size]> : public integral_constant< unsigned long, 1 + std::rank< _Tp> ::value> { +# 1442 +}; +# 1444 +template< class _Tp> +# 1445 +struct rank< _Tp []> : public integral_constant< unsigned long, 1 + std::rank< _Tp> ::value> { +# 1446 +}; +# 1449 +template< class , unsigned _Uint = 0U> +# 1450 +struct extent : public integral_constant< unsigned long, 0UL> { +# 1451 +}; +# 1453 +template< class _Tp, size_t _Size> +# 1454 +struct extent< _Tp [_Size], 0> : public integral_constant< unsigned long, _Size> { +# 1455 +}; +# 1457 +template< class _Tp, unsigned _Uint, size_t _Size> +# 1458 +struct extent< _Tp [_Size], _Uint> : public std::extent< _Tp, _Uint - (1)> ::type { +# 1459 +}; +# 1461 +template< class _Tp> +# 1462 +struct extent< _Tp [], 0> : public integral_constant< unsigned long, 0UL> { +# 1463 +}; +# 1465 +template< class _Tp, unsigned _Uint> +# 1466 +struct extent< _Tp [], _Uint> : public std::extent< _Tp, _Uint - (1)> ::type { +# 1467 +}; +# 1474 +template< class _Tp, class _Up> +# 1475 +struct is_same : public __bool_constant< __is_same(_Tp, _Up)> { +# 1477 +}; +# 1491 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Base, class _Derived> +# 1492 +struct is_base_of : public __bool_constant< __is_base_of(_Base, _Derived)> { +# 1494 +}; +# 1497 +template< class _From, class _To> +# 1498 +struct is_convertible : public __bool_constant< __is_convertible(_From, _To)> { +# 1500 +}; +# 1540 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _ToElementType, class _FromElementType> using __is_array_convertible = is_convertible< _FromElementType (*)[], _ToElementType (*)[]> ; +# 1600 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++14-extensions" +template< class _Tp, class ..._Args> +# 1603 +struct __is_nothrow_new_constructible_impl : public __bool_constant< noexcept((::new (std::declval< void *> ()) _Tp(std::declval< _Args> ()...)))> { +# 1607 +}; +# 1609 +template< class _Tp, class ..._Args> constexpr inline bool +# 1610 +__is_nothrow_new_constructible = (__and_< is_constructible< _Tp, _Args...> , __is_nothrow_new_constructible_impl< _Tp, _Args...> > ::value); +# 1613 +#pragma GCC diagnostic pop +# 1618 +template< class _Tp> +# 1619 +struct remove_const { +# 1620 +using type = _Tp; }; +# 1622 +template< class _Tp> +# 1623 +struct remove_const< const _Tp> { +# 1624 +using type = _Tp; }; +# 1627 +template< class _Tp> +# 1628 +struct remove_volatile { +# 1629 +using type = _Tp; }; +# 1631 +template< class _Tp> +# 1632 +struct remove_volatile< volatile _Tp> { +# 1633 +using type = _Tp; }; +# 1637 +template< class _Tp> +# 1638 +struct remove_cv { +# 1639 +using type = __remove_cv(_Tp); }; +# 1659 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 1660 +struct add_const { +# 1661 +using type = const _Tp; }; +# 1664 +template< class _Tp> +# 1665 +struct add_volatile { +# 1666 +using type = volatile _Tp; }; +# 1669 +template< class _Tp> +# 1670 +struct add_cv { +# 1671 +using type = const volatile _Tp; }; +# 1675 +template< class _Tp> using remove_const_t = typename remove_const< _Tp> ::type; +# 1679 +template< class _Tp> using remove_volatile_t = typename remove_volatile< _Tp> ::type; +# 1683 +template< class _Tp> using remove_cv_t = typename remove_cv< _Tp> ::type; +# 1687 +template< class _Tp> using add_const_t = typename add_const< _Tp> ::type; +# 1691 +template< class _Tp> using add_volatile_t = typename add_volatile< _Tp> ::type; +# 1695 +template< class _Tp> using add_cv_t = typename add_cv< _Tp> ::type; +# 1703 +template< class _Tp> +# 1704 +struct remove_reference { +# 1705 +using type = __remove_reference(_Tp); }; +# 1721 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 1722 +struct add_lvalue_reference { +# 1723 +using type = __add_lval_ref_t< _Tp> ; }; +# 1726 +template< class _Tp> +# 1727 +struct add_rvalue_reference { +# 1728 +using type = __add_rval_ref_t< _Tp> ; }; +# 1732 +template< class _Tp> using remove_reference_t = typename remove_reference< _Tp> ::type; +# 1736 +template< class _Tp> using add_lvalue_reference_t = typename add_lvalue_reference< _Tp> ::type; +# 1740 +template< class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference< _Tp> ::type; +# 1749 +template< class _Unqualified, bool _IsConst, bool _IsVol> struct __cv_selector; +# 1752 +template< class _Unqualified> +# 1753 +struct __cv_selector< _Unqualified, false, false> { +# 1754 +using __type = _Unqualified; }; +# 1756 +template< class _Unqualified> +# 1757 +struct __cv_selector< _Unqualified, false, true> { +# 1758 +using __type = volatile _Unqualified; }; +# 1760 +template< class _Unqualified> +# 1761 +struct __cv_selector< _Unqualified, true, false> { +# 1762 +using __type = const _Unqualified; }; +# 1764 +template< class _Unqualified> +# 1765 +struct __cv_selector< _Unqualified, true, true> { +# 1766 +using __type = const volatile _Unqualified; }; +# 1768 +template< class _Qualified, class _Unqualified, bool +# 1769 +_IsConst = is_const< _Qualified> ::value, bool +# 1770 +_IsVol = is_volatile< _Qualified> ::value> +# 1771 +class __match_cv_qualifiers { +# 1773 +using __match = __cv_selector< _Unqualified, _IsConst, _IsVol> ; +# 1776 +public: using __type = typename __cv_selector< _Unqualified, _IsConst, _IsVol> ::__type; +# 1777 +}; +# 1780 +template< class _Tp> +# 1781 +struct __make_unsigned { +# 1782 +using __type = _Tp; }; +# 1785 +template<> struct __make_unsigned< char> { +# 1786 +using __type = unsigned char; }; +# 1789 +template<> struct __make_unsigned< signed char> { +# 1790 +using __type = unsigned char; }; +# 1793 +template<> struct __make_unsigned< short> { +# 1794 +using __type = unsigned short; }; +# 1797 +template<> struct __make_unsigned< int> { +# 1798 +using __type = unsigned; }; +# 1801 +template<> struct __make_unsigned< long> { +# 1802 +using __type = unsigned long; }; +# 1805 +template<> struct __make_unsigned< long long> { +# 1806 +using __type = unsigned long long; }; +# 1811 +template<> struct __make_unsigned< __int128> { +# 1812 +using __type = unsigned __int128; }; +# 1834 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp, bool +# 1835 +_IsInt = is_integral< _Tp> ::value, bool +# 1836 +_IsEnum = __is_enum(_Tp)> class __make_unsigned_selector; +# 1839 +template< class _Tp> +# 1840 +class __make_unsigned_selector< _Tp, true, false> { +# 1842 +using __unsigned_type = typename __make_unsigned< __remove_cv_t< _Tp> > ::__type; +# 1846 +public: using __type = typename __match_cv_qualifiers< _Tp, __unsigned_type> ::__type; +# 1848 +}; +# 1850 +class __make_unsigned_selector_base { +# 1853 +protected: template< class ...> struct _List { }; +# 1855 +template< class _Tp, class ..._Up> +# 1856 +struct _List< _Tp, _Up...> : public __make_unsigned_selector_base::template _List< _Up...> { +# 1857 +static constexpr inline std::size_t __size = sizeof(_Tp); }; +# 1859 +template< size_t _Sz, class _Tp, bool = _Sz <= _Tp::__size> struct __select; +# 1862 +template< size_t _Sz, class _Uint, class ..._UInts> +# 1863 +struct __select< _Sz, _List< _Uint, _UInts...> , true> { +# 1864 +using __type = _Uint; }; +# 1866 +template< size_t _Sz, class _Uint, class ..._UInts> +# 1867 +struct __select< _Sz, _List< _Uint, _UInts...> , false> : public __make_unsigned_selector_base::template __select< _Sz, _List< _UInts...> > { +# 1869 +}; +# 1870 +}; +# 1873 +template< class _Tp> +# 1874 +class __make_unsigned_selector< _Tp, false, true> : private __make_unsigned_selector_base { +# 1878 +using _UInts = _List< unsigned char, unsigned short, unsigned, unsigned long, unsigned long long> ; +# 1881 +using __unsigned_type = typename __select< sizeof(_Tp), _List< unsigned char, unsigned short, unsigned, unsigned long, unsigned long long> > ::__type; +# 1884 +public: using __type = typename __match_cv_qualifiers< _Tp, __unsigned_type> ::__type; +# 1886 +}; +# 1893 +template<> struct __make_unsigned< wchar_t> { +# 1895 +using __type = __make_unsigned_selector< wchar_t, false, true> ::__type; +# 1897 +}; +# 1909 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template<> struct __make_unsigned< char16_t> { +# 1911 +using __type = __make_unsigned_selector< char16_t, false, true> ::__type; +# 1913 +}; +# 1916 +template<> struct __make_unsigned< char32_t> { +# 1918 +using __type = __make_unsigned_selector< char32_t, false, true> ::__type; +# 1920 +}; +# 1927 +template< class _Tp> +# 1928 +struct make_unsigned { +# 1929 +using type = typename __make_unsigned_selector< _Tp> ::__type; }; +# 1932 +template<> struct make_unsigned< bool> ; +# 1933 +template<> struct make_unsigned< const bool> ; +# 1934 +template<> struct make_unsigned< volatile bool> ; +# 1935 +template<> struct make_unsigned< const volatile bool> ; +# 1940 +template< class _Tp> +# 1941 +struct __make_signed { +# 1942 +using __type = _Tp; }; +# 1945 +template<> struct __make_signed< char> { +# 1946 +using __type = signed char; }; +# 1949 +template<> struct __make_signed< unsigned char> { +# 1950 +using __type = signed char; }; +# 1953 +template<> struct __make_signed< unsigned short> { +# 1954 +using __type = signed short; }; +# 1957 +template<> struct __make_signed< unsigned> { +# 1958 +using __type = signed int; }; +# 1961 +template<> struct __make_signed< unsigned long> { +# 1962 +using __type = signed long; }; +# 1965 +template<> struct __make_signed< unsigned long long> { +# 1966 +using __type = signed long long; }; +# 1971 +template<> struct __make_signed< unsigned __int128> { +# 1972 +using __type = __int128; }; +# 1994 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp, bool +# 1995 +_IsInt = is_integral< _Tp> ::value, bool +# 1996 +_IsEnum = __is_enum(_Tp)> class __make_signed_selector; +# 1999 +template< class _Tp> +# 2000 +class __make_signed_selector< _Tp, true, false> { +# 2002 +using __signed_type = typename __make_signed< __remove_cv_t< _Tp> > ::__type; +# 2006 +public: using __type = typename __match_cv_qualifiers< _Tp, __signed_type> ::__type; +# 2008 +}; +# 2011 +template< class _Tp> +# 2012 +class __make_signed_selector< _Tp, false, true> { +# 2014 +using __unsigned_type = typename __make_unsigned_selector< _Tp> ::__type; +# 2017 +public: using __type = typename std::__make_signed_selector< __unsigned_type> ::__type; +# 2018 +}; +# 2025 +template<> struct __make_signed< wchar_t> { +# 2027 +using __type = __make_signed_selector< wchar_t, false, true> ::__type; +# 2029 +}; +# 2041 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template<> struct __make_signed< char16_t> { +# 2043 +using __type = __make_signed_selector< char16_t, false, true> ::__type; +# 2045 +}; +# 2048 +template<> struct __make_signed< char32_t> { +# 2050 +using __type = __make_signed_selector< char32_t, false, true> ::__type; +# 2052 +}; +# 2059 +template< class _Tp> +# 2060 +struct make_signed { +# 2061 +using type = typename __make_signed_selector< _Tp> ::__type; }; +# 2064 +template<> struct make_signed< bool> ; +# 2065 +template<> struct make_signed< const bool> ; +# 2066 +template<> struct make_signed< volatile bool> ; +# 2067 +template<> struct make_signed< const volatile bool> ; +# 2071 +template< class _Tp> using make_signed_t = typename make_signed< _Tp> ::type; +# 2075 +template< class _Tp> using make_unsigned_t = typename make_unsigned< _Tp> ::type; +# 2082 +template< class _Tp> +# 2083 +struct remove_extent { +# 2084 +using type = _Tp; }; +# 2086 +template< class _Tp, size_t _Size> +# 2087 +struct remove_extent< _Tp [_Size]> { +# 2088 +using type = _Tp; }; +# 2090 +template< class _Tp> +# 2091 +struct remove_extent< _Tp []> { +# 2092 +using type = _Tp; }; +# 2095 +template< class _Tp> +# 2096 +struct remove_all_extents { +# 2097 +using type = _Tp; }; +# 2099 +template< class _Tp, size_t _Size> +# 2100 +struct remove_all_extents< _Tp [_Size]> { +# 2101 +using type = typename std::remove_all_extents< _Tp> ::type; }; +# 2103 +template< class _Tp> +# 2104 +struct remove_all_extents< _Tp []> { +# 2105 +using type = typename std::remove_all_extents< _Tp> ::type; }; +# 2109 +template< class _Tp> using remove_extent_t = typename remove_extent< _Tp> ::type; +# 2113 +template< class _Tp> using remove_all_extents_t = typename remove_all_extents< _Tp> ::type; +# 2121 +template< class _Tp> +# 2122 +struct remove_pointer { +# 2123 +using type = __remove_pointer(_Tp); }; +# 2139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp, class = void> +# 2140 +struct __add_pointer_helper { +# 2141 +using type = _Tp; }; +# 2143 +template< class _Tp> +# 2144 +struct __add_pointer_helper< _Tp, __void_t< _Tp *> > { +# 2145 +using type = _Tp *; }; +# 2148 +template< class _Tp> +# 2149 +struct add_pointer : public __add_pointer_helper< _Tp> { +# 2151 +}; +# 2153 +template< class _Tp> +# 2154 +struct add_pointer< _Tp &> { +# 2155 +using type = _Tp *; }; +# 2157 +template< class _Tp> +# 2158 +struct add_pointer< _Tp &&> { +# 2159 +using type = _Tp *; }; +# 2163 +template< class _Tp> using remove_pointer_t = typename remove_pointer< _Tp> ::type; +# 2167 +template< class _Tp> using add_pointer_t = typename add_pointer< _Tp> ::type; +# 2171 +template< size_t _Len> +# 2172 +struct __aligned_storage_msa { +# 2174 +union __type { +# 2176 +unsigned char __data[_Len]; +# 2177 +struct __attribute((__aligned__)) { } __align; +# 2178 +}; +# 2179 +}; +# 2194 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa< _Len> ::__type)> +# 2198 +struct aligned_storage { +# 2200 +union type { +# 2202 +unsigned char __data[_Len]; +# 2203 +struct __attribute((__aligned__(_Align))) { } __align; +# 2204 +}; +# 2205 +}; +# 2207 +template< class ..._Types> +# 2208 +struct __strictest_alignment { +# 2210 +static const size_t _S_alignment = (0); +# 2211 +static const size_t _S_size = (0); +# 2212 +}; +# 2214 +template< class _Tp, class ..._Types> +# 2215 +struct __strictest_alignment< _Tp, _Types...> { +# 2217 +static const size_t _S_alignment = ((__alignof__(_Tp) > __strictest_alignment< _Types...> ::_S_alignment) ? __alignof__(_Tp) : __strictest_alignment< _Types...> ::_S_alignment); +# 2220 +static const size_t _S_size = ((sizeof(_Tp) > __strictest_alignment< _Types...> ::_S_size) ? sizeof(_Tp) : __strictest_alignment< _Types...> ::_S_size); +# 2223 +}; +# 2225 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 2240 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< size_t _Len, class ..._Types> +# 2243 +struct aligned_union { +# 2246 +static_assert((sizeof...(_Types) != (0)), "At least one type is required"); +# 2248 +private: using __strictest = __strictest_alignment< _Types...> ; +# 2249 +static const size_t _S_len = ((_Len > __strictest::_S_size) ? _Len : __strictest::_S_size); +# 2253 +public: static const size_t alignment_value = (__strictest::_S_alignment); +# 2255 +using type = typename aligned_storage< _S_len, alignment_value> ::type; +# 2256 +}; +# 2258 +template< size_t _Len, class ..._Types> const size_t aligned_union< _Len, _Types...> ::alignment_value; +# 2260 +#pragma GCC diagnostic pop +# 2266 +template< class _Up> +# 2267 +struct __decay_selector : public __conditional_t< is_const< const _Up> ::value, remove_cv< _Up> , add_pointer< _Up> > { +# 2271 +}; +# 2273 +template< class _Up, size_t _Nm> +# 2274 +struct __decay_selector< _Up [_Nm]> { +# 2275 +using type = _Up *; }; +# 2277 +template< class _Up> +# 2278 +struct __decay_selector< _Up []> { +# 2279 +using type = _Up *; }; +# 2284 +template< class _Tp> +# 2285 +struct decay { +# 2286 +using type = typename __decay_selector< _Tp> ::type; }; +# 2288 +template< class _Tp> +# 2289 +struct decay< _Tp &> { +# 2290 +using type = typename __decay_selector< _Tp> ::type; }; +# 2292 +template< class _Tp> +# 2293 +struct decay< _Tp &&> { +# 2294 +using type = typename __decay_selector< _Tp> ::type; }; +# 2299 +template< class _Tp> +# 2300 +struct __strip_reference_wrapper { +# 2302 +using __type = _Tp; +# 2303 +}; +# 2305 +template< class _Tp> +# 2306 +struct __strip_reference_wrapper< reference_wrapper< _Tp> > { +# 2308 +using __type = _Tp &; +# 2309 +}; +# 2312 +template< class _Tp> using __decay_t = typename decay< _Tp> ::type; +# 2315 +template< class _Tp> using __decay_and_strip = __strip_reference_wrapper< __decay_t< _Tp> > ; +# 2322 +template< class ..._Cond> using _Require = __enable_if_t< __and_< _Cond...> ::value> ; +# 2326 +template< class _Tp> using __remove_cvref_t = typename remove_cv< typename remove_reference< _Tp> ::type> ::type; +# 2333 +template< bool _Cond, class _Iftrue, class _Iffalse> +# 2334 +struct conditional { +# 2335 +using type = _Iftrue; }; +# 2338 +template< class _Iftrue, class _Iffalse> +# 2339 +struct conditional< false, _Iftrue, _Iffalse> { +# 2340 +using type = _Iffalse; }; +# 2343 +template< class ..._Tp> struct common_type; +# 2355 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> +# 2356 +struct __success_type { +# 2357 +using type = _Tp; }; +# 2359 +struct __failure_type { +# 2360 +}; +# 2362 +struct __do_common_type_impl { +# 2364 +template< class _Tp, class _Up> using __cond_t = __decltype((true ? std::declval< _Tp> () : std::declval< _Up> ())); +# 2370 +template< class _Tp, class _Up> static __success_type< __decay_t< __cond_t< _Tp, _Up> > > _S_test(int); +# 2382 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class , class > static __failure_type _S_test_2(...); +# 2386 +template< class _Tp, class _Up> static __decltype((_S_test_2< _Tp, _Up> (0))) _S_test(...); +# 2389 +}; +# 2393 +template<> struct common_type< > { +# 2394 +}; +# 2397 +template< class _Tp0> +# 2398 +struct common_type< _Tp0> : public std::common_type< _Tp0, _Tp0> { +# 2400 +}; +# 2403 +template< class _Tp1, class _Tp2, class +# 2404 +_Dp1 = __decay_t< _Tp1> , class _Dp2 = __decay_t< _Tp2> > +# 2405 +struct __common_type_impl { +# 2409 +using type = common_type< _Dp1, _Dp2> ; +# 2410 +}; +# 2412 +template< class _Tp1, class _Tp2> +# 2413 +struct __common_type_impl< _Tp1, _Tp2, _Tp1, _Tp2> : private __do_common_type_impl { +# 2418 +using type = __decltype((_S_test< _Tp1, _Tp2> (0))); +# 2419 +}; +# 2422 +template< class _Tp1, class _Tp2> +# 2423 +struct common_type< _Tp1, _Tp2> : public __common_type_impl< _Tp1, _Tp2> ::type { +# 2425 +}; +# 2427 +template< class ...> +# 2428 +struct __common_type_pack { +# 2429 +}; +# 2431 +template< class , class , class = void> struct __common_type_fold; +# 2435 +template< class _Tp1, class _Tp2, class ..._Rp> +# 2436 +struct common_type< _Tp1, _Tp2, _Rp...> : public __common_type_fold< std::common_type< _Tp1, _Tp2> , __common_type_pack< _Rp...> > { +# 2439 +}; +# 2444 +template< class _CTp, class ..._Rp> +# 2445 +struct __common_type_fold< _CTp, __common_type_pack< _Rp...> , __void_t< typename _CTp::type> > : public common_type< typename _CTp::type, _Rp...> { +# 2448 +}; +# 2451 +template< class _CTp, class _Rp> +# 2452 +struct __common_type_fold< _CTp, _Rp, void> { +# 2453 +}; +# 2455 +template< class _Tp, bool = __is_enum(_Tp)> +# 2456 +struct __underlying_type_impl { +# 2458 +using type = __underlying_type(_Tp); +# 2459 +}; +# 2461 +template< class _Tp> +# 2462 +struct __underlying_type_impl< _Tp, false> { +# 2463 +}; +# 2467 +template< class _Tp> +# 2468 +struct underlying_type : public __underlying_type_impl< _Tp> { +# 2470 +}; +# 2473 +template< class _Tp> +# 2474 +struct __declval_protector { +# 2476 +static const bool __stop = false; +# 2477 +}; +# 2484 +template< class _Tp> auto +# 2485 +declval() noexcept->__decltype((__declval< _Tp> (0))) +# 2486 +{ +# 2487 +static_assert((__declval_protector< _Tp> ::__stop), "declval() must not be used!"); +# 2489 +return __declval< _Tp> (0); +# 2490 +} +# 2493 +template< class _Signature> struct result_of; +# 2499 +struct __invoke_memfun_ref { }; +# 2500 +struct __invoke_memfun_deref { }; +# 2501 +struct __invoke_memobj_ref { }; +# 2502 +struct __invoke_memobj_deref { }; +# 2503 +struct __invoke_other { }; +# 2506 +template< class _Tp, class _Tag> +# 2507 +struct __result_of_success : public __success_type< _Tp> { +# 2508 +using __invoke_type = _Tag; }; +# 2511 +struct __result_of_memfun_ref_impl { +# 2513 +template< class _Fp, class _Tp1, class ..._Args> static __result_of_success< __decltype(((std::declval< _Tp1> ().*std::declval< _Fp> ())(std::declval< _Args> ()...))), __invoke_memfun_ref> _S_test(int); +# 2518 +template< class ...> static __failure_type _S_test(...); +# 2520 +}; +# 2522 +template< class _MemPtr, class _Arg, class ..._Args> +# 2523 +struct __result_of_memfun_ref : private __result_of_memfun_ref_impl { +# 2526 +using type = __decltype((_S_test< _MemPtr, _Arg, _Args...> (0))); +# 2527 +}; +# 2530 +struct __result_of_memfun_deref_impl { +# 2532 +template< class _Fp, class _Tp1, class ..._Args> static __result_of_success< __decltype((((*std::declval< _Tp1> ()).*std::declval< _Fp> ())(std::declval< _Args> ()...))), __invoke_memfun_deref> _S_test(int); +# 2537 +template< class ...> static __failure_type _S_test(...); +# 2539 +}; +# 2541 +template< class _MemPtr, class _Arg, class ..._Args> +# 2542 +struct __result_of_memfun_deref : private __result_of_memfun_deref_impl { +# 2545 +using type = __decltype((_S_test< _MemPtr, _Arg, _Args...> (0))); +# 2546 +}; +# 2549 +struct __result_of_memobj_ref_impl { +# 2551 +template< class _Fp, class _Tp1> static __result_of_success< __decltype((std::declval< _Tp1> ().*std::declval< _Fp> ())), __invoke_memobj_ref> _S_test(int); +# 2556 +template< class , class > static __failure_type _S_test(...); +# 2558 +}; +# 2560 +template< class _MemPtr, class _Arg> +# 2561 +struct __result_of_memobj_ref : private __result_of_memobj_ref_impl { +# 2564 +using type = __decltype((_S_test< _MemPtr, _Arg> (0))); +# 2565 +}; +# 2568 +struct __result_of_memobj_deref_impl { +# 2570 +template< class _Fp, class _Tp1> static __result_of_success< __decltype(((*std::declval< _Tp1> ()).*std::declval< _Fp> ())), __invoke_memobj_deref> _S_test(int); +# 2575 +template< class , class > static __failure_type _S_test(...); +# 2577 +}; +# 2579 +template< class _MemPtr, class _Arg> +# 2580 +struct __result_of_memobj_deref : private __result_of_memobj_deref_impl { +# 2583 +using type = __decltype((_S_test< _MemPtr, _Arg> (0))); +# 2584 +}; +# 2586 +template< class _MemPtr, class _Arg> struct __result_of_memobj; +# 2589 +template< class _Res, class _Class, class _Arg> +# 2590 +struct __result_of_memobj< _Res (_Class::*), _Arg> { +# 2592 +using _Argval = __remove_cvref_t< _Arg> ; +# 2593 +using _MemPtr = _Res (_Class::*); +# 2594 +using type = typename __conditional_t< __or_< is_same< _Argval, _Class> , is_base_of< _Class, _Argval> > ::value, __result_of_memobj_ref< _MemPtr, _Arg> , __result_of_memobj_deref< _MemPtr, _Arg> > ::type; +# 2599 +}; +# 2601 +template< class _MemPtr, class _Arg, class ..._Args> struct __result_of_memfun; +# 2604 +template< class _Res, class _Class, class _Arg, class ..._Args> +# 2605 +struct __result_of_memfun< _Res (_Class::*), _Arg, _Args...> { +# 2607 +using _Argval = typename remove_reference< _Arg> ::type; +# 2608 +using _MemPtr = _Res (_Class::*); +# 2609 +using type = typename __conditional_t< is_base_of< _Class, _Argval> ::value, __result_of_memfun_ref< _MemPtr, _Arg, _Args...> , __result_of_memfun_deref< _MemPtr, _Arg, _Args...> > ::type; +# 2613 +}; +# 2620 +template< class _Tp, class _Up = __remove_cvref_t< _Tp> > +# 2621 +struct __inv_unwrap { +# 2623 +using type = _Tp; +# 2624 +}; +# 2626 +template< class _Tp, class _Up> +# 2627 +struct __inv_unwrap< _Tp, reference_wrapper< _Up> > { +# 2629 +using type = _Up &; +# 2630 +}; +# 2632 +template< bool , bool , class _Functor, class ..._ArgTypes> +# 2633 +struct __result_of_impl { +# 2635 +using type = __failure_type; +# 2636 +}; +# 2638 +template< class _MemPtr, class _Arg> +# 2639 +struct __result_of_impl< true, false, _MemPtr, _Arg> : public __result_of_memobj< __decay_t< _MemPtr> , typename __inv_unwrap< _Arg> ::type> { +# 2642 +}; +# 2644 +template< class _MemPtr, class _Arg, class ..._Args> +# 2645 +struct __result_of_impl< false, true, _MemPtr, _Arg, _Args...> : public __result_of_memfun< __decay_t< _MemPtr> , typename __inv_unwrap< _Arg> ::type, _Args...> { +# 2648 +}; +# 2651 +struct __result_of_other_impl { +# 2653 +template< class _Fn, class ..._Args> static __result_of_success< __decltype((std::declval< _Fn> ()(std::declval< _Args> ()...))), __invoke_other> _S_test(int); +# 2658 +template< class ...> static __failure_type _S_test(...); +# 2660 +}; +# 2662 +template< class _Functor, class ..._ArgTypes> +# 2663 +struct __result_of_impl< false, false, _Functor, _ArgTypes...> : private __result_of_other_impl { +# 2666 +using type = __decltype((_S_test< _Functor, _ArgTypes...> (0))); +# 2667 +}; +# 2670 +template< class _Functor, class ..._ArgTypes> +# 2671 +struct __invoke_result : public __result_of_impl< is_member_object_pointer< typename remove_reference< _Functor> ::type> ::value, is_member_function_pointer< typename remove_reference< _Functor> ::type> ::value, _Functor, _ArgTypes...> ::type { +# 2681 +}; +# 2684 +template< class _Fn, class ..._Args> using __invoke_result_t = typename __invoke_result< _Fn, _Args...> ::type; +# 2688 +template< class _Functor, class ..._ArgTypes> +# 2689 +struct result_of< _Functor (_ArgTypes ...)> : public __invoke_result< _Functor, _ArgTypes...> { +# 2691 +} __attribute((__deprecated__("use \'std::invoke_result\' instead"))); +# 2694 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 2697 +template< size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa< _Len> ::__type)> using aligned_storage_t = typename aligned_storage< _Len, _Align> ::type; +# 2701 +template< size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union< _Len, _Types...> ::type; +# 2703 +#pragma GCC diagnostic pop +# 2706 +template< class _Tp> using decay_t = typename decay< _Tp> ::type; +# 2710 +template< bool _Cond, class _Tp = void> using enable_if_t = typename enable_if< _Cond, _Tp> ::type; +# 2714 +template< bool _Cond, class _Iftrue, class _Iffalse> using conditional_t = typename conditional< _Cond, _Iftrue, _Iffalse> ::type; +# 2718 +template< class ..._Tp> using common_type_t = typename common_type< _Tp...> ::type; +# 2722 +template< class _Tp> using underlying_type_t = typename underlying_type< _Tp> ::type; +# 2726 +template< class _Tp> using result_of_t = typename result_of< _Tp> ::type; +# 2732 +template< class ...> using void_t = void; +# 2759 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Default, class _AlwaysVoid, +# 2760 +template< class ...> class _Op, class ..._Args> +# 2761 +struct __detector { +# 2763 +using type = _Default; +# 2764 +using __is_detected = false_type; +# 2765 +}; +# 2768 +template< class _Default, template< class ...> class _Op, class ... +# 2769 +_Args> +# 2770 +struct __detector< _Default, __void_t< _Op< _Args...> > , _Op, _Args...> { +# 2772 +using type = _Op< _Args...> ; +# 2773 +using __is_detected = true_type; +# 2774 +}; +# 2776 +template< class _Default, template< class ...> class _Op, class ... +# 2777 +_Args> using __detected_or = __detector< _Default, void, _Op, _Args...> ; +# 2782 +template< class _Default, template< class ...> class _Op, class ... +# 2783 +_Args> using __detected_or_t = typename __detected_or< _Default, _Op, _Args...> ::type; +# 2801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> struct __is_swappable; +# 2804 +template< class _Tp> struct __is_nothrow_swappable; +# 2807 +template< class > +# 2808 +struct __is_tuple_like_impl : public false_type { +# 2809 +}; +# 2812 +template< class _Tp> +# 2813 +struct __is_tuple_like : public __is_tuple_like_impl< __remove_cvref_t< _Tp> > ::type { +# 2815 +}; +# 2818 +template< class _Tp> inline _Require< __not_< __is_tuple_like< _Tp> > , is_move_constructible< _Tp> , is_move_assignable< _Tp> > swap(_Tp &, _Tp &) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_move_assignable< _Tp> > ::value); +# 2828 +template< class _Tp, size_t _Nm> inline __enable_if_t< __is_swappable< _Tp> ::value> swap(_Tp (& __a)[_Nm], _Tp (& __b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp> ::value); +# 2836 +namespace __swappable_details { +# 2837 +using std::swap; +# 2839 +struct __do_is_swappable_impl { +# 2841 +template< class _Tp, class +# 2842 + = __decltype((swap(std::declval< _Tp &> (), std::declval< _Tp &> ())))> static true_type +# 2841 +__test(int); +# 2845 +template< class > static false_type __test(...); +# 2847 +}; +# 2849 +struct __do_is_nothrow_swappable_impl { +# 2851 +template< class _Tp> static __bool_constant< noexcept(swap(std::declval< _Tp &> (), std::declval< _Tp &> ()))> __test(int); +# 2856 +template< class > static false_type __test(...); +# 2858 +}; +# 2860 +} +# 2862 +template< class _Tp> +# 2863 +struct __is_swappable_impl : public __swappable_details::__do_is_swappable_impl { +# 2866 +using type = __decltype((__test< _Tp> (0))); +# 2867 +}; +# 2869 +template< class _Tp> +# 2870 +struct __is_nothrow_swappable_impl : public __swappable_details::__do_is_nothrow_swappable_impl { +# 2873 +using type = __decltype((__test< _Tp> (0))); +# 2874 +}; +# 2876 +template< class _Tp> +# 2877 +struct __is_swappable : public __is_swappable_impl< _Tp> ::type { +# 2879 +}; +# 2881 +template< class _Tp> +# 2882 +struct __is_nothrow_swappable : public __is_nothrow_swappable_impl< _Tp> ::type { +# 2884 +}; +# 2891 +template< class _Tp> +# 2892 +struct is_swappable : public __is_swappable_impl< _Tp> ::type { +# 2895 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 2897 +}; +# 2900 +template< class _Tp> +# 2901 +struct is_nothrow_swappable : public __is_nothrow_swappable_impl< _Tp> ::type { +# 2904 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 2906 +}; +# 2910 +template< class _Tp> constexpr inline bool +# 2911 +is_swappable_v = (is_swappable< _Tp> ::value); +# 2915 +template< class _Tp> constexpr inline bool +# 2916 +is_nothrow_swappable_v = (is_nothrow_swappable< _Tp> ::value); +# 2921 +namespace __swappable_with_details { +# 2922 +using std::swap; +# 2924 +struct __do_is_swappable_with_impl { +# 2926 +template< class _Tp, class _Up, class +# 2927 + = __decltype((swap(std::declval< _Tp> (), std::declval< _Up> ()))), class +# 2929 + = __decltype((swap(std::declval< _Up> (), std::declval< _Tp> ())))> static true_type +# 2926 +__test(int); +# 2932 +template< class , class > static false_type __test(...); +# 2934 +}; +# 2936 +struct __do_is_nothrow_swappable_with_impl { +# 2938 +template< class _Tp, class _Up> static __bool_constant< noexcept(swap(std::declval< _Tp> (), std::declval< _Up> ())) && noexcept(swap(std::declval< _Up> (), std::declval< _Tp> ()))> __test(int); +# 2945 +template< class , class > static false_type __test(...); +# 2947 +}; +# 2949 +} +# 2951 +template< class _Tp, class _Up> +# 2952 +struct __is_swappable_with_impl : public __swappable_with_details::__do_is_swappable_with_impl { +# 2955 +using type = __decltype((__test< _Tp, _Up> (0))); +# 2956 +}; +# 2959 +template< class _Tp> +# 2960 +struct __is_swappable_with_impl< _Tp &, _Tp &> : public __swappable_details::__do_is_swappable_impl { +# 2963 +using type = __decltype((__test< _Tp &> (0))); +# 2964 +}; +# 2966 +template< class _Tp, class _Up> +# 2967 +struct __is_nothrow_swappable_with_impl : public __swappable_with_details::__do_is_nothrow_swappable_with_impl { +# 2970 +using type = __decltype((__test< _Tp, _Up> (0))); +# 2971 +}; +# 2974 +template< class _Tp> +# 2975 +struct __is_nothrow_swappable_with_impl< _Tp &, _Tp &> : public __swappable_details::__do_is_nothrow_swappable_impl { +# 2978 +using type = __decltype((__test< _Tp &> (0))); +# 2979 +}; +# 2983 +template< class _Tp, class _Up> +# 2984 +struct is_swappable_with : public __is_swappable_with_impl< _Tp, _Up> ::type { +# 2987 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "first template argument must be a complete class or an unbounded array"); +# 2989 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Up> {})), "second template argument must be a complete class or an unbounded array"); +# 2991 +}; +# 2994 +template< class _Tp, class _Up> +# 2995 +struct is_nothrow_swappable_with : public __is_nothrow_swappable_with_impl< _Tp, _Up> ::type { +# 2998 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "first template argument must be a complete class or an unbounded array"); +# 3000 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Up> {})), "second template argument must be a complete class or an unbounded array"); +# 3002 +}; +# 3006 +template< class _Tp, class _Up> constexpr inline bool +# 3007 +is_swappable_with_v = (is_swappable_with< _Tp, _Up> ::value); +# 3011 +template< class _Tp, class _Up> constexpr inline bool +# 3012 +is_nothrow_swappable_with_v = (is_nothrow_swappable_with< _Tp, _Up> ::value); +# 3023 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Result, class _Ret, bool +# 3024 + = is_void< _Ret> ::value, class = void> +# 3025 +struct __is_invocable_impl : public false_type { +# 3028 +using __nothrow_conv = false_type; +# 3029 +}; +# 3032 +template< class _Result, class _Ret> +# 3033 +struct __is_invocable_impl< _Result, _Ret, true, __void_t< typename _Result::type> > : public true_type { +# 3038 +using __nothrow_conv = true_type; +# 3039 +}; +# 3041 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +# 3044 +template< class _Result, class _Ret> +# 3045 +struct __is_invocable_impl< _Result, _Ret, false, __void_t< typename _Result::type> > { +# 3051 +private: using _Res_t = typename _Result::type; +# 3055 +static _Res_t _S_get() noexcept; +# 3058 +template< class _Tp> static void _S_conv(__type_identity_t< _Tp> ) noexcept; +# 3062 +template< class _Tp, bool +# 3063 +_Nothrow = noexcept(_S_conv< _Tp> ((_S_get)())), class +# 3064 + = __decltype((_S_conv< _Tp> ((_S_get)()))), bool +# 3066 +_Dangle = __reference_converts_from_temporary(_Tp, _Res_t)> static __bool_constant< _Nothrow && (!_Dangle)> +# 3062 +_S_test(int); +# 3074 +template< class _Tp, bool = false> static false_type _S_test(...); +# 3080 +public: using type = __decltype((_S_test< _Ret, true> (1))); +# 3083 +using __nothrow_conv = __decltype((_S_test< _Ret> (1))); +# 3084 +}; +#pragma GCC diagnostic pop +# 3087 +template< class _Fn, class ..._ArgTypes> +# 3088 +struct __is_invocable : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> ::type { +# 3090 +}; +# 3092 +template< class _Fn, class _Tp, class ..._Args> constexpr bool +# 3093 +__call_is_nt(__invoke_memfun_ref) +# 3094 +{ +# 3095 +using _Up = typename __inv_unwrap< _Tp> ::type; +# 3096 +return noexcept((std::declval< typename __inv_unwrap< _Tp> ::type> ().*std::declval< _Fn> ())(std::declval< _Args> ()...)); +# 3098 +} +# 3100 +template< class _Fn, class _Tp, class ..._Args> constexpr bool +# 3101 +__call_is_nt(__invoke_memfun_deref) +# 3102 +{ +# 3103 +return noexcept(((*std::declval< _Tp> ()).*std::declval< _Fn> ())(std::declval< _Args> ()...)); +# 3105 +} +# 3107 +template< class _Fn, class _Tp> constexpr bool +# 3108 +__call_is_nt(__invoke_memobj_ref) +# 3109 +{ +# 3110 +using _Up = typename __inv_unwrap< _Tp> ::type; +# 3111 +return noexcept((std::declval< typename __inv_unwrap< _Tp> ::type> ().*std::declval< _Fn> ())); +# 3112 +} +# 3114 +template< class _Fn, class _Tp> constexpr bool +# 3115 +__call_is_nt(__invoke_memobj_deref) +# 3116 +{ +# 3117 +return noexcept(((*std::declval< _Tp> ()).*std::declval< _Fn> ())); +# 3118 +} +# 3120 +template< class _Fn, class ..._Args> constexpr bool +# 3121 +__call_is_nt(__invoke_other) +# 3122 +{ +# 3123 +return noexcept(std::declval< _Fn> ()(std::declval< _Args> ()...)); +# 3124 +} +# 3126 +template< class _Result, class _Fn, class ..._Args> +# 3127 +struct __call_is_nothrow : public __bool_constant< std::__call_is_nt< _Fn, _Args...> (typename _Result::__invoke_type{})> { +# 3131 +}; +# 3133 +template< class _Fn, class ..._Args> using __call_is_nothrow_ = __call_is_nothrow< __invoke_result< _Fn, _Args...> , _Fn, _Args...> ; +# 3138 +template< class _Fn, class ..._Args> +# 3139 +struct __is_nothrow_invocable : public __and_< __is_invocable< _Fn, _Args...> , __call_is_nothrow_< _Fn, _Args...> > ::type { +# 3142 +}; +# 3144 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +struct __nonesuchbase { }; +# 3147 +struct __nonesuch : private __nonesuchbase { +# 3148 +~__nonesuch() = delete; +# 3149 +__nonesuch(const __nonesuch &) = delete; +# 3150 +void operator=(const __nonesuch &) = delete; +# 3151 +}; +#pragma GCC diagnostic pop +# 3157 +template< class _Functor, class ..._ArgTypes> +# 3158 +struct invoke_result : public __invoke_result< _Functor, _ArgTypes...> { +# 3161 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Functor> {})), "_Functor must be a complete class or an unbounded array"); +# 3163 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3166 +}; +# 3169 +template< class _Fn, class ..._Args> using invoke_result_t = typename invoke_result< _Fn, _Args...> ::type; +# 3173 +template< class _Fn, class ..._ArgTypes> +# 3174 +struct is_invocable : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> ::type { +# 3177 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3179 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3182 +}; +# 3185 +template< class _Ret, class _Fn, class ..._ArgTypes> +# 3186 +struct is_invocable_r : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , _Ret> ::type { +# 3189 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3191 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3194 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Ret> {})), "_Ret must be a complete class or an unbounded array"); +# 3196 +}; +# 3199 +template< class _Fn, class ..._ArgTypes> +# 3200 +struct is_nothrow_invocable : public __and_< __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> , __call_is_nothrow_< _Fn, _ArgTypes...> > ::type { +# 3204 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3206 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3209 +}; +# 3215 +template< class _Result, class _Ret> using __is_nt_invocable_impl = typename __is_invocable_impl< _Result, _Ret> ::__nothrow_conv; +# 3221 +template< class _Ret, class _Fn, class ..._ArgTypes> +# 3222 +struct is_nothrow_invocable_r : public __and_< __is_nt_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , _Ret> , __call_is_nothrow_< _Fn, _ArgTypes...> > ::type { +# 3226 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3228 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3231 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Ret> {})), "_Ret must be a complete class or an unbounded array"); +# 3233 +}; +# 3251 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3252 +is_void_v = (is_void< _Tp> ::value); +# 3253 +template< class _Tp> constexpr inline bool +# 3254 +is_null_pointer_v = (is_null_pointer< _Tp> ::value); +# 3255 +template< class _Tp> constexpr inline bool +# 3256 +is_integral_v = (is_integral< _Tp> ::value); +# 3257 +template< class _Tp> constexpr inline bool +# 3258 +is_floating_point_v = (is_floating_point< _Tp> ::value); +# 3261 +template< class _Tp> constexpr inline bool +# 3262 +is_array_v = __is_array(_Tp); +# 3272 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3273 +is_pointer_v = (is_pointer< _Tp> ::value); +# 3274 +template< class _Tp> constexpr inline bool +# 3275 +is_lvalue_reference_v = false; +# 3276 +template< class _Tp> constexpr inline bool +# 3277 +is_lvalue_reference_v< _Tp &> = true; +# 3278 +template< class _Tp> constexpr inline bool +# 3279 +is_rvalue_reference_v = false; +# 3280 +template< class _Tp> constexpr inline bool +# 3281 +is_rvalue_reference_v< _Tp &&> = true; +# 3284 +template< class _Tp> constexpr inline bool +# 3285 +is_member_object_pointer_v = __is_member_object_pointer(_Tp); +# 3294 +template< class _Tp> constexpr inline bool +# 3295 +is_member_function_pointer_v = __is_member_function_pointer(_Tp); +# 3303 +template< class _Tp> constexpr inline bool +# 3304 +is_enum_v = __is_enum(_Tp); +# 3305 +template< class _Tp> constexpr inline bool +# 3306 +is_union_v = __is_union(_Tp); +# 3307 +template< class _Tp> constexpr inline bool +# 3308 +is_class_v = __is_class(_Tp); +# 3312 +template< class _Tp> constexpr inline bool +# 3313 +is_reference_v = __is_reference(_Tp); +# 3323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3324 +is_arithmetic_v = (is_arithmetic< _Tp> ::value); +# 3325 +template< class _Tp> constexpr inline bool +# 3326 +is_fundamental_v = (is_fundamental< _Tp> ::value); +# 3329 +template< class _Tp> constexpr inline bool +# 3330 +is_object_v = __is_object(_Tp); +# 3336 +template< class _Tp> constexpr inline bool +# 3337 +is_scalar_v = (is_scalar< _Tp> ::value); +# 3338 +template< class _Tp> constexpr inline bool +# 3339 +is_compound_v = (!is_fundamental_v< _Tp> ); +# 3342 +template< class _Tp> constexpr inline bool +# 3343 +is_member_pointer_v = __is_member_pointer(_Tp); +# 3349 +template< class _Tp> constexpr inline bool +# 3350 +is_const_v = false; +# 3351 +template< class _Tp> constexpr inline bool +# 3352 +is_const_v< const _Tp> = true; +# 3355 +template< class _Tp> constexpr inline bool +# 3356 +is_function_v = __is_function(_Tp); +# 3366 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3367 +is_volatile_v = false; +# 3368 +template< class _Tp> constexpr inline bool +# 3369 +is_volatile_v< volatile _Tp> = true; +# 3371 +template< class _Tp> constexpr inline bool +# 3372 +is_trivial_v = __is_trivial(_Tp); +# 3373 +template< class _Tp> constexpr inline bool +# 3374 +is_trivially_copyable_v = __is_trivially_copyable(_Tp); +# 3375 +template< class _Tp> constexpr inline bool +# 3376 +is_standard_layout_v = __is_standard_layout(_Tp); +# 3377 +template< class _Tp> constexpr inline bool +# 3379 +is_pod_v = __is_pod(_Tp); +# 3380 +template< class _Tp> +# 3381 +[[__deprecated__]] constexpr inline bool +# 3382 +is_literal_type_v = __is_literal_type(_Tp); +# 3383 +template< class _Tp> constexpr inline bool +# 3384 +is_empty_v = __is_empty(_Tp); +# 3385 +template< class _Tp> constexpr inline bool +# 3386 +is_polymorphic_v = __is_polymorphic(_Tp); +# 3387 +template< class _Tp> constexpr inline bool +# 3388 +is_abstract_v = __is_abstract(_Tp); +# 3389 +template< class _Tp> constexpr inline bool +# 3390 +is_final_v = __is_final(_Tp); +# 3392 +template< class _Tp> constexpr inline bool +# 3393 +is_signed_v = (is_signed< _Tp> ::value); +# 3394 +template< class _Tp> constexpr inline bool +# 3395 +is_unsigned_v = (is_unsigned< _Tp> ::value); +# 3397 +template< class _Tp, class ..._Args> constexpr inline bool +# 3398 +is_constructible_v = __is_constructible(_Tp, _Args...); +# 3399 +template< class _Tp> constexpr inline bool +# 3400 +is_default_constructible_v = __is_constructible(_Tp); +# 3401 +template< class _Tp> constexpr inline bool +# 3402 +is_copy_constructible_v = __is_constructible(_Tp, __add_lval_ref_t< const _Tp> ); +# 3404 +template< class _Tp> constexpr inline bool +# 3405 +is_move_constructible_v = __is_constructible(_Tp, __add_rval_ref_t< _Tp> ); +# 3408 +template< class _Tp, class _Up> constexpr inline bool +# 3409 +is_assignable_v = __is_assignable(_Tp, _Up); +# 3410 +template< class _Tp> constexpr inline bool +# 3411 +is_copy_assignable_v = __is_assignable(__add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> ); +# 3413 +template< class _Tp> constexpr inline bool +# 3414 +is_move_assignable_v = __is_assignable(__add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> ); +# 3417 +template< class _Tp> constexpr inline bool +# 3418 +is_destructible_v = (is_destructible< _Tp> ::value); +# 3420 +template< class _Tp, class ..._Args> constexpr inline bool +# 3421 +is_trivially_constructible_v = __is_trivially_constructible(_Tp, _Args...); +# 3423 +template< class _Tp> constexpr inline bool +# 3424 +is_trivially_default_constructible_v = __is_trivially_constructible(_Tp); +# 3426 +template< class _Tp> constexpr inline bool +# 3427 +is_trivially_copy_constructible_v = __is_trivially_constructible(_Tp, __add_lval_ref_t< const _Tp> ); +# 3429 +template< class _Tp> constexpr inline bool +# 3430 +is_trivially_move_constructible_v = __is_trivially_constructible(_Tp, __add_rval_ref_t< _Tp> ); +# 3433 +template< class _Tp, class _Up> constexpr inline bool +# 3434 +is_trivially_assignable_v = __is_trivially_assignable(_Tp, _Up); +# 3436 +template< class _Tp> constexpr inline bool +# 3437 +is_trivially_copy_assignable_v = __is_trivially_assignable(__add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> ); +# 3440 +template< class _Tp> constexpr inline bool +# 3441 +is_trivially_move_assignable_v = __is_trivially_assignable(__add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> ); +# 3461 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3462 +is_trivially_destructible_v = (is_trivially_destructible< _Tp> ::value); +# 3466 +template< class _Tp, class ..._Args> constexpr inline bool +# 3467 +is_nothrow_constructible_v = __is_nothrow_constructible(_Tp, _Args...); +# 3469 +template< class _Tp> constexpr inline bool +# 3470 +is_nothrow_default_constructible_v = __is_nothrow_constructible(_Tp); +# 3472 +template< class _Tp> constexpr inline bool +# 3473 +is_nothrow_copy_constructible_v = __is_nothrow_constructible(_Tp, __add_lval_ref_t< const _Tp> ); +# 3475 +template< class _Tp> constexpr inline bool +# 3476 +is_nothrow_move_constructible_v = __is_nothrow_constructible(_Tp, __add_rval_ref_t< _Tp> ); +# 3479 +template< class _Tp, class _Up> constexpr inline bool +# 3480 +is_nothrow_assignable_v = __is_nothrow_assignable(_Tp, _Up); +# 3482 +template< class _Tp> constexpr inline bool +# 3483 +is_nothrow_copy_assignable_v = __is_nothrow_assignable(__add_lval_ref_t< _Tp> , __add_lval_ref_t< const _Tp> ); +# 3486 +template< class _Tp> constexpr inline bool +# 3487 +is_nothrow_move_assignable_v = __is_nothrow_assignable(__add_lval_ref_t< _Tp> , __add_rval_ref_t< _Tp> ); +# 3490 +template< class _Tp> constexpr inline bool +# 3491 +is_nothrow_destructible_v = (is_nothrow_destructible< _Tp> ::value); +# 3494 +template< class _Tp> constexpr inline bool +# 3495 +has_virtual_destructor_v = __has_virtual_destructor(_Tp); +# 3498 +template< class _Tp> constexpr inline size_t +# 3499 +alignment_of_v = (alignment_of< _Tp> ::value); +# 3501 +template< class _Tp> constexpr inline size_t +# 3502 +rank_v = (0); +# 3503 +template< class _Tp, size_t _Size> constexpr inline size_t +# 3504 +rank_v< _Tp [_Size]> = 1 + rank_v< _Tp> ; +# 3505 +template< class _Tp> constexpr inline size_t +# 3506 +rank_v< _Tp []> = 1 + rank_v< _Tp> ; +# 3508 +template< class _Tp, unsigned _Idx = 0U> constexpr inline size_t +# 3509 +extent_v = (0); +# 3510 +template< class _Tp, size_t _Size> constexpr inline size_t +# 3511 +extent_v< _Tp [_Size], 0> = _Size; +# 3512 +template< class _Tp, unsigned _Idx, size_t _Size> constexpr inline size_t +# 3513 +extent_v< _Tp [_Size], _Idx> = extent_v< _Tp, _Idx - (1)> ; +# 3514 +template< class _Tp> constexpr inline size_t +# 3515 +extent_v< _Tp [], 0> = (0); +# 3516 +template< class _Tp, unsigned _Idx> constexpr inline size_t +# 3517 +extent_v< _Tp [], _Idx> = extent_v< _Tp, _Idx - (1)> ; +# 3520 +template< class _Tp, class _Up> constexpr inline bool +# 3521 +is_same_v = __is_same(_Tp, _Up); +# 3528 +template< class _Base, class _Derived> constexpr inline bool +# 3529 +is_base_of_v = __is_base_of(_Base, _Derived); +# 3531 +template< class _From, class _To> constexpr inline bool +# 3532 +is_convertible_v = __is_convertible(_From, _To); +# 3537 +template< class _Fn, class ..._Args> constexpr inline bool +# 3538 +is_invocable_v = (is_invocable< _Fn, _Args...> ::value); +# 3539 +template< class _Fn, class ..._Args> constexpr inline bool +# 3540 +is_nothrow_invocable_v = (is_nothrow_invocable< _Fn, _Args...> ::value); +# 3542 +template< class _Ret, class _Fn, class ..._Args> constexpr inline bool +# 3543 +is_invocable_r_v = (is_invocable_r< _Ret, _Fn, _Args...> ::value); +# 3545 +template< class _Ret, class _Fn, class ..._Args> constexpr inline bool +# 3546 +is_nothrow_invocable_r_v = (is_nothrow_invocable_r< _Ret, _Fn, _Args...> ::value); +# 3554 +template< class _Tp> +# 3555 +struct has_unique_object_representations : public bool_constant< __has_unique_object_representations(remove_cv_t< remove_all_extents_t< _Tp> > )> { +# 3560 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 3562 +}; +# 3566 +template< class _Tp> constexpr inline bool +# 3567 +has_unique_object_representations_v = (has_unique_object_representations< _Tp> ::value); +# 3575 +template< class _Tp> +# 3576 +struct is_aggregate : public bool_constant< __is_aggregate(remove_cv_t< _Tp> )> { +# 3578 +}; +# 3585 +template< class _Tp> constexpr inline bool +# 3586 +is_aggregate_v = __is_aggregate(remove_cv_t< _Tp> ); +# 4018 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/type_traits" 3 +} +# 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 49 +template< class _Tp> constexpr _Tp * +# 51 +__addressof(_Tp &__r) noexcept +# 52 +{ return __builtin_addressof(__r); } +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 69 +[[__nodiscard__]] constexpr _Tp && +# 71 +forward(typename remove_reference< _Tp> ::type &__t) noexcept +# 72 +{ return static_cast< _Tp &&>(__t); } +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 82 +[[__nodiscard__]] constexpr _Tp && +# 84 +forward(typename remove_reference< _Tp> ::type &&__t) noexcept +# 85 +{ +# 86 +static_assert((!std::template is_lvalue_reference< _Tp> ::value), "std::forward must not be used to convert an rvalue to an lvalue"); +# 88 +return static_cast< _Tp &&>(__t); +# 89 +} +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 135 +[[__nodiscard__]] constexpr typename remove_reference< _Tp> ::type && +# 137 +move(_Tp &&__t) noexcept +# 138 +{ return static_cast< typename remove_reference< _Tp> ::type &&>(__t); } +# 141 +template< class _Tp> +# 142 +struct __move_if_noexcept_cond : public __and_< __not_< is_nothrow_move_constructible< _Tp> > , is_copy_constructible< _Tp> > ::type { +# 144 +}; +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 156 +[[__nodiscard__]] constexpr __conditional_t< __move_if_noexcept_cond< _Tp> ::value, const _Tp &, _Tp &&> +# 159 +move_if_noexcept(_Tp &__x) noexcept +# 160 +{ return std::move(__x); } +# 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> +# 173 +[[__nodiscard__]] constexpr _Tp * +# 175 +addressof(_Tp &__r) noexcept +# 176 +{ return std::__addressof(__r); } +# 180 +template < typename _Tp > + const _Tp * addressof ( const _Tp && ) = delete; +# 184 +template< class _Tp, class _Up = _Tp> inline _Tp +# 187 +__exchange(_Tp &__obj, _Up &&__new_val) +# 188 +{ +# 189 +_Tp __old_val = std::move(__obj); +# 190 +__obj = std::forward< _Up> (__new_val); +# 191 +return __old_val; +# 192 +} +# 216 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/move.h" 3 +template< class _Tp> inline typename enable_if< __and_< __not_< __is_tuple_like< _Tp> > , is_move_constructible< _Tp> , is_move_assignable< _Tp> > ::value> ::type +# 226 +swap(_Tp &__a, _Tp &__b) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_move_assignable< _Tp> > ::value) +# 229 +{ +# 234 +_Tp __tmp = std::move(__a); +# 235 +__a = std::move(__b); +# 236 +__b = std::move(__tmp); +# 237 +} +# 242 +template< class _Tp, size_t _Nm> inline typename enable_if< __is_swappable< _Tp> ::value> ::type +# 250 +swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp> ::value) +# 252 +{ +# 253 +for (size_t __n = (0); __n < _Nm; ++__n) { +# 254 +swap(__a[__n], __b[__n]); } +# 255 +} +# 259 +} +# 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 48 +template< class _Tp> struct tuple_size; +# 55 +template< class _Tp, class +# 56 +_Up = typename remove_cv< _Tp> ::type, class +# 57 + = typename enable_if< is_same< _Tp, _Up> ::value> ::type, size_t +# 58 + = tuple_size< _Tp> ::value> using __enable_if_has_tuple_size = _Tp; +# 61 +template< class _Tp> +# 62 +struct tuple_size< const __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 63 +}; +# 65 +template< class _Tp> +# 66 +struct tuple_size< volatile __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 67 +}; +# 69 +template< class _Tp> +# 70 +struct tuple_size< const volatile __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 71 +}; +# 74 +template< class _Tp> constexpr inline size_t +# 75 +tuple_size_v = (tuple_size< _Tp> ::value); +# 79 +template< size_t __i, class _Tp> struct tuple_element; +# 83 +template< size_t __i, class _Tp> using __tuple_element_t = typename tuple_element< __i, _Tp> ::type; +# 86 +template< size_t __i, class _Tp> +# 87 +struct tuple_element< __i, const _Tp> { +# 89 +using type = const __tuple_element_t< __i, _Tp> ; +# 90 +}; +# 92 +template< size_t __i, class _Tp> +# 93 +struct tuple_element< __i, volatile _Tp> { +# 95 +using type = volatile __tuple_element_t< __i, _Tp> ; +# 96 +}; +# 98 +template< size_t __i, class _Tp> +# 99 +struct tuple_element< __i, const volatile _Tp> { +# 101 +using type = const volatile __tuple_element_t< __i, _Tp> ; +# 102 +}; +# 108 +template< class _Tp, class ..._Types> constexpr size_t +# 110 +__find_uniq_type_in_pack() +# 111 +{ +# 112 +constexpr size_t __sz = sizeof...(_Types); +# 113 +constexpr bool __found[__sz] = {__is_same(_Tp, _Types)...}; +# 114 +size_t __n = __sz; +# 115 +for (size_t __i = (0); __i < __sz; ++__i) +# 116 +{ +# 117 +if (__found[__i]) +# 118 +{ +# 119 +if (__n < __sz) { +# 120 +return __sz; } +# 121 +__n = __i; +# 122 +} +# 123 +} +# 124 +return __n; +# 125 +} +# 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 +template< size_t __i, class _Tp> using tuple_element_t = typename tuple_element< __i, _Tp> ::type; +# 140 +template< size_t ..._Indexes> struct _Index_tuple { }; +# 143 +template< size_t _Num> +# 144 +struct _Build_index_tuple { +# 154 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 +using __type = _Index_tuple< __integer_pack(_Num)...> ; +# 156 +}; +# 161 +template< class _Tp, _Tp ..._Idx> +# 162 +struct integer_sequence { +# 167 +typedef _Tp value_type; +# 168 +static constexpr size_t size() noexcept { return sizeof...(_Idx); } +# 169 +}; +# 172 +template< class _Tp, _Tp _Num> using make_integer_sequence = integer_sequence< _Tp, __integer_pack(_Num)...> ; +# 181 +template< size_t ..._Idx> using index_sequence = integer_sequence< unsigned long, _Idx...> ; +# 185 +template< size_t _Num> using make_index_sequence = make_integer_sequence< unsigned long, _Num> ; +# 189 +template< class ..._Types> using index_sequence_for = make_index_sequence< sizeof...(_Types)> ; +# 195 +struct in_place_t { +# 196 +explicit in_place_t() = default; +# 197 +}; +# 199 +constexpr inline in_place_t in_place{}; +# 201 +template< class _Tp> struct in_place_type_t { +# 203 +explicit in_place_type_t() = default; +# 204 +}; +# 206 +template< class _Tp> constexpr inline in_place_type_t< _Tp> +# 207 +in_place_type{}; +# 209 +template< size_t _Idx> struct in_place_index_t { +# 211 +explicit in_place_index_t() = default; +# 212 +}; +# 214 +template< size_t _Idx> constexpr inline in_place_index_t< _Idx> +# 215 +in_place_index{}; +# 217 +template< class > constexpr inline bool +# 218 +__is_in_place_type_v = false; +# 220 +template< class _Tp> constexpr inline bool +# 221 +__is_in_place_type_v< in_place_type_t< _Tp> > = true; +# 223 +template< class _Tp> using __is_in_place_type = bool_constant< __is_in_place_type_v< _Tp> > ; +# 226 +template< class > constexpr inline bool +# 227 +__is_in_place_index_v = false; +# 229 +template< size_t _Nm> constexpr inline bool +# 230 +__is_in_place_index_v< in_place_index_t< _Nm> > = true; +# 235 +template< size_t _Np, class ..._Types> +# 236 +struct _Nth_type { +# 237 +using type = __type_pack_element< _Np, _Types...> ; }; +# 284 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/utility.h" 3 +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +struct piecewise_construct_t { explicit piecewise_construct_t() = default;}; +# 82 +constexpr inline piecewise_construct_t piecewise_construct = piecewise_construct_t(); +# 88 +template< class _T1, class _T2> struct pair; +# 91 +template< class ...> class tuple; +# 98 +template< class _Tp, size_t _Nm> struct array; +# 101 +template< size_t ...> struct _Index_tuple; +# 104 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type &get(pair< _Tp1, _Tp2> & __in) noexcept; +# 108 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type &&get(pair< _Tp1, _Tp2> && __in) noexcept; +# 112 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type &get(const pair< _Tp1, _Tp2> & __in) noexcept; +# 116 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type &&get(const pair< _Tp1, _Tp2> && __in) noexcept; +# 120 +template< size_t __i, class ..._Elements> constexpr __tuple_element_t< __i, tuple< _Elements...> > &get(tuple< _Elements...> & __t) noexcept; +# 124 +template< size_t __i, class ..._Elements> constexpr const __tuple_element_t< __i, tuple< _Elements...> > &get(const tuple< _Elements...> & __t) noexcept; +# 128 +template< size_t __i, class ..._Elements> constexpr __tuple_element_t< __i, tuple< _Elements...> > &&get(tuple< _Elements...> && __t) noexcept; +# 132 +template< size_t __i, class ..._Elements> constexpr const __tuple_element_t< __i, tuple< _Elements...> > &&get(const tuple< _Elements...> && __t) noexcept; +# 136 +template< size_t _Int, class _Tp, size_t _Nm> constexpr _Tp &get(array< _Tp, _Nm> &) noexcept; +# 140 +template< size_t _Int, class _Tp, size_t _Nm> constexpr _Tp &&get(array< _Tp, _Nm> &&) noexcept; +# 144 +template< size_t _Int, class _Tp, size_t _Nm> constexpr const _Tp &get(const array< _Tp, _Nm> &) noexcept; +# 148 +template< size_t _Int, class _Tp, size_t _Nm> constexpr const _Tp &&get(const array< _Tp, _Nm> &&) noexcept; +# 158 +template< bool , class _T1, class _T2> +# 159 +struct _PCC { +# 161 +template< class _U1, class _U2> static constexpr bool +# 162 +_ConstructiblePair() +# 163 +{ +# 164 +return __and_< is_constructible< _T1, const _U1 &> , is_constructible< _T2, const _U2 &> > ::value; +# 166 +} +# 168 +template< class _U1, class _U2> static constexpr bool +# 169 +_ImplicitlyConvertiblePair() +# 170 +{ +# 171 +return __and_< is_convertible< const _U1 &, _T1> , is_convertible< const _U2 &, _T2> > ::value; +# 173 +} +# 175 +template< class _U1, class _U2> static constexpr bool +# 176 +_MoveConstructiblePair() +# 177 +{ +# 178 +return __and_< is_constructible< _T1, _U1 &&> , is_constructible< _T2, _U2 &&> > ::value; +# 180 +} +# 182 +template< class _U1, class _U2> static constexpr bool +# 183 +_ImplicitlyMoveConvertiblePair() +# 184 +{ +# 185 +return __and_< is_convertible< _U1 &&, _T1> , is_convertible< _U2 &&, _T2> > ::value; +# 187 +} +# 188 +}; +# 190 +template< class _T1, class _T2> +# 191 +struct _PCC< false, _T1, _T2> { +# 193 +template< class _U1, class _U2> static constexpr bool +# 194 +_ConstructiblePair() +# 195 +{ +# 196 +return false; +# 197 +} +# 199 +template< class _U1, class _U2> static constexpr bool +# 200 +_ImplicitlyConvertiblePair() +# 201 +{ +# 202 +return false; +# 203 +} +# 205 +template< class _U1, class _U2> static constexpr bool +# 206 +_MoveConstructiblePair() +# 207 +{ +# 208 +return false; +# 209 +} +# 211 +template< class _U1, class _U2> static constexpr bool +# 212 +_ImplicitlyMoveConvertiblePair() +# 213 +{ +# 214 +return false; +# 215 +} +# 216 +}; +# 260 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _U1, class _U2> class __pair_base { +# 263 +template< class _T1, class _T2> friend struct pair; +# 264 +__pair_base() = default; +# 265 +~__pair_base() = default; +# 266 +__pair_base(const __pair_base &) = default; +# 267 +__pair_base &operator=(const __pair_base &) = delete; +# 269 +}; +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> +# 284 +struct pair : public __pair_base< _T1, _T2> { +# 287 +typedef _T1 first_type; +# 288 +typedef _T2 second_type; +# 290 +_T1 first; +# 291 +_T2 second; +# 294 +constexpr pair(const pair &) = default; +# 295 +constexpr pair(pair &&) = default; +# 297 +template< class ..._Args1, class ..._Args2> pair(std::piecewise_construct_t, tuple< _Args1...> , tuple< _Args2...> ); +# 303 +void swap(pair &__p) noexcept(__and_< __is_nothrow_swappable< _T1> , __is_nothrow_swappable< _T2> > ::value) +# 306 +{ +# 307 +using std::swap; +# 308 +swap(first, __p.first); +# 309 +swap(second, __p.second); +# 310 +} +# 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +private: template< class ..._Args1, std::size_t ..._Indexes1, class ... +# 333 +_Args2, std::size_t ..._Indexes2> +# 332 +pair(tuple< _Args1...> &, tuple< _Args2...> &, _Index_tuple< _Indexes1...> , _Index_tuple< _Indexes2...> ); +# 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +public: +# 719 +template< class _U1 = _T1, class +# 720 +_U2 = _T2, typename enable_if< __and_< __is_implicitly_default_constructible< _U1> , __is_implicitly_default_constructible< _U2> > ::value, bool> ::type +# 724 + = true> constexpr +# 725 +pair() : first(), second() +# 726 +{ } +# 728 +template< class _U1 = _T1, class +# 729 +_U2 = _T2, typename enable_if< __and_< is_default_constructible< _U1> , is_default_constructible< _U2> , __not_< __and_< __is_implicitly_default_constructible< _U1> , __is_implicitly_default_constructible< _U2> > > > ::value, bool> ::type +# 736 + = false> constexpr explicit +# 737 +pair() : first(), second() +# 738 +{ } +# 742 +using _PCCP = _PCC< true, _T1, _T2> ; +# 746 +template< class _U1 = _T1, class _U2 = _T2, typename enable_if< _PCC< true, _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && _PCC< true, _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> (), bool> ::type +# 751 + = true> constexpr +# 752 +pair(const _T1 &__a, const _T2 &__b) : first(__a), second(__b) +# 753 +{ } +# 756 +template< class _U1 = _T1, class _U2 = _T2, typename enable_if< _PCC< true, _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && (!_PCC< true, _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> ()), bool> ::type +# 761 + = false> constexpr explicit +# 762 +pair(const _T1 &__a, const _T2 &__b) : first(__a), second(__b) +# 763 +{ } +# 767 +template< class _U1, class _U2> using _PCCFP = _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ; +# 773 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> (), bool> ::type +# 778 + = true> constexpr +# 779 +pair(const pair< _U1, _U2> &__p) : first((__p.first)), second((__p.second)) +# 781 +{ ; } +# 783 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && (!_PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> ()), bool> ::type +# 788 + = false> constexpr explicit +# 789 +pair(const pair< _U1, _U2> &__p) : first((__p.first)), second((__p.second)) +# 791 +{ ; } +# 807 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +private: struct __zero_as_null_pointer_constant { +# 809 +__zero_as_null_pointer_constant(int (__zero_as_null_pointer_constant::*)) +# 810 +{ } +# 811 +template < typename _Tp, + typename = __enable_if_t < is_null_pointer < _Tp > :: value > > + __zero_as_null_pointer_constant ( _Tp ) = delete; +# 814 +}; +# 830 +public: +# 821 +template< class _U1, std::__enable_if_t< __and_< __not_< is_reference< _U1> > , is_pointer< _T2> , is_constructible< _T1, _U1> , __not_< is_constructible< _T1, const _U1 &> > , is_convertible< _U1, _T1> > ::value, bool> +# 827 + = true> +# 828 +__attribute((__deprecated__("use \'nullptr\' instead of \'0\' to initialize std::pair of move-only type and pointer"))) constexpr +# 830 +pair(_U1 &&__x, __zero_as_null_pointer_constant, ...) : first(std::forward< _U1> (__x)), second(nullptr) +# 832 +{ ; } +# 834 +template< class _U1, std::__enable_if_t< __and_< __not_< is_reference< _U1> > , is_pointer< _T2> , is_constructible< _T1, _U1> , __not_< is_constructible< _T1, const _U1 &> > , __not_< is_convertible< _U1, _T1> > > ::value, bool> +# 840 + = false> +# 841 +__attribute((__deprecated__("use \'nullptr\' instead of \'0\' to initialize std::pair of move-only type and pointer"))) constexpr explicit +# 843 +pair(_U1 &&__x, __zero_as_null_pointer_constant, ...) : first(std::forward< _U1> (__x)), second(nullptr) +# 845 +{ ; } +# 847 +template< class _U2, std::__enable_if_t< __and_< is_pointer< _T1> , __not_< is_reference< _U2> > , is_constructible< _T2, _U2> , __not_< is_constructible< _T2, const _U2 &> > , is_convertible< _U2, _T2> > ::value, bool> +# 853 + = true> +# 854 +__attribute((__deprecated__("use \'nullptr\' instead of \'0\' to initialize std::pair of move-only type and pointer"))) constexpr +# 856 +pair(__zero_as_null_pointer_constant, _U2 &&__y, ...) : first(nullptr), second(std::forward< _U2> (__y)) +# 858 +{ ; } +# 860 +template< class _U2, std::__enable_if_t< __and_< is_pointer< _T1> , __not_< is_reference< _U2> > , is_constructible< _T2, _U2> , __not_< is_constructible< _T2, const _U2 &> > , __not_< is_convertible< _U2, _T2> > > ::value, bool> +# 866 + = false> +# 867 +__attribute((__deprecated__("use \'nullptr\' instead of \'0\' to initialize std::pair of move-only type and pointer"))) constexpr explicit +# 869 +pair(__zero_as_null_pointer_constant, _U2 &&__y, ...) : first(nullptr), second(std::forward< _U2> (__y)) +# 871 +{ ; } +# 875 +template< class _U1, class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && _PCC< true, _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> (), bool> ::type +# 880 + = true> constexpr +# 881 +pair(_U1 &&__x, _U2 &&__y) : first(std::forward< _U1> (__x)), second(std::forward< _U2> (__y)) +# 883 +{ ; } +# 885 +template< class _U1, class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && (!_PCC< true, _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> ()), bool> ::type +# 890 + = false> constexpr explicit +# 891 +pair(_U1 &&__x, _U2 &&__y) : first(std::forward< _U1> (__x)), second(std::forward< _U2> (__y)) +# 893 +{ ; } +# 896 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> (), bool> ::type +# 901 + = true> constexpr +# 902 +pair(pair< _U1, _U2> &&__p) : first(std::forward< _U1> ((__p.first))), second(std::forward< _U2> ((__p.second))) +# 905 +{ ; } +# 907 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && (!_PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> ()), bool> ::type +# 912 + = false> constexpr explicit +# 913 +pair(pair< _U1, _U2> &&__p) : first(std::forward< _U1> ((__p.first))), second(std::forward< _U2> ((__p.second))) +# 916 +{ ; } +# 921 +pair &operator=(std::__conditional_t< __and_< is_copy_assignable< _T1> , is_copy_assignable< _T2> > ::value, const pair &, const std::__nonesuch &> +# 923 +__p) +# 924 +{ +# 925 +(first) = (__p.first); +# 926 +(second) = (__p.second); +# 927 +return *this; +# 928 +} +# 931 +pair &operator=(std::__conditional_t< __and_< is_move_assignable< _T1> , is_move_assignable< _T2> > ::value, pair &&, std::__nonesuch &&> +# 933 +__p) noexcept(__and_< is_nothrow_move_assignable< _T1> , is_nothrow_move_assignable< _T2> > ::value) +# 936 +{ +# 937 +(first) = std::forward< first_type> ((__p.first)); +# 938 +(second) = std::forward< second_type> ((__p.second)); +# 939 +return *this; +# 940 +} +# 942 +template< class _U1, class _U2> typename enable_if< __and_< is_assignable< _T1 &, const _U1 &> , is_assignable< _T2 &, const _U2 &> > ::value, pair &> ::type +# 946 +operator=(const pair< _U1, _U2> &__p) +# 947 +{ +# 948 +(first) = (__p.first); +# 949 +(second) = (__p.second); +# 950 +return *this; +# 951 +} +# 953 +template< class _U1, class _U2> typename enable_if< __and_< is_assignable< _T1 &, _U1 &&> , is_assignable< _T2 &, _U2 &&> > ::value, pair &> ::type +# 957 +operator=(pair< _U1, _U2> &&__p) +# 958 +{ +# 959 +(first) = std::forward< _U1> ((__p.first)); +# 960 +(second) = std::forward< _U2> ((__p.second)); +# 961 +return *this; +# 962 +} +# 995 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +}; +# 1000 +template< class _T1, class _T2> pair(_T1, _T2)->pair< _T1, _T2> ; +# 1031 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr bool +# 1033 +operator==(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1034 +{ return ((__x.first) == (__y.first)) && ((__x.second) == (__y.second)); } +# 1043 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr bool +# 1045 +operator<(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1046 +{ return ((__x.first) < (__y.first)) || ((!((__y.first) < (__x.first))) && ((__x.second) < (__y.second))); +# 1047 +} +# 1050 +template< class _T1, class _T2> constexpr bool +# 1052 +operator!=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1053 +{ return !(__x == __y); } +# 1056 +template< class _T1, class _T2> constexpr bool +# 1058 +operator>(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1059 +{ return __y < __x; } +# 1062 +template< class _T1, class _T2> constexpr bool +# 1064 +operator<=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1065 +{ return !(__y < __x); } +# 1068 +template< class _T1, class _T2> constexpr bool +# 1070 +operator>=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 1071 +{ return !(__x < __y); } +# 1080 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> inline typename enable_if< __and_< __is_swappable< _T1> , __is_swappable< _T2> > ::value> ::type +# 1089 +swap(pair< _T1, _T2> &__x, pair< _T1, _T2> &__y) noexcept(noexcept(__x.swap(__y))) +# 1091 +{ __x.swap(__y); } +# 1103 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template < typename _T1, typename _T2 > + typename enable_if < ! __and_ < __is_swappable < _T1 >, + __is_swappable < _T2 > > :: value > :: type + swap ( pair < _T1, _T2 > &, pair < _T1, _T2 > & ) = delete; +# 1129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr pair< typename __decay_and_strip< _T1> ::__type, typename __decay_and_strip< _T2> ::__type> +# 1132 +make_pair(_T1 &&__x, _T2 &&__y) +# 1133 +{ +# 1134 +typedef typename __decay_and_strip< _T1> ::__type __ds_type1; +# 1135 +typedef typename __decay_and_strip< _T2> ::__type __ds_type2; +# 1136 +typedef pair< typename __decay_and_strip< _T1> ::__type, typename __decay_and_strip< _T2> ::__type> __pair_type; +# 1137 +return __pair_type(std::forward< _T1> (__x), std::forward< _T2> (__y)); +# 1138 +} +# 1152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +template< class _T1, class _T2> +# 1153 +struct __is_tuple_like_impl< pair< _T1, _T2> > : public true_type { +# 1154 +}; +# 1158 +template< class _Tp1, class _Tp2> +# 1159 +struct tuple_size< pair< _Tp1, _Tp2> > : public integral_constant< unsigned long, 2UL> { +# 1160 +}; +# 1163 +template< class _Tp1, class _Tp2> +# 1164 +struct tuple_element< 0, pair< _Tp1, _Tp2> > { +# 1165 +typedef _Tp1 type; }; +# 1168 +template< class _Tp1, class _Tp2> +# 1169 +struct tuple_element< 1, pair< _Tp1, _Tp2> > { +# 1170 +typedef _Tp2 type; }; +# 1174 +template< size_t __i, class ..._Types> struct tuple_element< __i, tuple< _Types...> > ; +# 1178 +template< class _Tp1, class _Tp2> constexpr inline size_t +# 1179 +tuple_size_v< pair< _Tp1, _Tp2> > = (2); +# 1181 +template< class _Tp1, class _Tp2> constexpr inline size_t +# 1182 +tuple_size_v< const pair< _Tp1, _Tp2> > = (2); +# 1184 +template< class _Tp> constexpr inline bool +# 1185 +__is_pair = false; +# 1187 +template< class _Tp, class _Up> constexpr inline bool +# 1188 +__is_pair< pair< _Tp, _Up> > = true; +# 1192 +template< size_t _Int> struct __pair_get; +# 1196 +template<> struct __pair_get< 0UL> { +# 1198 +template< class _Tp1, class _Tp2> static constexpr _Tp1 & +# 1200 +__get(pair< _Tp1, _Tp2> &__pair) noexcept +# 1201 +{ return __pair.first; } +# 1203 +template< class _Tp1, class _Tp2> static constexpr _Tp1 && +# 1205 +__move_get(pair< _Tp1, _Tp2> &&__pair) noexcept +# 1206 +{ return std::forward< _Tp1> ((__pair.first)); } +# 1208 +template< class _Tp1, class _Tp2> static constexpr const _Tp1 & +# 1210 +__const_get(const pair< _Tp1, _Tp2> &__pair) noexcept +# 1211 +{ return __pair.first; } +# 1213 +template< class _Tp1, class _Tp2> static constexpr const _Tp1 && +# 1215 +__const_move_get(const pair< _Tp1, _Tp2> &&__pair) noexcept +# 1216 +{ return std::forward< const _Tp1> ((__pair.first)); } +# 1217 +}; +# 1220 +template<> struct __pair_get< 1UL> { +# 1222 +template< class _Tp1, class _Tp2> static constexpr _Tp2 & +# 1224 +__get(pair< _Tp1, _Tp2> &__pair) noexcept +# 1225 +{ return __pair.second; } +# 1227 +template< class _Tp1, class _Tp2> static constexpr _Tp2 && +# 1229 +__move_get(pair< _Tp1, _Tp2> &&__pair) noexcept +# 1230 +{ return std::forward< _Tp2> ((__pair.second)); } +# 1232 +template< class _Tp1, class _Tp2> static constexpr const _Tp2 & +# 1234 +__const_get(const pair< _Tp1, _Tp2> &__pair) noexcept +# 1235 +{ return __pair.second; } +# 1237 +template< class _Tp1, class _Tp2> static constexpr const _Tp2 && +# 1239 +__const_move_get(const pair< _Tp1, _Tp2> &&__pair) noexcept +# 1240 +{ return std::forward< const _Tp2> ((__pair.second)); } +# 1241 +}; +# 1248 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type & +# 1250 +get(pair< _Tp1, _Tp2> &__in) noexcept +# 1251 +{ return __pair_get< _Int> ::__get(__in); } +# 1253 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type && +# 1255 +get(pair< _Tp1, _Tp2> &&__in) noexcept +# 1256 +{ return __pair_get< _Int> ::__move_get(std::move(__in)); } +# 1258 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type & +# 1260 +get(const pair< _Tp1, _Tp2> &__in) noexcept +# 1261 +{ return __pair_get< _Int> ::__const_get(__in); } +# 1263 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type && +# 1265 +get(const pair< _Tp1, _Tp2> &&__in) noexcept +# 1266 +{ return __pair_get< _Int> ::__const_move_get(std::move(__in)); } +# 1270 +template< class _Tp, class _Up> constexpr _Tp & +# 1272 +get(pair< _Tp, _Up> &__p) noexcept +# 1273 +{ return __p.first; } +# 1275 +template< class _Tp, class _Up> constexpr const _Tp & +# 1277 +get(const pair< _Tp, _Up> &__p) noexcept +# 1278 +{ return __p.first; } +# 1280 +template< class _Tp, class _Up> constexpr _Tp && +# 1282 +get(pair< _Tp, _Up> &&__p) noexcept +# 1283 +{ return std::move((__p.first)); } +# 1285 +template< class _Tp, class _Up> constexpr const _Tp && +# 1287 +get(const pair< _Tp, _Up> &&__p) noexcept +# 1288 +{ return std::move((__p.first)); } +# 1290 +template< class _Tp, class _Up> constexpr _Tp & +# 1292 +get(pair< _Up, _Tp> &__p) noexcept +# 1293 +{ return __p.second; } +# 1295 +template< class _Tp, class _Up> constexpr const _Tp & +# 1297 +get(const pair< _Up, _Tp> &__p) noexcept +# 1298 +{ return __p.second; } +# 1300 +template< class _Tp, class _Up> constexpr _Tp && +# 1302 +get(pair< _Up, _Tp> &&__p) noexcept +# 1303 +{ return std::move((__p.second)); } +# 1305 +template< class _Tp, class _Up> constexpr const _Tp && +# 1307 +get(const pair< _Up, _Tp> &&__p) noexcept +# 1308 +{ return std::move((__p.second)); } +# 1333 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_pair.h" 3 +} +# 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +struct input_iterator_tag { }; +# 96 +struct output_iterator_tag { }; +# 99 +struct forward_iterator_tag : public input_iterator_tag { }; +# 103 +struct bidirectional_iterator_tag : public forward_iterator_tag { }; +# 107 +struct random_access_iterator_tag : public bidirectional_iterator_tag { }; +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +template< class _Category, class _Tp, class _Distance = ptrdiff_t, class +# 126 +_Pointer = _Tp *, class _Reference = _Tp &> +# 127 +struct [[__deprecated__]] iterator { +# 130 +typedef _Category iterator_category; +# 132 +typedef _Tp value_type; +# 134 +typedef _Distance difference_type; +# 136 +typedef _Pointer pointer; +# 138 +typedef _Reference reference; +# 139 +}; +# 149 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +template< class _Iterator> struct iterator_traits; +# 155 +template< class _Iterator, class = __void_t< > > +# 156 +struct __iterator_traits { }; +# 160 +template< class _Iterator> +# 161 +struct __iterator_traits< _Iterator, __void_t< typename _Iterator::iterator_category, typename _Iterator::value_type, typename _Iterator::difference_type, typename _Iterator::pointer, typename _Iterator::reference> > { +# 168 +typedef typename _Iterator::iterator_category iterator_category; +# 169 +typedef typename _Iterator::value_type value_type; +# 170 +typedef typename _Iterator::difference_type difference_type; +# 171 +typedef typename _Iterator::pointer pointer; +# 172 +typedef typename _Iterator::reference reference; +# 173 +}; +# 176 +template< class _Iterator> +# 177 +struct iterator_traits : public __iterator_traits< _Iterator> { +# 178 +}; +# 209 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_types.h" 3 +template< class _Tp> +# 210 +struct iterator_traits< _Tp *> { +# 212 +typedef random_access_iterator_tag iterator_category; +# 213 +typedef _Tp value_type; +# 214 +typedef ptrdiff_t difference_type; +# 215 +typedef _Tp *pointer; +# 216 +typedef _Tp &reference; +# 217 +}; +# 220 +template< class _Tp> +# 221 +struct iterator_traits< const _Tp *> { +# 223 +typedef random_access_iterator_tag iterator_category; +# 224 +typedef _Tp value_type; +# 225 +typedef ptrdiff_t difference_type; +# 226 +typedef const _Tp *pointer; +# 227 +typedef const _Tp &reference; +# 228 +}; +# 235 +template< class _Iter> +# 236 +__attribute((__always_inline__)) constexpr typename iterator_traits< _Iter> ::iterator_category +# 239 +__iterator_category(const _Iter &) +# 240 +{ return typename iterator_traits< _Iter> ::iterator_category(); } +# 245 +template< class _Iter> using __iter_category_t = typename iterator_traits< _Iter> ::iterator_category; +# 249 +template< class _InIter> using _RequireInputIter = __enable_if_t< is_convertible< __iter_category_t< _InIter> , input_iterator_tag> ::value> ; +# 254 +template< class _It, class +# 255 +_Cat = __iter_category_t< _It> > +# 256 +struct __is_random_access_iter : public is_base_of< random_access_iterator_tag, _Cat> { +# 259 +typedef is_base_of< std::random_access_iterator_tag, _Cat> _Base; +# 260 +enum { __value = is_base_of< std::random_access_iterator_tag, _Cat> ::value}; +# 261 +}; +# 270 +} +# 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 74 +template< class > struct _List_iterator; +# 75 +template< class > struct _List_const_iterator; +# 78 +template< class _InputIterator> constexpr typename iterator_traits< _InputIterator> ::difference_type +# 81 +__distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) +# 83 +{ +# 87 +typename iterator_traits< _InputIterator> ::difference_type __n = (0); +# 88 +while (__first != __last) +# 89 +{ +# 90 +++__first; +# 91 +++__n; +# 92 +} +# 93 +return __n; +# 94 +} +# 96 +template< class _RandomAccessIterator> +# 97 +__attribute((__always_inline__)) constexpr typename iterator_traits< _RandomAccessIterator> ::difference_type +# 100 +__distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) +# 102 +{ +# 106 +return __last - __first; +# 107 +} +# 111 +template< class _Tp> ptrdiff_t __distance(_List_iterator< _Tp> , _List_iterator< _Tp> , input_iterator_tag); +# 117 +template< class _Tp> ptrdiff_t __distance(_List_const_iterator< _Tp> , _List_const_iterator< _Tp> , input_iterator_tag); +# 126 +template < typename _OutputIterator > + void + __distance ( _OutputIterator, _OutputIterator, output_iterator_tag ) = delete; +# 144 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 +template< class _InputIterator> +# 145 +[[__nodiscard__]] __attribute((__always_inline__)) constexpr typename iterator_traits< _InputIterator> ::difference_type +# 148 +distance(_InputIterator __first, _InputIterator __last) +# 149 +{ +# 151 +return std::__distance(__first, __last, std::__iterator_category(__first)); +# 153 +} +# 155 +template< class _InputIterator, class _Distance> constexpr void +# 157 +__advance(_InputIterator &__i, _Distance __n, input_iterator_tag) +# 158 +{ +# 161 +do { if (std::__is_constant_evaluated() && (!((bool)(__n >= 0)))) { std::__glibcxx_assert_fail(); } } while (false); +# 162 +while (__n--) { +# 163 +++__i; } +# 164 +} +# 166 +template< class _BidirectionalIterator, class _Distance> constexpr void +# 168 +__advance(_BidirectionalIterator &__i, _Distance __n, bidirectional_iterator_tag) +# 170 +{ +# 174 +if (__n > 0) { +# 175 +while (__n--) { +# 176 +++__i; } } else { +# 178 +while (__n++) { +# 179 +--__i; } } +# 180 +} +# 182 +template< class _RandomAccessIterator, class _Distance> constexpr void +# 184 +__advance(_RandomAccessIterator &__i, _Distance __n, random_access_iterator_tag) +# 186 +{ +# 190 +if (__builtin_constant_p(__n) && (__n == 1)) { +# 191 +++__i; } else { +# 192 +if (__builtin_constant_p(__n) && (__n == (-1))) { +# 193 +--__i; } else { +# 195 +__i += __n; } } +# 196 +} +# 200 +template < typename _OutputIterator, typename _Distance > + void + __advance ( _OutputIterator &, _Distance, output_iterator_tag ) = delete; +# 217 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator_base_funcs.h" 3 +template< class _InputIterator, class _Distance> +# 218 +__attribute((__always_inline__)) constexpr void +# 220 +advance(_InputIterator &__i, _Distance __n) +# 221 +{ +# 223 +typename iterator_traits< _InputIterator> ::difference_type __d = __n; +# 224 +std::__advance(__i, __d, std::__iterator_category(__i)); +# 225 +} +# 229 +template< class _InputIterator> +# 230 +[[__nodiscard__]] [[__gnu__::__always_inline__]] constexpr _InputIterator +# 232 +next(_InputIterator __x, typename iterator_traits< _InputIterator> ::difference_type +# 233 +__n = 1) +# 234 +{ +# 237 +std::advance(__x, __n); +# 238 +return __x; +# 239 +} +# 241 +template< class _BidirectionalIterator> +# 242 +[[__nodiscard__]] [[__gnu__::__always_inline__]] constexpr _BidirectionalIterator +# 244 +prev(_BidirectionalIterator __x, typename iterator_traits< _BidirectionalIterator> ::difference_type +# 245 +__n = 1) +# 246 +{ +# 250 +std::advance(__x, -__n); +# 251 +return __x; +# 252 +} +# 257 +} +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 48 +class __undefined; +# 52 +template< class _Tp> +# 53 +struct __get_first_arg { +# 54 +using type = __undefined; }; +# 56 +template< template< class , class ...> class _SomeTemplate, class _Tp, class ... +# 57 +_Types> +# 58 +struct __get_first_arg< _SomeTemplate< _Tp, _Types...> > { +# 59 +using type = _Tp; }; +# 63 +template< class _Tp, class _Up> +# 64 +struct __replace_first_arg { +# 65 +}; +# 67 +template< template< class , class ...> class _SomeTemplate, class _Up, class +# 68 +_Tp, class ..._Types> +# 69 +struct __replace_first_arg< _SomeTemplate< _Tp, _Types...> , _Up> { +# 70 +using type = _SomeTemplate< _Up, _Types...> ; }; +# 73 +template< class _Ptr, class = void> +# 74 +struct __ptr_traits_elem : public __get_first_arg< _Ptr> { +# 75 +}; +# 83 +template< class _Ptr> +# 84 +struct __ptr_traits_elem< _Ptr, __void_t< typename _Ptr::element_type> > { +# 85 +using type = typename _Ptr::element_type; }; +# 88 +template< class _Ptr> using __ptr_traits_elem_t = typename __ptr_traits_elem< _Ptr> ::type; +# 94 +template< class _Ptr, class _Elt, bool = is_void< _Elt> ::value> +# 95 +struct __ptr_traits_ptr_to { +# 97 +using pointer = _Ptr; +# 98 +using element_type = _Elt; +# 107 +static pointer pointer_to(element_type &__r) +# 113 +{ return pointer::pointer_to(__r); } +# 114 +}; +# 117 +template< class _Ptr, class _Elt> +# 118 +struct __ptr_traits_ptr_to< _Ptr, _Elt, true> { +# 119 +}; +# 122 +template< class _Tp> +# 123 +struct __ptr_traits_ptr_to< _Tp *, _Tp, false> { +# 125 +using pointer = _Tp *; +# 126 +using element_type = _Tp; +# 134 +static pointer pointer_to(element_type &__r) noexcept +# 135 +{ return std::addressof(__r); } +# 136 +}; +# 138 +template< class _Ptr, class _Elt> +# 139 +struct __ptr_traits_impl : public __ptr_traits_ptr_to< _Ptr, _Elt> { +# 143 +private: +# 142 +template< class _Tp> using __diff_t = typename _Tp::difference_type; +# 145 +template< class _Tp, class _Up> using __rebind = __type_identity< typename _Tp::template rebind< _Up> > ; +# 150 +public: using pointer = _Ptr; +# 153 +using element_type = _Elt; +# 156 +using difference_type = std::__detected_or_t< std::ptrdiff_t, __diff_t, _Ptr> ; +# 159 +template< class _Up> using rebind = typename std::__detected_or_t< __replace_first_arg< _Ptr, _Up> , __rebind, _Ptr, _Up> ::type; +# 162 +}; +# 166 +template< class _Ptr> +# 167 +struct __ptr_traits_impl< _Ptr, __undefined> { +# 168 +}; +# 176 +template< class _Ptr> +# 177 +struct pointer_traits : public __ptr_traits_impl< _Ptr, __ptr_traits_elem_t< _Ptr> > { +# 178 +}; +# 186 +template< class _Tp> +# 187 +struct pointer_traits< _Tp *> : public __ptr_traits_ptr_to< _Tp *, _Tp> { +# 190 +typedef _Tp *pointer; +# 192 +typedef _Tp element_type; +# 194 +typedef std::ptrdiff_t difference_type; +# 196 +template< class _Up> using rebind = _Up *; +# 197 +}; +# 200 +template< class _Ptr, class _Tp> using __ptr_rebind = typename pointer_traits< _Ptr> ::template rebind< _Tp> ; +# 203 +template< class _Tp> constexpr _Tp * +# 205 +__to_address(_Tp *__ptr) noexcept +# 206 +{ +# 207 +static_assert((!std::template is_function< _Tp> ::value), "not a function pointer"); +# 208 +return __ptr; +# 209 +} +# 212 +template< class _Ptr> constexpr typename pointer_traits< _Ptr> ::element_type * +# 214 +__to_address(const _Ptr &__ptr) +# 215 +{ return std::__to_address(__ptr.operator->()); } +# 258 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/ptr_traits.h" 3 +} +# 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 128 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> +# 129 +class reverse_iterator : public iterator< typename iterator_traits< _Iterator> ::iterator_category, typename iterator_traits< _Iterator> ::value_type, typename iterator_traits< _Iterator> ::difference_type, typename iterator_traits< _Iterator> ::pointer, typename iterator_traits< _Iterator> ::reference> { +# 136 +template< class _Iter> friend class reverse_iterator; +# 148 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +protected: _Iterator current; +# 150 +typedef iterator_traits< _Iterator> __traits_type; +# 153 +public: typedef _Iterator iterator_type; +# 154 +typedef typename iterator_traits< _Iterator> ::pointer pointer; +# 156 +typedef typename iterator_traits< _Iterator> ::difference_type difference_type; +# 157 +typedef typename iterator_traits< _Iterator> ::reference reference; +# 179 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +constexpr reverse_iterator() noexcept(noexcept((_Iterator()))) : current() +# 182 +{ } +# 188 +constexpr explicit reverse_iterator(iterator_type __x) noexcept(noexcept(((_Iterator)__x))) : current(__x) +# 191 +{ } +# 197 +constexpr reverse_iterator(const reverse_iterator &__x) noexcept(noexcept(((_Iterator)(__x.current)))) : current(__x.current) +# 200 +{ } +# 203 +reverse_iterator &operator=(const reverse_iterator &) = default; +# 210 +template< class _Iter> constexpr +# 215 +reverse_iterator(const reverse_iterator< _Iter> &__x) noexcept(noexcept(((_Iterator)(__x.current)))) : current((__x.current)) +# 218 +{ } +# 221 +template< class _Iter> constexpr reverse_iterator & +# 228 +operator=(const reverse_iterator< _Iter> &__x) noexcept(noexcept(((current) = (__x.current)))) +# 230 +{ +# 231 +(current) = (__x.current); +# 232 +return *this; +# 233 +} +# 239 +[[__nodiscard__]] constexpr iterator_type +# 241 +base() const noexcept(noexcept(((_Iterator)(current)))) +# 243 +{ return current; } +# 255 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +[[__nodiscard__]] constexpr reference +# 257 +operator*() const +# 258 +{ +# 259 +_Iterator __tmp = current; +# 260 +return *(--__tmp); +# 261 +} +# 268 +[[__nodiscard__]] constexpr pointer +# 270 +operator->() const +# 275 +{ +# 278 +_Iterator __tmp = current; +# 279 +--__tmp; +# 280 +return _S_to_pointer(__tmp); +# 281 +} +# 289 +constexpr reverse_iterator &operator++() +# 290 +{ +# 291 +--(current); +# 292 +return *this; +# 293 +} +# 301 +constexpr reverse_iterator operator++(int) +# 302 +{ +# 303 +reverse_iterator __tmp = *this; +# 304 +--(current); +# 305 +return __tmp; +# 306 +} +# 314 +constexpr reverse_iterator &operator--() +# 315 +{ +# 316 +++(current); +# 317 +return *this; +# 318 +} +# 326 +constexpr reverse_iterator operator--(int) +# 327 +{ +# 328 +reverse_iterator __tmp = *this; +# 329 +++(current); +# 330 +return __tmp; +# 331 +} +# 338 +[[__nodiscard__]] constexpr reverse_iterator +# 340 +operator+(difference_type __n) const +# 341 +{ return ((reverse_iterator)((current) - __n)); } +# 350 +constexpr reverse_iterator &operator+=(difference_type __n) +# 351 +{ +# 352 +(current) -= __n; +# 353 +return *this; +# 354 +} +# 361 +[[__nodiscard__]] constexpr reverse_iterator +# 363 +operator-(difference_type __n) const +# 364 +{ return ((reverse_iterator)((current) + __n)); } +# 373 +constexpr reverse_iterator &operator-=(difference_type __n) +# 374 +{ +# 375 +(current) += __n; +# 376 +return *this; +# 377 +} +# 384 +[[__nodiscard__]] constexpr reference +# 386 +operator[](difference_type __n) const +# 387 +{ return *((*this) + __n); } +# 418 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +private: +# 416 +template< class _Tp> static constexpr _Tp * +# 418 +_S_to_pointer(_Tp *__p) +# 419 +{ return __p; } +# 421 +template< class _Tp> static constexpr pointer +# 423 +_S_to_pointer(_Tp __t) +# 424 +{ return __t.operator->(); } +# 425 +}; +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> +# 439 +[[__nodiscard__]] constexpr bool +# 441 +operator==(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 442 +__y) +# 443 +{ return __x.base() == __y.base(); } +# 445 +template< class _Iterator> +# 446 +[[__nodiscard__]] constexpr bool +# 448 +operator<(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 449 +__y) +# 450 +{ return __y.base() < __x.base(); } +# 452 +template< class _Iterator> +# 453 +[[__nodiscard__]] constexpr bool +# 455 +operator!=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 456 +__y) +# 457 +{ return !(__x == __y); } +# 459 +template< class _Iterator> +# 460 +[[__nodiscard__]] constexpr bool +# 462 +operator>(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 463 +__y) +# 464 +{ return __y < __x; } +# 466 +template< class _Iterator> +# 467 +[[__nodiscard__]] constexpr bool +# 469 +operator<=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 470 +__y) +# 471 +{ return !(__y < __x); } +# 473 +template< class _Iterator> +# 474 +[[__nodiscard__]] constexpr bool +# 476 +operator>=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 477 +__y) +# 478 +{ return !(__x < __y); } +# 483 +template< class _IteratorL, class _IteratorR> +# 484 +[[__nodiscard__]] constexpr bool +# 486 +operator==(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 487 +__y) +# 488 +{ return __x.base() == __y.base(); } +# 490 +template< class _IteratorL, class _IteratorR> +# 491 +[[__nodiscard__]] constexpr bool +# 493 +operator<(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 494 +__y) +# 495 +{ return __x.base() > __y.base(); } +# 497 +template< class _IteratorL, class _IteratorR> +# 498 +[[__nodiscard__]] constexpr bool +# 500 +operator!=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 501 +__y) +# 502 +{ return __x.base() != __y.base(); } +# 504 +template< class _IteratorL, class _IteratorR> +# 505 +[[__nodiscard__]] constexpr bool +# 507 +operator>(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 508 +__y) +# 509 +{ return __x.base() < __y.base(); } +# 511 +template< class _IteratorL, class _IteratorR> constexpr bool +# 513 +operator<=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 514 +__y) +# 515 +{ return __x.base() >= __y.base(); } +# 517 +template< class _IteratorL, class _IteratorR> +# 518 +[[__nodiscard__]] constexpr bool +# 520 +operator>=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 521 +__y) +# 522 +{ return __x.base() <= __y.base(); } +# 615 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR> +# 616 +[[__nodiscard__]] constexpr auto +# 618 +operator-(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 619 +__y)->__decltype((__y.base() - __x.base())) +# 621 +{ return __y.base() - __x.base(); } +# 624 +template< class _Iterator> +# 625 +[[__nodiscard__]] constexpr reverse_iterator< _Iterator> +# 627 +operator+(typename reverse_iterator< _Iterator> ::difference_type __n, const reverse_iterator< _Iterator> & +# 628 +__x) +# 629 +{ return ((reverse_iterator< _Iterator> )(__x.base() - __n)); } +# 633 +template< class _Iterator> constexpr reverse_iterator< _Iterator> +# 635 +__make_reverse_iterator(_Iterator __i) +# 636 +{ return ((reverse_iterator< _Iterator> )(__i)); } +# 642 +template< class _Iterator> +# 643 +[[__nodiscard__]] constexpr reverse_iterator< _Iterator> +# 645 +make_reverse_iterator(_Iterator __i) +# 646 +{ return ((reverse_iterator< _Iterator> )(__i)); } +# 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> auto +# 660 +__niter_base(reverse_iterator< _Iterator> __it)->__decltype((__make_reverse_iterator(__niter_base(__it.base())))) +# 662 +{ return __make_reverse_iterator(__niter_base(__it.base())); } +# 664 +template< class _Iterator> +# 665 +struct __is_move_iterator< reverse_iterator< _Iterator> > : public std::__is_move_iterator< _Iterator> { +# 667 +}; +# 669 +template< class _Iterator> auto +# 672 +__miter_base(reverse_iterator< _Iterator> __it)->__decltype((__make_reverse_iterator(__miter_base(__it.base())))) +# 674 +{ return __make_reverse_iterator(__miter_base(__it.base())); } +# 688 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 689 +class back_insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 693 +protected: _Container *container; +# 697 +public: typedef _Container container_type; +# 704 +explicit back_insert_iterator(_Container &__x) : container(std::__addressof(__x)) +# 705 +{ } +# 728 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +back_insert_iterator &operator=(const typename _Container::value_type &__value) +# 729 +{ +# 730 +(container)->push_back(__value); +# 731 +return *this; +# 732 +} +# 736 +back_insert_iterator &operator=(typename _Container::value_type &&__value) +# 737 +{ +# 738 +(container)->push_back(std::move(__value)); +# 739 +return *this; +# 740 +} +# 744 +[[__nodiscard__]] back_insert_iterator & +# 746 +operator*() +# 747 +{ return *this; } +# 752 +back_insert_iterator &operator++() +# 753 +{ return *this; } +# 758 +back_insert_iterator operator++(int) +# 759 +{ return *this; } +# 760 +}; +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 774 +[[__nodiscard__]] inline back_insert_iterator< _Container> +# 776 +back_inserter(_Container &__x) +# 777 +{ return ((back_insert_iterator< _Container> )(__x)); } +# 789 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 790 +class front_insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 794 +protected: _Container *container; +# 798 +public: typedef _Container container_type; +# 805 +explicit front_insert_iterator(_Container &__x) : container(std::__addressof(__x)) +# 806 +{ } +# 829 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +front_insert_iterator &operator=(const typename _Container::value_type &__value) +# 830 +{ +# 831 +(container)->push_front(__value); +# 832 +return *this; +# 833 +} +# 837 +front_insert_iterator &operator=(typename _Container::value_type &&__value) +# 838 +{ +# 839 +(container)->push_front(std::move(__value)); +# 840 +return *this; +# 841 +} +# 845 +[[__nodiscard__]] front_insert_iterator & +# 847 +operator*() +# 848 +{ return *this; } +# 853 +front_insert_iterator &operator++() +# 854 +{ return *this; } +# 859 +front_insert_iterator operator++(int) +# 860 +{ return *this; } +# 861 +}; +# 874 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 875 +[[__nodiscard__]] inline front_insert_iterator< _Container> +# 877 +front_inserter(_Container &__x) +# 878 +{ return ((front_insert_iterator< _Container> )(__x)); } +# 894 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 895 +class insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 901 +typedef typename _Container::iterator _Iter; +# 904 +protected: _Container *container; +# 905 +_Iter iter; +# 909 +public: typedef _Container container_type; +# 920 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +insert_iterator(_Container &__x, _Iter __i) : container(std::__addressof(__x)), iter(__i) +# 921 +{ } +# 957 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +insert_iterator &operator=(const typename _Container::value_type &__value) +# 958 +{ +# 959 +(iter) = (container)->insert(iter, __value); +# 960 +++(iter); +# 961 +return *this; +# 962 +} +# 966 +insert_iterator &operator=(typename _Container::value_type &&__value) +# 967 +{ +# 968 +(iter) = (container)->insert(iter, std::move(__value)); +# 969 +++(iter); +# 970 +return *this; +# 971 +} +# 975 +[[__nodiscard__]] insert_iterator & +# 977 +operator*() +# 978 +{ return *this; } +# 983 +insert_iterator &operator++() +# 984 +{ return *this; } +# 989 +insert_iterator &operator++(int) +# 990 +{ return *this; } +# 991 +}; +# 993 +#pragma GCC diagnostic pop +# 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Container> +# 1015 +[[__nodiscard__]] inline insert_iterator< _Container> +# 1017 +inserter(_Container &__x, typename _Container::iterator __i) +# 1018 +{ return insert_iterator< _Container> (__x, __i); } +# 1024 +} +# 1026 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator, class _Container> +# 1038 +class __normal_iterator { +# 1041 +protected: _Iterator _M_current; +# 1043 +typedef std::iterator_traits< _Iterator> __traits_type; +# 1046 +template< class _Iter> using __convertible_from = std::__enable_if_t< std::is_convertible< _Iter, _Iterator> ::value> ; +# 1052 +public: typedef _Iterator iterator_type; +# 1053 +typedef typename std::iterator_traits< _Iterator> ::iterator_category iterator_category; +# 1054 +typedef typename std::iterator_traits< _Iterator> ::value_type value_type; +# 1055 +typedef typename std::iterator_traits< _Iterator> ::difference_type difference_type; +# 1056 +typedef typename std::iterator_traits< _Iterator> ::reference reference; +# 1057 +typedef typename std::iterator_traits< _Iterator> ::pointer pointer; +# 1063 +constexpr __normal_iterator() noexcept : _M_current(_Iterator()) +# 1064 +{ } +# 1067 +explicit __normal_iterator(const _Iterator &__i) noexcept : _M_current(__i) +# 1068 +{ } +# 1072 +template< class _Iter, class = __convertible_from< _Iter> > +# 1074 +__normal_iterator(const __normal_iterator< _Iter, _Container> &__i) noexcept : _M_current(__i.base()) +# 1085 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +{ } +# 1090 +reference operator*() const noexcept +# 1091 +{ return *(_M_current); } +# 1095 +pointer operator->() const noexcept +# 1096 +{ return _M_current; } +# 1100 +__normal_iterator &operator++() noexcept +# 1101 +{ +# 1102 +++(_M_current); +# 1103 +return *this; +# 1104 +} +# 1108 +__normal_iterator operator++(int) noexcept +# 1109 +{ return ((__normal_iterator)((_M_current)++)); } +# 1114 +__normal_iterator &operator--() noexcept +# 1115 +{ +# 1116 +--(_M_current); +# 1117 +return *this; +# 1118 +} +# 1122 +__normal_iterator operator--(int) noexcept +# 1123 +{ return ((__normal_iterator)((_M_current)--)); } +# 1128 +reference operator[](difference_type __n) const noexcept +# 1129 +{ return (_M_current)[__n]; } +# 1133 +__normal_iterator &operator+=(difference_type __n) noexcept +# 1134 +{ (_M_current) += __n; return *this; } +# 1138 +__normal_iterator operator+(difference_type __n) const noexcept +# 1139 +{ return ((__normal_iterator)((_M_current) + __n)); } +# 1143 +__normal_iterator &operator-=(difference_type __n) noexcept +# 1144 +{ (_M_current) -= __n; return *this; } +# 1148 +__normal_iterator operator-(difference_type __n) const noexcept +# 1149 +{ return ((__normal_iterator)((_M_current) - __n)); } +# 1153 +const _Iterator &base() const noexcept +# 1154 +{ return _M_current; } +# 1155 +}; +# 1205 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR, class _Container> +# 1206 +[[__nodiscard__]] inline bool +# 1208 +operator==(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1209 +__rhs) noexcept +# 1211 +{ return __lhs.base() == __rhs.base(); } +# 1213 +template< class _Iterator, class _Container> +# 1214 +[[__nodiscard__]] inline bool +# 1216 +operator==(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1217 +__rhs) noexcept +# 1219 +{ return __lhs.base() == __rhs.base(); } +# 1221 +template< class _IteratorL, class _IteratorR, class _Container> +# 1222 +[[__nodiscard__]] inline bool +# 1224 +operator!=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1225 +__rhs) noexcept +# 1227 +{ return __lhs.base() != __rhs.base(); } +# 1229 +template< class _Iterator, class _Container> +# 1230 +[[__nodiscard__]] inline bool +# 1232 +operator!=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1233 +__rhs) noexcept +# 1235 +{ return __lhs.base() != __rhs.base(); } +# 1238 +template< class _IteratorL, class _IteratorR, class _Container> +# 1239 +[[__nodiscard__]] inline bool +# 1241 +operator<(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1242 +__rhs) noexcept +# 1244 +{ return __lhs.base() < __rhs.base(); } +# 1246 +template< class _Iterator, class _Container> +# 1247 +[[__nodiscard__]] inline bool +# 1249 +operator<(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1250 +__rhs) noexcept +# 1252 +{ return __lhs.base() < __rhs.base(); } +# 1254 +template< class _IteratorL, class _IteratorR, class _Container> +# 1255 +[[__nodiscard__]] inline bool +# 1257 +operator>(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1258 +__rhs) noexcept +# 1260 +{ return __lhs.base() > __rhs.base(); } +# 1262 +template< class _Iterator, class _Container> +# 1263 +[[__nodiscard__]] inline bool +# 1265 +operator>(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1266 +__rhs) noexcept +# 1268 +{ return __lhs.base() > __rhs.base(); } +# 1270 +template< class _IteratorL, class _IteratorR, class _Container> +# 1271 +[[__nodiscard__]] inline bool +# 1273 +operator<=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1274 +__rhs) noexcept +# 1276 +{ return __lhs.base() <= __rhs.base(); } +# 1278 +template< class _Iterator, class _Container> +# 1279 +[[__nodiscard__]] inline bool +# 1281 +operator<=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1282 +__rhs) noexcept +# 1284 +{ return __lhs.base() <= __rhs.base(); } +# 1286 +template< class _IteratorL, class _IteratorR, class _Container> +# 1287 +[[__nodiscard__]] inline bool +# 1289 +operator>=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1290 +__rhs) noexcept +# 1292 +{ return __lhs.base() >= __rhs.base(); } +# 1294 +template< class _Iterator, class _Container> +# 1295 +[[__nodiscard__]] inline bool +# 1297 +operator>=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1298 +__rhs) noexcept +# 1300 +{ return __lhs.base() >= __rhs.base(); } +# 1307 +template< class _IteratorL, class _IteratorR, class _Container> +# 1310 +[[__nodiscard__]] inline auto +# 1312 +operator-(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1313 +__rhs) noexcept->__decltype((__lhs.base() - __rhs.base())) +# 1320 +{ return __lhs.base() - __rhs.base(); } +# 1322 +template< class _Iterator, class _Container> +# 1323 +[[__nodiscard__]] inline typename __normal_iterator< _Iterator, _Container> ::difference_type +# 1325 +operator-(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1326 +__rhs) noexcept +# 1328 +{ return __lhs.base() - __rhs.base(); } +# 1330 +template< class _Iterator, class _Container> +# 1331 +[[__nodiscard__]] inline __normal_iterator< _Iterator, _Container> +# 1333 +operator+(typename __normal_iterator< _Iterator, _Container> ::difference_type +# 1334 +__n, const __normal_iterator< _Iterator, _Container> &__i) noexcept +# 1336 +{ return ((__normal_iterator< _Iterator, _Container> )(__i.base() + __n)); } +# 1339 +} +# 1341 +namespace std __attribute((__visibility__("default"))) { +# 1345 +template< class _Iterator, class _Container> _Iterator +# 1348 +__niter_base(__gnu_cxx::__normal_iterator< _Iterator, _Container> __it) noexcept(std::template is_nothrow_copy_constructible< _Iterator> ::value) +# 1350 +{ return __it.base(); } +# 1357 +template< class _Iterator, class _Container> constexpr auto +# 1359 +__to_address(const __gnu_cxx::__normal_iterator< _Iterator, _Container> & +# 1360 +__it) noexcept->__decltype((std::__to_address(__it.base()))) +# 1362 +{ return std::__to_address(__it.base()); } +# 1412 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +namespace __detail { +# 1428 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +} +# 1439 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> +# 1440 +class move_iterator { +# 1445 +_Iterator _M_current; +# 1447 +using __traits_type = iterator_traits< _Iterator> ; +# 1449 +using __base_ref = typename iterator_traits< _Iterator> ::reference; +# 1452 +template< class _Iter2> friend class move_iterator; +# 1479 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +public: using iterator_type = _Iterator; +# 1490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +typedef typename iterator_traits< _Iterator> ::iterator_category iterator_category; +# 1491 +typedef typename iterator_traits< _Iterator> ::value_type value_type; +# 1492 +typedef typename iterator_traits< _Iterator> ::difference_type difference_type; +# 1494 +typedef _Iterator pointer; +# 1497 +using reference = __conditional_t< is_reference< __base_ref> ::value, typename remove_reference< __base_ref> ::type &&, __base_ref> ; +# 1504 +constexpr move_iterator() : _M_current() +# 1505 +{ } +# 1508 +constexpr explicit move_iterator(iterator_type __i) : _M_current(std::move(__i)) +# 1509 +{ } +# 1511 +template< class _Iter> constexpr +# 1516 +move_iterator(const move_iterator< _Iter> &__i) : _M_current((__i._M_current)) +# 1517 +{ } +# 1519 +template< class _Iter> constexpr move_iterator & +# 1525 +operator=(const move_iterator< _Iter> &__i) +# 1526 +{ +# 1527 +(_M_current) = (__i._M_current); +# 1528 +return *this; +# 1529 +} +# 1532 +[[__nodiscard__]] constexpr iterator_type +# 1534 +base() const +# 1535 +{ return _M_current; } +# 1548 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +[[__nodiscard__]] constexpr reference +# 1550 +operator*() const +# 1554 +{ return static_cast< reference>(*(_M_current)); } +# 1557 +[[__nodiscard__]] constexpr pointer +# 1559 +operator->() const +# 1560 +{ return _M_current; } +# 1563 +constexpr move_iterator &operator++() +# 1564 +{ +# 1565 +++(_M_current); +# 1566 +return *this; +# 1567 +} +# 1570 +constexpr move_iterator operator++(int) +# 1571 +{ +# 1572 +move_iterator __tmp = *this; +# 1573 +++(_M_current); +# 1574 +return __tmp; +# 1575 +} +# 1584 +constexpr move_iterator &operator--() +# 1585 +{ +# 1586 +--(_M_current); +# 1587 +return *this; +# 1588 +} +# 1591 +constexpr move_iterator operator--(int) +# 1592 +{ +# 1593 +move_iterator __tmp = *this; +# 1594 +--(_M_current); +# 1595 +return __tmp; +# 1596 +} +# 1598 +[[__nodiscard__]] constexpr move_iterator +# 1600 +operator+(difference_type __n) const +# 1601 +{ return ((move_iterator)((_M_current) + __n)); } +# 1604 +constexpr move_iterator &operator+=(difference_type __n) +# 1605 +{ +# 1606 +(_M_current) += __n; +# 1607 +return *this; +# 1608 +} +# 1610 +[[__nodiscard__]] constexpr move_iterator +# 1612 +operator-(difference_type __n) const +# 1613 +{ return ((move_iterator)((_M_current) - __n)); } +# 1616 +constexpr move_iterator &operator-=(difference_type __n) +# 1617 +{ +# 1618 +(_M_current) -= __n; +# 1619 +return *this; +# 1620 +} +# 1622 +[[__nodiscard__]] constexpr reference +# 1624 +operator[](difference_type __n) const +# 1628 +{ return std::move((_M_current)[__n]); } +# 1662 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +}; +# 1664 +template< class _IteratorL, class _IteratorR> +# 1665 +[[__nodiscard__]] constexpr bool +# 1667 +operator==(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1668 +__y) +# 1672 +{ return __x.base() == __y.base(); } +# 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR> +# 1684 +[[__nodiscard__]] constexpr bool +# 1686 +operator!=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1687 +__y) +# 1688 +{ return !(__x == __y); } +# 1691 +template< class _IteratorL, class _IteratorR> +# 1692 +[[__nodiscard__]] constexpr bool +# 1694 +operator<(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1695 +__y) +# 1699 +{ return __x.base() < __y.base(); } +# 1701 +template< class _IteratorL, class _IteratorR> +# 1702 +[[__nodiscard__]] constexpr bool +# 1704 +operator<=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1705 +__y) +# 1709 +{ return !(__y < __x); } +# 1711 +template< class _IteratorL, class _IteratorR> +# 1712 +[[__nodiscard__]] constexpr bool +# 1714 +operator>(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1715 +__y) +# 1719 +{ return __y < __x; } +# 1721 +template< class _IteratorL, class _IteratorR> +# 1722 +[[__nodiscard__]] constexpr bool +# 1724 +operator>=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1725 +__y) +# 1729 +{ return !(__x < __y); } +# 1734 +template< class _Iterator> +# 1735 +[[__nodiscard__]] constexpr bool +# 1737 +operator==(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1738 +__y) +# 1740 +{ return __x.base() == __y.base(); } +# 1750 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> +# 1751 +[[__nodiscard__]] constexpr bool +# 1753 +operator!=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1754 +__y) +# 1755 +{ return !(__x == __y); } +# 1757 +template< class _Iterator> +# 1758 +[[__nodiscard__]] constexpr bool +# 1760 +operator<(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1761 +__y) +# 1762 +{ return __x.base() < __y.base(); } +# 1764 +template< class _Iterator> +# 1765 +[[__nodiscard__]] constexpr bool +# 1767 +operator<=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1768 +__y) +# 1769 +{ return !(__y < __x); } +# 1771 +template< class _Iterator> +# 1772 +[[__nodiscard__]] constexpr bool +# 1774 +operator>(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1775 +__y) +# 1776 +{ return __y < __x; } +# 1778 +template< class _Iterator> +# 1779 +[[__nodiscard__]] constexpr bool +# 1781 +operator>=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1782 +__y) +# 1783 +{ return !(__x < __y); } +# 1787 +template< class _IteratorL, class _IteratorR> +# 1788 +[[__nodiscard__]] constexpr auto +# 1790 +operator-(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1791 +__y)->__decltype((__x.base() - __y.base())) +# 1793 +{ return __x.base() - __y.base(); } +# 1795 +template< class _Iterator> +# 1796 +[[__nodiscard__]] constexpr move_iterator< _Iterator> +# 1798 +operator+(typename move_iterator< _Iterator> ::difference_type __n, const move_iterator< _Iterator> & +# 1799 +__x) +# 1803 +{ return __x + __n; } +# 1805 +template< class _Iterator> +# 1806 +[[__nodiscard__]] constexpr move_iterator< _Iterator> +# 1808 +make_move_iterator(_Iterator __i) +# 1809 +{ return ((move_iterator< _Iterator> )(std::move(__i))); } +# 1811 +template< class _Iterator, class _ReturnType = __conditional_t< __move_if_noexcept_cond< typename iterator_traits< _Iterator> ::value_type> ::value, _Iterator, move_iterator< _Iterator> > > constexpr _ReturnType +# 1816 +__make_move_if_noexcept_iterator(_Iterator __i) +# 1817 +{ return (_ReturnType)__i; } +# 1821 +template< class _Tp, class _ReturnType = __conditional_t< __move_if_noexcept_cond< _Tp> ::value, const _Tp *, move_iterator< _Tp *> > > constexpr _ReturnType +# 1825 +__make_move_if_noexcept_iterator(_Tp *__i) +# 1826 +{ return (_ReturnType)__i; } +# 2964 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _Iterator> auto +# 2967 +__niter_base(move_iterator< _Iterator> __it)->__decltype((make_move_iterator(__niter_base(__it.base())))) +# 2969 +{ return make_move_iterator(__niter_base(__it.base())); } +# 2971 +template< class _Iterator> +# 2972 +struct __is_move_iterator< move_iterator< _Iterator> > { +# 2974 +enum { __value = 1}; +# 2975 +typedef __true_type __type; +# 2976 +}; +# 2978 +template< class _Iterator> auto +# 2981 +__miter_base(move_iterator< _Iterator> __it)->__decltype((__miter_base(__it.base()))) +# 2983 +{ return __miter_base(__it.base()); } +# 2996 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_iterator.h" 3 +template< class _InputIterator> using __iter_key_t = remove_const_t< typename iterator_traits< _InputIterator> ::value_type::first_type> ; +# 3004 +template< class _InputIterator> using __iter_val_t = typename iterator_traits< _InputIterator> ::value_type::second_type; +# 3012 +template< class _T1, class _T2> struct pair; +# 3015 +template< class _InputIterator> using __iter_to_alloc_t = pair< const __iter_key_t< _InputIterator> , __iter_val_t< _InputIterator> > ; +# 3021 +} +# 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/debug/debug.h" 3 +namespace std { +# 50 +namespace __debug { } +# 51 +} +# 56 +namespace __gnu_debug { +# 58 +using namespace std::__debug; +# 60 +template< class _Ite, class _Seq, class _Cat> struct _Safe_iterator; +# 62 +} +# 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/predefined_ops.h" 3 +namespace __gnu_cxx { +# 37 +namespace __ops { +# 39 +struct _Iter_less_iter { +# 41 +template< class _Iterator1, class _Iterator2> constexpr bool +# 44 +operator()(_Iterator1 __it1, _Iterator2 __it2) const +# 45 +{ return (*__it1) < (*__it2); } +# 46 +}; +# 50 +constexpr _Iter_less_iter __iter_less_iter() +# 51 +{ return _Iter_less_iter(); } +# 53 +struct _Iter_less_val { +# 56 +constexpr _Iter_less_val() = default; +# 63 +explicit _Iter_less_val(_Iter_less_iter) { } +# 65 +template< class _Iterator, class _Value> bool +# 68 +operator()(_Iterator __it, _Value &__val) const +# 69 +{ return (*__it) < __val; } +# 70 +}; +# 74 +inline _Iter_less_val __iter_less_val() +# 75 +{ return _Iter_less_val(); } +# 79 +inline _Iter_less_val __iter_comp_val(_Iter_less_iter) +# 80 +{ return _Iter_less_val(); } +# 82 +struct _Val_less_iter { +# 85 +constexpr _Val_less_iter() = default; +# 92 +explicit _Val_less_iter(_Iter_less_iter) { } +# 94 +template< class _Value, class _Iterator> bool +# 97 +operator()(_Value &__val, _Iterator __it) const +# 98 +{ return __val < (*__it); } +# 99 +}; +# 103 +inline _Val_less_iter __val_less_iter() +# 104 +{ return _Val_less_iter(); } +# 108 +inline _Val_less_iter __val_comp_iter(_Iter_less_iter) +# 109 +{ return _Val_less_iter(); } +# 111 +struct _Iter_equal_to_iter { +# 113 +template< class _Iterator1, class _Iterator2> bool +# 116 +operator()(_Iterator1 __it1, _Iterator2 __it2) const +# 117 +{ return (*__it1) == (*__it2); } +# 118 +}; +# 122 +inline _Iter_equal_to_iter __iter_equal_to_iter() +# 123 +{ return _Iter_equal_to_iter(); } +# 125 +struct _Iter_equal_to_val { +# 127 +template< class _Iterator, class _Value> bool +# 130 +operator()(_Iterator __it, _Value &__val) const +# 131 +{ return (*__it) == __val; } +# 132 +}; +# 136 +inline _Iter_equal_to_val __iter_equal_to_val() +# 137 +{ return _Iter_equal_to_val(); } +# 141 +inline _Iter_equal_to_val __iter_comp_val(_Iter_equal_to_iter) +# 142 +{ return _Iter_equal_to_val(); } +# 144 +template< class _Compare> +# 145 +struct _Iter_comp_iter { +# 147 +_Compare _M_comp; +# 150 +constexpr explicit _Iter_comp_iter(_Compare __comp) : _M_comp(std::move(__comp)) +# 152 +{ } +# 154 +template< class _Iterator1, class _Iterator2> constexpr bool +# 157 +operator()(_Iterator1 __it1, _Iterator2 __it2) +# 158 +{ return (bool)(_M_comp)(*__it1, *__it2); } +# 159 +}; +# 161 +template< class _Compare> constexpr _Iter_comp_iter< _Compare> +# 164 +__iter_comp_iter(_Compare __comp) +# 165 +{ return ((_Iter_comp_iter< _Compare> )(std::move(__comp))); } +# 167 +template< class _Compare> +# 168 +struct _Iter_comp_val { +# 170 +_Compare _M_comp; +# 174 +explicit _Iter_comp_val(_Compare __comp) : _M_comp(std::move(__comp)) +# 176 +{ } +# 180 +explicit _Iter_comp_val(const _Iter_comp_iter< _Compare> &__comp) : _M_comp((__comp._M_comp)) +# 182 +{ } +# 187 +explicit _Iter_comp_val(_Iter_comp_iter< _Compare> &&__comp) : _M_comp(std::move((__comp._M_comp))) +# 189 +{ } +# 192 +template< class _Iterator, class _Value> bool +# 195 +operator()(_Iterator __it, _Value &__val) +# 196 +{ return (bool)(_M_comp)(*__it, __val); } +# 197 +}; +# 199 +template< class _Compare> inline _Iter_comp_val< _Compare> +# 202 +__iter_comp_val(_Compare __comp) +# 203 +{ return ((_Iter_comp_val< _Compare> )(std::move(__comp))); } +# 205 +template< class _Compare> inline _Iter_comp_val< _Compare> +# 208 +__iter_comp_val(_Iter_comp_iter< _Compare> __comp) +# 209 +{ return ((_Iter_comp_val< _Compare> )(std::move(__comp))); } +# 211 +template< class _Compare> +# 212 +struct _Val_comp_iter { +# 214 +_Compare _M_comp; +# 218 +explicit _Val_comp_iter(_Compare __comp) : _M_comp(std::move(__comp)) +# 220 +{ } +# 224 +explicit _Val_comp_iter(const _Iter_comp_iter< _Compare> &__comp) : _M_comp((__comp._M_comp)) +# 226 +{ } +# 231 +explicit _Val_comp_iter(_Iter_comp_iter< _Compare> &&__comp) : _M_comp(std::move((__comp._M_comp))) +# 233 +{ } +# 236 +template< class _Value, class _Iterator> bool +# 239 +operator()(_Value &__val, _Iterator __it) +# 240 +{ return (bool)(_M_comp)(__val, *__it); } +# 241 +}; +# 243 +template< class _Compare> inline _Val_comp_iter< _Compare> +# 246 +__val_comp_iter(_Compare __comp) +# 247 +{ return ((_Val_comp_iter< _Compare> )(std::move(__comp))); } +# 249 +template< class _Compare> inline _Val_comp_iter< _Compare> +# 252 +__val_comp_iter(_Iter_comp_iter< _Compare> __comp) +# 253 +{ return ((_Val_comp_iter< _Compare> )(std::move(__comp))); } +# 255 +template< class _Value> +# 256 +struct _Iter_equals_val { +# 258 +_Value &_M_value; +# 262 +explicit _Iter_equals_val(_Value &__value) : _M_value(__value) +# 264 +{ } +# 266 +template< class _Iterator> bool +# 269 +operator()(_Iterator __it) +# 270 +{ return (*__it) == (_M_value); } +# 271 +}; +# 273 +template< class _Value> inline _Iter_equals_val< _Value> +# 276 +__iter_equals_val(_Value &__val) +# 277 +{ return ((_Iter_equals_val< _Value> )(__val)); } +# 279 +template< class _Iterator1> +# 280 +struct _Iter_equals_iter { +# 282 +_Iterator1 _M_it1; +# 286 +explicit _Iter_equals_iter(_Iterator1 __it1) : _M_it1(__it1) +# 288 +{ } +# 290 +template< class _Iterator2> bool +# 293 +operator()(_Iterator2 __it2) +# 294 +{ return (*__it2) == (*(_M_it1)); } +# 295 +}; +# 297 +template< class _Iterator> inline _Iter_equals_iter< _Iterator> +# 300 +__iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) +# 301 +{ return ((_Iter_equals_iter< _Iterator> )(__it)); } +# 303 +template< class _Predicate> +# 304 +struct _Iter_pred { +# 306 +_Predicate _M_pred; +# 310 +explicit _Iter_pred(_Predicate __pred) : _M_pred(std::move(__pred)) +# 312 +{ } +# 314 +template< class _Iterator> bool +# 317 +operator()(_Iterator __it) +# 318 +{ return (bool)(_M_pred)(*__it); } +# 319 +}; +# 321 +template< class _Predicate> inline _Iter_pred< _Predicate> +# 324 +__pred_iter(_Predicate __pred) +# 325 +{ return ((_Iter_pred< _Predicate> )(std::move(__pred))); } +# 327 +template< class _Compare, class _Value> +# 328 +struct _Iter_comp_to_val { +# 330 +_Compare _M_comp; +# 331 +_Value &_M_value; +# 334 +_Iter_comp_to_val(_Compare __comp, _Value &__value) : _M_comp(std::move(__comp)), _M_value(__value) +# 336 +{ } +# 338 +template< class _Iterator> bool +# 341 +operator()(_Iterator __it) +# 342 +{ return (bool)(_M_comp)(*__it, _M_value); } +# 343 +}; +# 345 +template< class _Compare, class _Value> _Iter_comp_to_val< _Compare, _Value> +# 348 +__iter_comp_val(_Compare __comp, _Value &__val) +# 349 +{ +# 350 +return _Iter_comp_to_val< _Compare, _Value> (std::move(__comp), __val); +# 351 +} +# 353 +template< class _Compare, class _Iterator1> +# 354 +struct _Iter_comp_to_iter { +# 356 +_Compare _M_comp; +# 357 +_Iterator1 _M_it1; +# 360 +_Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) : _M_comp(std::move(__comp)), _M_it1(__it1) +# 362 +{ } +# 364 +template< class _Iterator2> bool +# 367 +operator()(_Iterator2 __it2) +# 368 +{ return (bool)(_M_comp)(*__it2, *(_M_it1)); } +# 369 +}; +# 371 +template< class _Compare, class _Iterator> inline _Iter_comp_to_iter< _Compare, _Iterator> +# 374 +__iter_comp_iter(_Iter_comp_iter< _Compare> __comp, _Iterator __it) +# 375 +{ +# 376 +return _Iter_comp_to_iter< _Compare, _Iterator> (std::move((__comp._M_comp)), __it); +# 378 +} +# 380 +template< class _Predicate> +# 381 +struct _Iter_negate { +# 383 +_Predicate _M_pred; +# 387 +explicit _Iter_negate(_Predicate __pred) : _M_pred(std::move(__pred)) +# 389 +{ } +# 391 +template< class _Iterator> bool +# 394 +operator()(_Iterator __it) +# 395 +{ return !((bool)(_M_pred)(*__it)); } +# 396 +}; +# 398 +template< class _Predicate> inline _Iter_negate< _Predicate> +# 401 +__negate(_Iter_pred< _Predicate> __pred) +# 402 +{ return ((_Iter_negate< _Predicate> )(std::move((__pred._M_pred)))); } +# 404 +} +# 405 +} +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +namespace std __attribute((__visibility__("default"))) { +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +template< class _Tp> constexpr _Tp +# 157 +__rotl(_Tp __x, int __s) noexcept +# 158 +{ +# 159 +constexpr auto _Nd = (__gnu_cxx::__int_traits< _Tp> ::__digits); +# 160 +if constexpr ((_Nd & (_Nd - 1)) == 0) +# 161 +{ +# 164 +constexpr unsigned __uNd = (_Nd); +# 165 +const unsigned __r = __s; +# 166 +return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); +# 167 +} +# 168 +const int __r = __s % _Nd; +# 169 +if (__r == 0) { +# 170 +return __x; } else { +# 171 +if (__r > 0) { +# 172 +return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); } else { +# 174 +return (__x >> (-__r)) | (__x << ((_Nd + __r) % _Nd)); } } +# 175 +} +# 177 +template< class _Tp> constexpr _Tp +# 179 +__rotr(_Tp __x, int __s) noexcept +# 180 +{ +# 181 +constexpr auto _Nd = (__gnu_cxx::__int_traits< _Tp> ::__digits); +# 182 +if constexpr ((_Nd & (_Nd - 1)) == 0) +# 183 +{ +# 186 +constexpr unsigned __uNd = (_Nd); +# 187 +const unsigned __r = __s; +# 188 +return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); +# 189 +} +# 190 +const int __r = __s % _Nd; +# 191 +if (__r == 0) { +# 192 +return __x; } else { +# 193 +if (__r > 0) { +# 194 +return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); } else { +# 196 +return (__x << (-__r)) | (__x >> ((_Nd + __r) % _Nd)); } } +# 197 +} +# 199 +template< class _Tp> constexpr int +# 201 +__countl_zero(_Tp __x) noexcept +# 202 +{ +# 203 +using __gnu_cxx::__int_traits; +# 204 +constexpr auto _Nd = (__int_traits< _Tp> ::__digits); +# 206 +if (__x == 0) { +# 207 +return _Nd; } +# 209 +constexpr auto _Nd_ull = __int_traits< unsigned long long> ::__digits; +# 210 +constexpr auto _Nd_ul = __int_traits< unsigned long> ::__digits; +# 211 +constexpr auto _Nd_u = __int_traits< unsigned> ::__digits; +# 213 +if constexpr (_Nd <= _Nd_u) +# 214 +{ +# 215 +constexpr int __diff = (_Nd_u - _Nd); +# 216 +return __builtin_clz(__x) - __diff; +# 217 +} else { +# 218 +if constexpr (_Nd <= _Nd_ul) +# 219 +{ +# 220 +constexpr int __diff = (_Nd_ul - _Nd); +# 221 +return __builtin_clzl(__x) - __diff; +# 222 +} else { +# 223 +if constexpr (_Nd <= _Nd_ull) +# 224 +{ +# 225 +constexpr int __diff = (_Nd_ull - _Nd); +# 226 +return __builtin_clzll(__x) - __diff; +# 227 +} else +# 229 +{ +# 230 +static_assert((_Nd <= (2 * _Nd_ull)), "Maximum supported integer size is 128-bit"); +# 233 +unsigned long long __high = __x >> _Nd_ull; +# 234 +if (__high != (0)) +# 235 +{ +# 236 +constexpr int __diff = ((2 * _Nd_ull) - _Nd); +# 237 +return __builtin_clzll(__high) - __diff; +# 238 +} +# 239 +constexpr auto __max_ull = __int_traits< unsigned long long> ::__max; +# 240 +unsigned long long __low = __x & __max_ull; +# 241 +return (_Nd - _Nd_ull) + __builtin_clzll(__low); +# 242 +} } } +# 243 +} +# 245 +template< class _Tp> constexpr int +# 247 +__countl_one(_Tp __x) noexcept +# 248 +{ +# 249 +return std::__countl_zero< _Tp> ((_Tp)(~__x)); +# 250 +} +# 252 +template< class _Tp> constexpr int +# 254 +__countr_zero(_Tp __x) noexcept +# 255 +{ +# 256 +using __gnu_cxx::__int_traits; +# 257 +constexpr auto _Nd = (__int_traits< _Tp> ::__digits); +# 259 +if (__x == 0) { +# 260 +return _Nd; } +# 262 +constexpr auto _Nd_ull = __int_traits< unsigned long long> ::__digits; +# 263 +constexpr auto _Nd_ul = __int_traits< unsigned long> ::__digits; +# 264 +constexpr auto _Nd_u = __int_traits< unsigned> ::__digits; +# 266 +if constexpr (_Nd <= _Nd_u) { +# 267 +return __builtin_ctz(__x); } else { +# 268 +if constexpr (_Nd <= _Nd_ul) { +# 269 +return __builtin_ctzl(__x); } else { +# 270 +if constexpr (_Nd <= _Nd_ull) { +# 271 +return __builtin_ctzll(__x); } else +# 273 +{ +# 274 +static_assert((_Nd <= (2 * _Nd_ull)), "Maximum supported integer size is 128-bit"); +# 277 +constexpr auto __max_ull = __int_traits< unsigned long long> ::__max; +# 278 +unsigned long long __low = __x & __max_ull; +# 279 +if (__low != (0)) { +# 280 +return __builtin_ctzll(__low); } +# 281 +unsigned long long __high = __x >> _Nd_ull; +# 282 +return __builtin_ctzll(__high) + _Nd_ull; +# 283 +} } } +# 284 +} +# 286 +template< class _Tp> constexpr int +# 288 +__countr_one(_Tp __x) noexcept +# 289 +{ +# 290 +return std::__countr_zero((_Tp)(~__x)); +# 291 +} +# 293 +template< class _Tp> constexpr int +# 295 +__popcount(_Tp __x) noexcept +# 296 +{ +# 297 +using __gnu_cxx::__int_traits; +# 298 +constexpr auto _Nd = (__int_traits< _Tp> ::__digits); +# 300 +constexpr auto _Nd_ull = __int_traits< unsigned long long> ::__digits; +# 301 +constexpr auto _Nd_ul = __int_traits< unsigned long> ::__digits; +# 302 +constexpr auto _Nd_u = __int_traits< unsigned> ::__digits; +# 304 +if constexpr (_Nd <= _Nd_u) { +# 305 +return __builtin_popcount(__x); } else { +# 306 +if constexpr (_Nd <= _Nd_ul) { +# 307 +return __builtin_popcountl(__x); } else { +# 308 +if constexpr (_Nd <= _Nd_ull) { +# 309 +return __builtin_popcountll(__x); } else +# 311 +{ +# 312 +static_assert((_Nd <= (2 * _Nd_ull)), "Maximum supported integer size is 128-bit"); +# 315 +constexpr auto __max_ull = __int_traits< unsigned long long> ::__max; +# 316 +unsigned long long __low = __x & __max_ull; +# 317 +unsigned long long __high = __x >> _Nd_ull; +# 318 +return __builtin_popcountll(__low) + __builtin_popcountll(__high); +# 319 +} } } +# 320 +} +# 322 +template< class _Tp> constexpr bool +# 324 +__has_single_bit(_Tp __x) noexcept +# 325 +{ return std::__popcount(__x) == 1; } +# 327 +template< class _Tp> constexpr _Tp +# 329 +__bit_ceil(_Tp __x) noexcept +# 330 +{ +# 331 +using __gnu_cxx::__int_traits; +# 332 +constexpr auto _Nd = (__int_traits< _Tp> ::__digits); +# 333 +if ((__x == 0) || (__x == 1)) { +# 334 +return 1; } +# 335 +auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1U)); +# 340 +if (!std::__is_constant_evaluated()) +# 341 +{ +# 342 +do { if (std::__is_constant_evaluated() && (!((bool)(__shift_exponent != __int_traits< _Tp> ::__digits)))) { std::__glibcxx_assert_fail(); } } while (false); +# 343 +} +# 345 +using __promoted_type = __decltype((__x << 1)); +# 346 +if constexpr (!is_same< __decltype((__x << 1)), _Tp> ::value) +# 347 +{ +# 353 +const int __extra_exp = ((sizeof(__promoted_type) / sizeof(_Tp)) / (2)); +# 354 +__shift_exponent |= ((__shift_exponent & _Nd) << __extra_exp); +# 355 +} +# 356 +return ((_Tp)1U) << __shift_exponent; +# 357 +} +# 359 +template< class _Tp> constexpr _Tp +# 361 +__bit_floor(_Tp __x) noexcept +# 362 +{ +# 363 +constexpr auto _Nd = (__gnu_cxx::__int_traits< _Tp> ::__digits); +# 364 +if (__x == 0) { +# 365 +return 0; } +# 366 +return ((_Tp)1U) << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); +# 367 +} +# 369 +template< class _Tp> constexpr int +# 371 +__bit_width(_Tp __x) noexcept +# 372 +{ +# 373 +constexpr auto _Nd = (__gnu_cxx::__int_traits< _Tp> ::__digits); +# 374 +return _Nd - std::__countl_zero(__x); +# 375 +} +# 483 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bit" 3 +} +# 82 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 90 +template< class _Tp, class _Up> constexpr int +# 93 +__memcmp(const _Tp *__first1, const _Up *__first2, size_t __num) +# 94 +{ +# 96 +static_assert((sizeof(_Tp) == sizeof(_Up)), "can be compared with memcmp"); +# 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); +# 109 +} +# 152 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> inline void +# 155 +iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) +# 156 +{ +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +swap(*__a, *__b); +# 187 +} +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> _ForwardIterator2 +# 204 +swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 205 +__first2) +# 206 +{ +# 212 +; +# 214 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 215 +std::iter_swap(__first1, __first2); } +# 216 +return __first2; +# 217 +} +# 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Tp> +# 231 +[[__nodiscard__]] constexpr const _Tp & +# 233 +min(const _Tp &__a, const _Tp &__b) +# 234 +{ +# 238 +if (__b < __a) { +# 239 +return __b; } +# 240 +return __a; +# 241 +} +# 254 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Tp> +# 255 +[[__nodiscard__]] constexpr const _Tp & +# 257 +max(const _Tp &__a, const _Tp &__b) +# 258 +{ +# 262 +if (__a < __b) { +# 263 +return __b; } +# 264 +return __a; +# 265 +} +# 278 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Tp, class _Compare> +# 279 +[[__nodiscard__]] constexpr const _Tp & +# 281 +min(const _Tp &__a, const _Tp &__b, _Compare __comp) +# 282 +{ +# 284 +if (__comp(__b, __a)) { +# 285 +return __b; } +# 286 +return __a; +# 287 +} +# 300 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Tp, class _Compare> +# 301 +[[__nodiscard__]] constexpr const _Tp & +# 303 +max(const _Tp &__a, const _Tp &__b, _Compare __comp) +# 304 +{ +# 306 +if (__comp(__a, __b)) { +# 307 +return __b; } +# 308 +return __a; +# 309 +} +# 313 +template< class _Iterator> inline _Iterator +# 316 +__niter_base(_Iterator __it) noexcept(std::template is_nothrow_copy_constructible< _Iterator> ::value) +# 318 +{ return __it; } +# 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _Ite, class _Seq> __decltype((std::__niter_base(std::declval< _Ite> ()))) __niter_base(const __gnu_debug::_Safe_iterator< _Ite, _Seq, random_access_iterator_tag> &) noexcept(std::template is_nothrow_copy_constructible< _Ite> ::value); +# 343 +template< class _From, class _To> inline _From +# 346 +__niter_wrap(_From __from, _To __res) +# 347 +{ return __from + (std::__niter_base(__res) - std::__niter_base(__from)); } +# 350 +template< class _Iterator> inline _Iterator +# 353 +__niter_wrap(const _Iterator &, _Iterator __res) +# 354 +{ return __res; } +# 362 +template< bool _IsMove, bool _IsSimple, class _Category> +# 363 +struct __copy_move { +# 365 +template< class _II, class _OI> static _OI +# 368 +__copy_m(_II __first, _II __last, _OI __result) +# 369 +{ +# 370 +for (; __first != __last; (++__result), ((void)(++__first))) { +# 371 +(*__result) = (*__first); } +# 372 +return __result; +# 373 +} +# 374 +}; +# 377 +template< class _Category> +# 378 +struct __copy_move< true, false, _Category> { +# 380 +template< class _II, class _OI> static _OI +# 383 +__copy_m(_II __first, _II __last, _OI __result) +# 384 +{ +# 385 +for (; __first != __last; (++__result), ((void)(++__first))) { +# 386 +(*__result) = std::move(*__first); } +# 387 +return __result; +# 388 +} +# 389 +}; +# 393 +template<> struct __copy_move< false, false, random_access_iterator_tag> { +# 395 +template< class _II, class _OI> static _OI +# 398 +__copy_m(_II __first, _II __last, _OI __result) +# 399 +{ +# 400 +typedef typename iterator_traits< _II> ::difference_type _Distance; +# 401 +for (_Distance __n = __last - __first; __n > 0; --__n) +# 402 +{ +# 403 +(*__result) = (*__first); +# 404 +++__first; +# 405 +++__result; +# 406 +} +# 407 +return __result; +# 408 +} +# 410 +template< class _Tp, class _Up> static void +# 412 +__assign_one(_Tp *__to, _Up *__from) +# 413 +{ (*__to) = (*__from); } +# 414 +}; +# 418 +template<> struct __copy_move< true, false, random_access_iterator_tag> { +# 420 +template< class _II, class _OI> static _OI +# 423 +__copy_m(_II __first, _II __last, _OI __result) +# 424 +{ +# 425 +typedef typename iterator_traits< _II> ::difference_type _Distance; +# 426 +for (_Distance __n = __last - __first; __n > 0; --__n) +# 427 +{ +# 428 +(*__result) = std::move(*__first); +# 429 +++__first; +# 430 +++__result; +# 431 +} +# 432 +return __result; +# 433 +} +# 435 +template< class _Tp, class _Up> static void +# 437 +__assign_one(_Tp *__to, _Up *__from) +# 438 +{ (*__to) = std::move(*__from); } +# 439 +}; +# 442 +template< bool _IsMove> +# 443 +struct __copy_move< _IsMove, true, random_access_iterator_tag> { +# 445 +template< class _Tp, class _Up> static _Up * +# 448 +__copy_m(_Tp *__first, _Tp *__last, _Up *__result) +# 449 +{ +# 450 +const ptrdiff_t _Num = __last - __first; +# 451 +if (__builtin_expect(_Num > (1), true)) { +# 452 +__builtin_memmove(__result, __first, sizeof(_Tp) * _Num); } else { +# 453 +if (_Num == (1)) { +# 454 +std::template __copy_move< _IsMove, false, random_access_iterator_tag> ::__assign_one(__result, __first); } } +# 456 +return __result + _Num; +# 457 +} +# 458 +}; +# 462 +template< class _Tp, class _Ref, class _Ptr> struct _Deque_iterator; +# 465 +struct _Bit_iterator; +# 472 +template< class _CharT> struct char_traits; +# 475 +template< class _CharT, class _Traits> class istreambuf_iterator; +# 478 +template< class _CharT, class _Traits> class ostreambuf_iterator; +# 481 +template< bool _IsMove, class _CharT> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, ostreambuf_iterator< _CharT, char_traits< _CharT> > > ::__type __copy_move_a2(_CharT *, _CharT *, ostreambuf_iterator< _CharT, char_traits< _CharT> > ); +# 487 +template< bool _IsMove, class _CharT> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, ostreambuf_iterator< _CharT, char_traits< _CharT> > > ::__type __copy_move_a2(const _CharT *, const _CharT *, ostreambuf_iterator< _CharT, char_traits< _CharT> > ); +# 493 +template< bool _IsMove, class _CharT> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, _CharT *> ::__type __copy_move_a2(istreambuf_iterator< _CharT, char_traits< _CharT> > , istreambuf_iterator< _CharT, char_traits< _CharT> > , _CharT *); +# 499 +template< bool _IsMove, class _CharT> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, _Deque_iterator< _CharT, _CharT &, _CharT *> > ::__type __copy_move_a2(istreambuf_iterator< _CharT, char_traits< _CharT> > , istreambuf_iterator< _CharT, char_traits< _CharT> > , _Deque_iterator< _CharT, _CharT &, _CharT *> ); +# 509 +template< bool _IsMove, class _II, class _OI> inline _OI +# 512 +__copy_move_a2(_II __first, _II __last, _OI __result) +# 513 +{ +# 514 +typedef typename iterator_traits< _II> ::iterator_category _Category; +# 520 +return std::template __copy_move< _IsMove, __memcpyable< _OI, _II> ::__value, typename iterator_traits< _II> ::iterator_category> ::__copy_m(__first, __last, __result); +# 522 +} +# 524 +template< bool _IsMove, class +# 525 +_Tp, class _Ref, class _Ptr, class _OI> _OI +# 524 +__copy_move_a1(_Deque_iterator< _Tp, _Ref, _Ptr> , _Deque_iterator< _Tp, _Ref, _Ptr> , _OI); +# 531 +template< bool _IsMove, class +# 532 +_ITp, class _IRef, class _IPtr, class _OTp> _Deque_iterator< _OTp, _OTp &, _OTp *> +# 531 +__copy_move_a1(_Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _OTp, _OTp &, _OTp *> ); +# 538 +template< bool _IsMove, class _II, class _Tp> typename __gnu_cxx::__enable_if< __is_random_access_iter< _II> ::__value, _Deque_iterator< _Tp, _Tp &, _Tp *> > ::__type __copy_move_a1(_II, _II, _Deque_iterator< _Tp, _Tp &, _Tp *> ); +# 544 +template< bool _IsMove, class _II, class _OI> inline _OI +# 547 +__copy_move_a1(_II __first, _II __last, _OI __result) +# 548 +{ return std::__copy_move_a2< _IsMove> (__first, __last, __result); } +# 550 +template< bool _IsMove, class _II, class _OI> inline _OI +# 553 +__copy_move_a(_II __first, _II __last, _OI __result) +# 554 +{ +# 555 +return std::__niter_wrap(__result, std::__copy_move_a1< _IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); +# 559 +} +# 561 +template< bool _IsMove, class +# 562 +_Ite, class _Seq, class _Cat, class _OI> _OI +# 561 +__copy_move_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, _OI); +# 569 +template< bool _IsMove, class +# 570 +_II, class _Ite, class _Seq, class _Cat> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 569 +__copy_move_a(_II, _II, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &); +# 576 +template< bool _IsMove, class +# 577 +_IIte, class _ISeq, class _ICat, class +# 578 +_OIte, class _OSeq, class _OCat> __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> +# 576 +__copy_move_a(const __gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat> &, const __gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat> &, const __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> &); +# 585 +template< class _InputIterator, class _Size, class _OutputIterator> _OutputIterator +# 588 +__copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, bool) +# 590 +{ +# 591 +if (__n > 0) +# 592 +{ +# 593 +while (true) +# 594 +{ +# 595 +(*__result) = (*__first); +# 596 +++__result; +# 597 +if ((--__n) > 0) { +# 598 +++__first; } else { +# 600 +break; } +# 601 +} +# 602 +} +# 603 +return __result; +# 604 +} +# 607 +template< class _CharT, class _Size> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, _CharT *> ::__type __copy_n_a(istreambuf_iterator< _CharT, char_traits< _CharT> > , _Size, _CharT *, bool); +# 613 +template< class _CharT, class _Size> typename __gnu_cxx::__enable_if< __is_char< _CharT> ::__value, _Deque_iterator< _CharT, _CharT &, _CharT *> > ::__type __copy_n_a(istreambuf_iterator< _CharT, char_traits< _CharT> > , _Size, _Deque_iterator< _CharT, _CharT &, _CharT *> , bool); +# 639 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II, class _OI> inline _OI +# 642 +copy(_II __first, _II __last, _OI __result) +# 643 +{ +# 648 +; +# 650 +return std::__copy_move_a< __is_move_iterator< _II> ::__value> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 652 +} +# 672 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II, class _OI> inline _OI +# 675 +move(_II __first, _II __last, _OI __result) +# 676 +{ +# 681 +; +# 683 +return std::__copy_move_a< true> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 685 +} +# 692 +template< bool _IsMove, bool _IsSimple, class _Category> +# 693 +struct __copy_move_backward { +# 695 +template< class _BI1, class _BI2> static _BI2 +# 698 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 699 +{ +# 700 +while (__first != __last) { +# 701 +(*(--__result)) = (*(--__last)); } +# 702 +return __result; +# 703 +} +# 704 +}; +# 707 +template< class _Category> +# 708 +struct __copy_move_backward< true, false, _Category> { +# 710 +template< class _BI1, class _BI2> static _BI2 +# 713 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 714 +{ +# 715 +while (__first != __last) { +# 716 +(*(--__result)) = std::move(*(--__last)); } +# 717 +return __result; +# 718 +} +# 719 +}; +# 723 +template<> struct __copy_move_backward< false, false, random_access_iterator_tag> { +# 725 +template< class _BI1, class _BI2> static _BI2 +# 728 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 729 +{ +# 731 +typename iterator_traits< _BI1> ::difference_type __n = __last - __first; +# 732 +for (; __n > 0; --__n) { +# 733 +(*(--__result)) = (*(--__last)); } +# 734 +return __result; +# 735 +} +# 736 +}; +# 740 +template<> struct __copy_move_backward< true, false, random_access_iterator_tag> { +# 742 +template< class _BI1, class _BI2> static _BI2 +# 745 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 746 +{ +# 748 +typename iterator_traits< _BI1> ::difference_type __n = __last - __first; +# 749 +for (; __n > 0; --__n) { +# 750 +(*(--__result)) = std::move(*(--__last)); } +# 751 +return __result; +# 752 +} +# 753 +}; +# 756 +template< bool _IsMove> +# 757 +struct __copy_move_backward< _IsMove, true, random_access_iterator_tag> { +# 759 +template< class _Tp, class _Up> static _Up * +# 762 +__copy_move_b(_Tp *__first, _Tp *__last, _Up *__result) +# 763 +{ +# 764 +const ptrdiff_t _Num = __last - __first; +# 765 +if (__builtin_expect(_Num > (1), true)) { +# 766 +__builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); } else { +# 767 +if (_Num == (1)) { +# 768 +std::template __copy_move< _IsMove, false, random_access_iterator_tag> ::__assign_one(__result - 1, __first); } } +# 770 +return __result - _Num; +# 771 +} +# 772 +}; +# 774 +template< bool _IsMove, class _BI1, class _BI2> inline _BI2 +# 777 +__copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) +# 778 +{ +# 779 +typedef typename iterator_traits< _BI1> ::iterator_category _Category; +# 785 +return std::template __copy_move_backward< _IsMove, __memcpyable< _BI2, _BI1> ::__value, typename iterator_traits< _BI1> ::iterator_category> ::__copy_move_b(__first, __last, __result); +# 790 +} +# 792 +template< bool _IsMove, class _BI1, class _BI2> inline _BI2 +# 795 +__copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) +# 796 +{ return std::__copy_move_backward_a2< _IsMove> (__first, __last, __result); } +# 798 +template< bool _IsMove, class +# 799 +_Tp, class _Ref, class _Ptr, class _OI> _OI +# 798 +__copy_move_backward_a1(_Deque_iterator< _Tp, _Ref, _Ptr> , _Deque_iterator< _Tp, _Ref, _Ptr> , _OI); +# 805 +template< bool _IsMove, class +# 806 +_ITp, class _IRef, class _IPtr, class _OTp> _Deque_iterator< _OTp, _OTp &, _OTp *> +# 805 +__copy_move_backward_a1(_Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _OTp, _OTp &, _OTp *> ); +# 813 +template< bool _IsMove, class _II, class _Tp> typename __gnu_cxx::__enable_if< __is_random_access_iter< _II> ::__value, _Deque_iterator< _Tp, _Tp &, _Tp *> > ::__type __copy_move_backward_a1(_II, _II, _Deque_iterator< _Tp, _Tp &, _Tp *> ); +# 820 +template< bool _IsMove, class _II, class _OI> inline _OI +# 823 +__copy_move_backward_a(_II __first, _II __last, _OI __result) +# 824 +{ +# 825 +return std::__niter_wrap(__result, std::__copy_move_backward_a1< _IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); +# 829 +} +# 831 +template< bool _IsMove, class +# 832 +_Ite, class _Seq, class _Cat, class _OI> _OI +# 831 +__copy_move_backward_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, _OI); +# 840 +template< bool _IsMove, class +# 841 +_II, class _Ite, class _Seq, class _Cat> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 840 +__copy_move_backward_a(_II, _II, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &); +# 847 +template< bool _IsMove, class +# 848 +_IIte, class _ISeq, class _ICat, class +# 849 +_OIte, class _OSeq, class _OCat> __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> +# 847 +__copy_move_backward_a(const __gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat> &, const __gnu_debug::_Safe_iterator< _IIte, _ISeq, _ICat> &, const __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> &); +# 875 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _BI1, class _BI2> inline _BI2 +# 878 +copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) +# 879 +{ +# 885 +; +# 887 +return std::__copy_move_backward_a< __is_move_iterator< _BI1> ::__value> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 889 +} +# 910 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _BI1, class _BI2> inline _BI2 +# 913 +move_backward(_BI1 __first, _BI1 __last, _BI2 __result) +# 914 +{ +# 920 +; +# 922 +return std::__copy_move_backward_a< true> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 925 +} +# 932 +template< class _ForwardIterator, class _Tp> inline typename __gnu_cxx::__enable_if< !__is_scalar< _Tp> ::__value, void> ::__type +# 936 +__fill_a1(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 937 +__value) +# 938 +{ +# 939 +for (; __first != __last; ++__first) { +# 940 +(*__first) = __value; } +# 941 +} +# 943 +template< class _ForwardIterator, class _Tp> inline typename __gnu_cxx::__enable_if< __is_scalar< _Tp> ::__value, void> ::__type +# 947 +__fill_a1(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 948 +__value) +# 949 +{ +# 950 +const _Tp __tmp = __value; +# 951 +for (; __first != __last; ++__first) { +# 952 +(*__first) = __tmp; } +# 953 +} +# 956 +template< class _Tp> inline typename __gnu_cxx::__enable_if< __is_byte< _Tp> ::__value, void> ::__type +# 960 +__fill_a1(_Tp *__first, _Tp *__last, const _Tp &__c) +# 961 +{ +# 962 +const _Tp __tmp = __c; +# 971 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +if (const size_t __len = __last - __first) { +# 972 +__builtin_memset(__first, static_cast< unsigned char>(__tmp), __len); } +# 973 +} +# 975 +template< class _Ite, class _Cont, class _Tp> inline void +# 978 +__fill_a1(__gnu_cxx::__normal_iterator< _Ite, _Cont> __first, __gnu_cxx::__normal_iterator< _Ite, _Cont> +# 979 +__last, const _Tp & +# 980 +__value) +# 981 +{ std::__fill_a1(__first.base(), __last.base(), __value); } +# 983 +template< class _Tp, class _VTp> void __fill_a1(const _Deque_iterator< _Tp, _Tp &, _Tp *> &, const _Deque_iterator< _Tp, _Tp &, _Tp *> &, const _VTp &); +# 991 +void __fill_a1(_Bit_iterator, _Bit_iterator, const bool &); +# 994 +template< class _FIte, class _Tp> inline void +# 997 +__fill_a(_FIte __first, _FIte __last, const _Tp &__value) +# 998 +{ std::__fill_a1(__first, __last, __value); } +# 1000 +template< class _Ite, class _Seq, class _Cat, class _Tp> void __fill_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const _Tp &); +# 1019 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator, class _Tp> inline void +# 1022 +fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value) +# 1023 +{ +# 1027 +; +# 1029 +std::__fill_a(__first, __last, __value); +# 1030 +} +# 1032 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" +# 1036 +constexpr int __size_to_integer(int __n) { return __n; } +# 1038 +constexpr unsigned __size_to_integer(unsigned __n) { return __n; } +# 1040 +constexpr long __size_to_integer(long __n) { return __n; } +# 1042 +constexpr unsigned long __size_to_integer(unsigned long __n) { return __n; } +# 1044 +constexpr long long __size_to_integer(long long __n) { return __n; } +# 1046 +constexpr unsigned long long __size_to_integer(unsigned long long __n) { return __n; } +# 1050 +__extension__ constexpr __int128 __size_to_integer(__int128 __n) { return __n; } +# 1052 +__extension__ constexpr unsigned __int128 __size_to_integer(unsigned __int128 __n) { return __n; } +# 1074 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +constexpr long long __size_to_integer(float __n) { return (long long)__n; } +# 1076 +constexpr long long __size_to_integer(double __n) { return (long long)__n; } +# 1078 +constexpr long long __size_to_integer(long double __n) { return (long long)__n; } +# 1081 +__extension__ constexpr long long __size_to_integer(__float128 __n) { return (long long)__n; } +# 1083 +#pragma GCC diagnostic pop +# 1085 +template< class _OutputIterator, class _Size, class _Tp> inline typename __gnu_cxx::__enable_if< !__is_scalar< _Tp> ::__value, _OutputIterator> ::__type +# 1089 +__fill_n_a1(_OutputIterator __first, _Size __n, const _Tp &__value) +# 1090 +{ +# 1091 +for (; __n > 0; (--__n), ((void)(++__first))) { +# 1092 +(*__first) = __value; } +# 1093 +return __first; +# 1094 +} +# 1096 +template< class _OutputIterator, class _Size, class _Tp> inline typename __gnu_cxx::__enable_if< __is_scalar< _Tp> ::__value, _OutputIterator> ::__type +# 1100 +__fill_n_a1(_OutputIterator __first, _Size __n, const _Tp &__value) +# 1101 +{ +# 1102 +const _Tp __tmp = __value; +# 1103 +for (; __n > 0; (--__n), ((void)(++__first))) { +# 1104 +(*__first) = __tmp; } +# 1105 +return __first; +# 1106 +} +# 1108 +template< class _Ite, class _Seq, class _Cat, class _Size, class +# 1109 +_Tp> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 1108 +__fill_n_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> & __first, _Size __n, const _Tp & __value, input_iterator_tag); +# 1116 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1119 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, output_iterator_tag) +# 1121 +{ +# 1123 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1125 +return __fill_n_a1(__first, __n, __value); +# 1126 +} +# 1128 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1131 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, input_iterator_tag) +# 1133 +{ +# 1135 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1137 +return __fill_n_a1(__first, __n, __value); +# 1138 +} +# 1140 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1143 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, random_access_iterator_tag) +# 1145 +{ +# 1147 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1149 +if (__n <= 0) { +# 1150 +return __first; } +# 1152 +; +# 1154 +std::__fill_a(__first, __first + __n, __value); +# 1155 +return __first + __n; +# 1156 +} +# 1175 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _OI, class _Size, class _Tp> inline _OI +# 1178 +fill_n(_OI __first, _Size __n, const _Tp &__value) +# 1179 +{ +# 1183 +return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, std::__iterator_category(__first)); +# 1185 +} +# 1187 +template< bool _BoolType> +# 1188 +struct __equal { +# 1190 +template< class _II1, class _II2> static bool +# 1193 +equal(_II1 __first1, _II1 __last1, _II2 __first2) +# 1194 +{ +# 1195 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 1196 +if (!((*__first1) == (*__first2))) { +# 1197 +return false; } } +# 1198 +return true; +# 1199 +} +# 1200 +}; +# 1203 +template<> struct __equal< true> { +# 1205 +template< class _Tp> static bool +# 1208 +equal(const _Tp *__first1, const _Tp *__last1, const _Tp *__first2) +# 1209 +{ +# 1210 +if (const size_t __len = __last1 - __first1) { +# 1211 +return !std::__memcmp(__first1, __first2, __len); } +# 1212 +return true; +# 1213 +} +# 1214 +}; +# 1216 +template< class _Tp, class _Ref, class _Ptr, class _II> typename __gnu_cxx::__enable_if< __is_random_access_iter< _II> ::__value, bool> ::__type __equal_aux1(_Deque_iterator< _Tp, _Ref, _Ptr> , _Deque_iterator< _Tp, _Ref, _Ptr> , _II); +# 1223 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1224 +_Tp2, class _Ref2, class _Ptr2> bool +# 1223 +__equal_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1230 +template< class _II, class _Tp, class _Ref, class _Ptr> typename __gnu_cxx::__enable_if< __is_random_access_iter< _II> ::__value, bool> ::__type __equal_aux1(_II, _II, _Deque_iterator< _Tp, _Ref, _Ptr> ); +# 1236 +template< class _II1, class _II2> inline bool +# 1239 +__equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) +# 1240 +{ +# 1241 +typedef typename iterator_traits< _II1> ::value_type _ValueType1; +# 1242 +const bool __simple = ((__is_integer< typename iterator_traits< _II1> ::value_type> ::__value || __is_pointer< typename iterator_traits< _II1> ::value_type> ::__value) && __memcmpable< _II1, _II2> ::__value); +# 1245 +return std::template __equal< __simple> ::equal(__first1, __last1, __first2); +# 1246 +} +# 1248 +template< class _II1, class _II2> inline bool +# 1251 +__equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) +# 1252 +{ +# 1253 +return std::__equal_aux1(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2)); +# 1256 +} +# 1258 +template< class _II1, class _Seq1, class _Cat1, class _II2> bool __equal_aux(const __gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1> &, _II2); +# 1265 +template< class _II1, class _II2, class _Seq2, class _Cat2> bool __equal_aux(_II1, _II1, const __gnu_debug::_Safe_iterator< _II2, _Seq2, _Cat2> &); +# 1271 +template< class _II1, class _Seq1, class _Cat1, class +# 1272 +_II2, class _Seq2, class _Cat2> bool +# 1271 +__equal_aux(const __gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _II1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _II2, _Seq2, _Cat2> &); +# 1279 +template< class , class > +# 1280 +struct __lc_rai { +# 1282 +template< class _II1, class _II2> static _II1 +# 1285 +__newlast1(_II1, _II1 __last1, _II2, _II2) +# 1286 +{ return __last1; } +# 1288 +template< class _II> static bool +# 1291 +__cnd2(_II __first, _II __last) +# 1292 +{ return __first != __last; } +# 1293 +}; +# 1296 +template<> struct __lc_rai< random_access_iterator_tag, random_access_iterator_tag> { +# 1298 +template< class _RAI1, class _RAI2> static _RAI1 +# 1301 +__newlast1(_RAI1 __first1, _RAI1 __last1, _RAI2 +# 1302 +__first2, _RAI2 __last2) +# 1303 +{ +# 1305 +const typename iterator_traits< _RAI1> ::difference_type __diff1 = __last1 - __first1; +# 1307 +const typename iterator_traits< _RAI2> ::difference_type __diff2 = __last2 - __first2; +# 1308 +return (__diff2 < __diff1) ? __first1 + __diff2 : __last1; +# 1309 +} +# 1311 +template< class _RAI> static bool +# 1313 +__cnd2(_RAI, _RAI) +# 1314 +{ return true; } +# 1315 +}; +# 1317 +template< class _II1, class _II2, class _Compare> bool +# 1320 +__lexicographical_compare_impl(_II1 __first1, _II1 __last1, _II2 +# 1321 +__first2, _II2 __last2, _Compare +# 1322 +__comp) +# 1323 +{ +# 1324 +typedef typename iterator_traits< _II1> ::iterator_category _Category1; +# 1325 +typedef typename iterator_traits< _II2> ::iterator_category _Category2; +# 1326 +typedef __lc_rai< typename iterator_traits< _II1> ::iterator_category, typename iterator_traits< _II2> ::iterator_category> __rai_type; +# 1328 +__last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); +# 1329 +for (; (__first1 != __last1) && __rai_type::__cnd2(__first2, __last2); (++__first1), ((void)(++__first2))) +# 1331 +{ +# 1332 +if (__comp(__first1, __first2)) { +# 1333 +return true; } +# 1334 +if (__comp(__first2, __first1)) { +# 1335 +return false; } +# 1336 +} +# 1337 +return (__first1 == __last1) && (__first2 != __last2); +# 1338 +} +# 1340 +template< bool _BoolType> +# 1341 +struct __lexicographical_compare { +# 1343 +template< class _II1, class _II2> static bool +# 1346 +__lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1347 +{ +# 1348 +using __gnu_cxx::__ops::__iter_less_iter; +# 1349 +return std::__lexicographical_compare_impl(__first1, __last1, __first2, __last2, __iter_less_iter()); +# 1352 +} +# 1354 +template< class _II1, class _II2> static int +# 1357 +__3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1358 +{ +# 1359 +while (__first1 != __last1) +# 1360 +{ +# 1361 +if (__first2 == __last2) { +# 1362 +return +1; } +# 1363 +if ((*__first1) < (*__first2)) { +# 1364 +return -1; } +# 1365 +if ((*__first2) < (*__first1)) { +# 1366 +return +1; } +# 1367 +++__first1; +# 1368 +++__first2; +# 1369 +} +# 1370 +return ((int)(__first2 == __last2)) - 1; +# 1371 +} +# 1372 +}; +# 1375 +template<> struct __lexicographical_compare< true> { +# 1377 +template< class _Tp, class _Up> static bool +# 1380 +__lc(const _Tp *__first1, const _Tp *__last1, const _Up * +# 1381 +__first2, const _Up *__last2) +# 1382 +{ return __3way(__first1, __last1, __first2, __last2) < 0; } +# 1384 +template< class _Tp, class _Up> static ptrdiff_t +# 1387 +__3way(const _Tp *__first1, const _Tp *__last1, const _Up * +# 1388 +__first2, const _Up *__last2) +# 1389 +{ +# 1390 +const size_t __len1 = __last1 - __first1; +# 1391 +const size_t __len2 = __last2 - __first2; +# 1392 +if (const size_t __len = std::min(__len1, __len2)) { +# 1393 +if (int __result = std::__memcmp(__first1, __first2, __len)) { +# 1394 +return __result; } } +# 1395 +return (ptrdiff_t)(__len1 - __len2); +# 1396 +} +# 1397 +}; +# 1399 +template< class _II1, class _II2> inline bool +# 1402 +__lexicographical_compare_aux1(_II1 __first1, _II1 __last1, _II2 +# 1403 +__first2, _II2 __last2) +# 1404 +{ +# 1405 +typedef typename iterator_traits< _II1> ::value_type _ValueType1; +# 1406 +typedef typename iterator_traits< _II2> ::value_type _ValueType2; +# 1407 +const bool __simple = (__is_memcmp_ordered_with< typename iterator_traits< _II1> ::value_type, typename iterator_traits< _II2> ::value_type> ::__value && __is_pointer< _II1> ::__value && __is_pointer< _II2> ::__value); +# 1420 +return std::template __lexicographical_compare< __simple> ::__lc(__first1, __last1, __first2, __last2); +# 1422 +} +# 1424 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1425 +_Tp2> bool +# 1424 +__lexicographical_compare_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Tp2 *, _Tp2 *); +# 1432 +template< class _Tp1, class +# 1433 +_Tp2, class _Ref2, class _Ptr2> bool +# 1432 +__lexicographical_compare_aux1(_Tp1 *, _Tp1 *, _Deque_iterator< _Tp2, _Ref2, _Ptr2> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1439 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1440 +_Tp2, class _Ref2, class _Ptr2> bool +# 1439 +__lexicographical_compare_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1448 +template< class _II1, class _II2> inline bool +# 1451 +__lexicographical_compare_aux(_II1 __first1, _II1 __last1, _II2 +# 1452 +__first2, _II2 __last2) +# 1453 +{ +# 1454 +return std::__lexicographical_compare_aux1(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2), std::__niter_base(__last2)); +# 1458 +} +# 1460 +template< class _Iter1, class _Seq1, class _Cat1, class +# 1461 +_II2> bool +# 1460 +__lexicographical_compare_aux(const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, _II2, _II2); +# 1469 +template< class _II1, class +# 1470 +_Iter2, class _Seq2, class _Cat2> bool +# 1469 +__lexicographical_compare_aux(_II1, _II1, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &); +# 1478 +template< class _Iter1, class _Seq1, class _Cat1, class +# 1479 +_Iter2, class _Seq2, class _Cat2> bool +# 1478 +__lexicographical_compare_aux(const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &); +# 1488 +template< class _ForwardIterator, class _Tp, class _Compare> _ForwardIterator +# 1491 +__lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 1492 +__val, _Compare __comp) +# 1493 +{ +# 1495 +typedef typename iterator_traits< _ForwardIterator> ::difference_type _DistanceType; +# 1497 +_DistanceType __len = std::distance(__first, __last); +# 1499 +while (__len > 0) +# 1500 +{ +# 1501 +_DistanceType __half = __len >> 1; +# 1502 +_ForwardIterator __middle = __first; +# 1503 +std::advance(__middle, __half); +# 1504 +if (__comp(__middle, __val)) +# 1505 +{ +# 1506 +__first = __middle; +# 1507 +++__first; +# 1508 +__len = ((__len - __half) - 1); +# 1509 +} else { +# 1511 +__len = __half; } +# 1512 +} +# 1513 +return __first; +# 1514 +} +# 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator, class _Tp> +# 1528 +[[__nodiscard__]] inline _ForwardIterator +# 1530 +lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 1531 +__val) +# 1532 +{ +# 1537 +; +# 1539 +return std::__lower_bound(__first, __last, __val, __gnu_cxx::__ops::__iter_less_val()); +# 1541 +} +# 1545 +template< class _Tp> constexpr _Tp +# 1547 +__lg(_Tp __n) +# 1548 +{ +# 1550 +return std::__bit_width((make_unsigned_t< _Tp> )__n) - 1; +# 1563 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +} +# 1579 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II1, class _II2> +# 1580 +[[__nodiscard__]] inline bool +# 1582 +equal(_II1 __first1, _II1 __last1, _II2 __first2) +# 1583 +{ +# 1590 +; +# 1592 +return std::__equal_aux(__first1, __last1, __first2); +# 1593 +} +# 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _IIter1, class _IIter2, class _BinaryPredicate> +# 1611 +[[__nodiscard__]] inline bool +# 1613 +equal(_IIter1 __first1, _IIter1 __last1, _IIter2 +# 1614 +__first2, _BinaryPredicate __binary_pred) +# 1615 +{ +# 1619 +; +# 1621 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 1622 +if (!((bool)__binary_pred(*__first1, *__first2))) { +# 1623 +return false; } } +# 1624 +return true; +# 1625 +} +# 1628 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wc++17-extensions" +# 1632 +template< class _II1, class _II2> inline bool +# 1635 +__equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1636 +{ +# 1637 +using _RATag = random_access_iterator_tag; +# 1638 +using _Cat1 = typename iterator_traits< _II1> ::iterator_category; +# 1639 +using _Cat2 = typename iterator_traits< _II2> ::iterator_category; +# 1640 +using _RAIters = __and_< is_same< typename iterator_traits< _II1> ::iterator_category, random_access_iterator_tag> , is_same< typename iterator_traits< _II2> ::iterator_category, random_access_iterator_tag> > ; +# 1641 +if constexpr (_RAIters::value) +# 1642 +{ +# 1643 +if ((__last1 - __first1) != (__last2 - __first2)) { +# 1644 +return false; } +# 1645 +return std::equal(__first1, __last1, __first2); +# 1646 +} else +# 1648 +{ +# 1649 +for (; (__first1 != __last1) && (__first2 != __last2); (++__first1), ((void)(++__first2))) { +# 1651 +if (!((*__first1) == (*__first2))) { +# 1652 +return false; } } +# 1653 +return (__first1 == __last1) && (__first2 == __last2); +# 1654 +} +# 1655 +} +# 1658 +template< class _II1, class _II2, class _BinaryPredicate> inline bool +# 1661 +__equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _BinaryPredicate +# 1662 +__binary_pred) +# 1663 +{ +# 1664 +using _RATag = random_access_iterator_tag; +# 1665 +using _Cat1 = typename iterator_traits< _II1> ::iterator_category; +# 1666 +using _Cat2 = typename iterator_traits< _II2> ::iterator_category; +# 1667 +using _RAIters = __and_< is_same< typename iterator_traits< _II1> ::iterator_category, random_access_iterator_tag> , is_same< typename iterator_traits< _II2> ::iterator_category, random_access_iterator_tag> > ; +# 1668 +if constexpr (_RAIters::value) +# 1669 +{ +# 1670 +if ((__last1 - __first1) != (__last2 - __first2)) { +# 1671 +return false; } +# 1672 +return std::equal(__first1, __last1, __first2, __binary_pred); +# 1674 +} else +# 1676 +{ +# 1677 +for (; (__first1 != __last1) && (__first2 != __last2); (++__first1), ((void)(++__first2))) { +# 1679 +if (!((bool)__binary_pred(*__first1, *__first2))) { +# 1680 +return false; } } +# 1681 +return (__first1 == __last1) && (__first2 == __last2); +# 1682 +} +# 1683 +} +#pragma GCC diagnostic pop +# 1701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II1, class _II2> +# 1702 +[[__nodiscard__]] inline bool +# 1704 +equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1705 +{ +# 1712 +; +# 1713 +; +# 1715 +return std::__equal4(__first1, __last1, __first2, __last2); +# 1716 +} +# 1734 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _IIter1, class _IIter2, class _BinaryPredicate> +# 1735 +[[__nodiscard__]] inline bool +# 1737 +equal(_IIter1 __first1, _IIter1 __last1, _IIter2 +# 1738 +__first2, _IIter2 __last2, _BinaryPredicate __binary_pred) +# 1739 +{ +# 1743 +; +# 1744 +; +# 1746 +return std::__equal4(__first1, __last1, __first2, __last2, __binary_pred); +# 1748 +} +# 1766 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II1, class _II2> +# 1767 +[[__nodiscard__]] inline bool +# 1769 +lexicographical_compare(_II1 __first1, _II1 __last1, _II2 +# 1770 +__first2, _II2 __last2) +# 1771 +{ +# 1781 +; +# 1782 +; +# 1784 +return std::__lexicographical_compare_aux(__first1, __last1, __first2, __last2); +# 1786 +} +# 1801 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _II1, class _II2, class _Compare> +# 1802 +[[__nodiscard__]] inline bool +# 1804 +lexicographical_compare(_II1 __first1, _II1 __last1, _II2 +# 1805 +__first2, _II2 __last2, _Compare __comp) +# 1806 +{ +# 1810 +; +# 1811 +; +# 1813 +return std::__lexicographical_compare_impl(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__comp)); +# 1816 +} +# 1916 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 1917 +_BinaryPredicate> pair< _InputIterator1, _InputIterator2> +# 1920 +__mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1921 +__first2, _BinaryPredicate __binary_pred) +# 1922 +{ +# 1923 +while ((__first1 != __last1) && __binary_pred(__first1, __first2)) +# 1924 +{ +# 1925 +++__first1; +# 1926 +++__first2; +# 1927 +} +# 1928 +return pair< _InputIterator1, _InputIterator2> (__first1, __first2); +# 1929 +} +# 1944 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2> +# 1945 +[[__nodiscard__]] inline pair< _InputIterator1, _InputIterator2> +# 1947 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1948 +__first2) +# 1949 +{ +# 1956 +; +# 1958 +return std::__mismatch(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 1960 +} +# 1978 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 1979 +_BinaryPredicate> +# 1980 +[[__nodiscard__]] inline pair< _InputIterator1, _InputIterator2> +# 1982 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1983 +__first2, _BinaryPredicate __binary_pred) +# 1984 +{ +# 1988 +; +# 1990 +return std::__mismatch(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); +# 1992 +} +# 1995 +template< class _InputIterator1, class _InputIterator2, class +# 1996 +_BinaryPredicate> pair< _InputIterator1, _InputIterator2> +# 1999 +__mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 2000 +__first2, _InputIterator2 __last2, _BinaryPredicate +# 2001 +__binary_pred) +# 2002 +{ +# 2003 +while ((__first1 != __last1) && (__first2 != __last2) && __binary_pred(__first1, __first2)) +# 2005 +{ +# 2006 +++__first1; +# 2007 +++__first2; +# 2008 +} +# 2009 +return pair< _InputIterator1, _InputIterator2> (__first1, __first2); +# 2010 +} +# 2026 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2> +# 2027 +[[__nodiscard__]] inline pair< _InputIterator1, _InputIterator2> +# 2029 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 2030 +__first2, _InputIterator2 __last2) +# 2031 +{ +# 2038 +; +# 2039 +; +# 2041 +return std::__mismatch(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 2043 +} +# 2062 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 2063 +_BinaryPredicate> +# 2064 +[[__nodiscard__]] inline pair< _InputIterator1, _InputIterator2> +# 2066 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 2067 +__first2, _InputIterator2 __last2, _BinaryPredicate +# 2068 +__binary_pred) +# 2069 +{ +# 2073 +; +# 2074 +; +# 2076 +return std::__mismatch(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); +# 2078 +} +# 2084 +template< class _InputIterator, class _Predicate> inline _InputIterator +# 2087 +__find_if(_InputIterator __first, _InputIterator __last, _Predicate +# 2088 +__pred, input_iterator_tag) +# 2089 +{ +# 2090 +while ((__first != __last) && (!__pred(__first))) { +# 2091 +++__first; } +# 2092 +return __first; +# 2093 +} +# 2096 +template< class _RandomAccessIterator, class _Predicate> _RandomAccessIterator +# 2099 +__find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate +# 2100 +__pred, random_access_iterator_tag) +# 2101 +{ +# 2103 +typename iterator_traits< _RandomAccessIterator> ::difference_type __trip_count = (__last - __first) >> 2; +# 2105 +for (; __trip_count > 0; --__trip_count) +# 2106 +{ +# 2107 +if (__pred(__first)) { +# 2108 +return __first; } +# 2109 +++__first; +# 2111 +if (__pred(__first)) { +# 2112 +return __first; } +# 2113 +++__first; +# 2115 +if (__pred(__first)) { +# 2116 +return __first; } +# 2117 +++__first; +# 2119 +if (__pred(__first)) { +# 2120 +return __first; } +# 2121 +++__first; +# 2122 +} +# 2124 +switch (__last - __first) +# 2125 +{ +# 2126 +case 3: +# 2127 +if (__pred(__first)) { +# 2128 +return __first; } +# 2129 +++__first; +# 2131 +case 2: +# 2132 +if (__pred(__first)) { +# 2133 +return __first; } +# 2134 +++__first; +# 2136 +case 1: +# 2137 +if (__pred(__first)) { +# 2138 +return __first; } +# 2139 +++__first; +# 2141 +case 0: +# 2142 +default: +# 2143 +return __last; +# 2144 +} +# 2145 +} +# 2147 +template< class _Iterator, class _Predicate> inline _Iterator +# 2150 +__find_if(_Iterator __first, _Iterator __last, _Predicate __pred) +# 2151 +{ +# 2152 +return __find_if(__first, __last, __pred, std::__iterator_category(__first)); +# 2154 +} +# 2156 +template< class _InputIterator, class _Predicate> typename iterator_traits< _InputIterator> ::difference_type +# 2159 +__count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) +# 2160 +{ +# 2161 +typename iterator_traits< _InputIterator> ::difference_type __n = (0); +# 2162 +for (; __first != __last; ++__first) { +# 2163 +if (__pred(__first)) { +# 2164 +++__n; } } +# 2165 +return __n; +# 2166 +} +# 2168 +template< class _ForwardIterator, class _Predicate> _ForwardIterator +# 2171 +__remove_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate +# 2172 +__pred) +# 2173 +{ +# 2174 +__first = std::__find_if(__first, __last, __pred); +# 2175 +if (__first == __last) { +# 2176 +return __first; } +# 2177 +_ForwardIterator __result = __first; +# 2178 +++__first; +# 2179 +for (; __first != __last; ++__first) { +# 2180 +if (!__pred(__first)) +# 2181 +{ +# 2182 +(*__result) = std::move(*__first); +# 2183 +++__result; +# 2184 +} } +# 2185 +return __result; +# 2186 +} +# 2188 +template< class _ForwardIterator1, class _ForwardIterator2, class +# 2189 +_BinaryPredicate> _ForwardIterator1 +# 2192 +__search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2193 +__first2, _ForwardIterator2 __last2, _BinaryPredicate +# 2194 +__predicate) +# 2195 +{ +# 2197 +if ((__first1 == __last1) || (__first2 == __last2)) { +# 2198 +return __first1; } +# 2201 +_ForwardIterator2 __p1(__first2); +# 2202 +if ((++__p1) == __last2) { +# 2203 +return std::__find_if(__first1, __last1, __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); } +# 2207 +_ForwardIterator1 __current = __first1; +# 2209 +for (; ;) +# 2210 +{ +# 2211 +__first1 = std::__find_if(__first1, __last1, __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); +# 2215 +if (__first1 == __last1) { +# 2216 +return __last1; } +# 2218 +_ForwardIterator2 __p = __p1; +# 2219 +__current = __first1; +# 2220 +if ((++__current) == __last1) { +# 2221 +return __last1; } +# 2223 +while (__predicate(__current, __p)) +# 2224 +{ +# 2225 +if ((++__p) == __last2) { +# 2226 +return __first1; } +# 2227 +if ((++__current) == __last1) { +# 2228 +return __last1; } +# 2229 +} +# 2230 +++__first1; +# 2231 +} +# 2232 +return __first1; +# 2233 +} +# 2236 +template< class _ForwardIterator1, class _ForwardIterator2, class +# 2237 +_BinaryPredicate> bool +# 2240 +__is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2241 +__first2, _BinaryPredicate __pred) +# 2242 +{ +# 2245 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 2246 +if (!__pred(__first1, __first2)) { +# 2247 +break; } } +# 2249 +if (__first1 == __last1) { +# 2250 +return true; } +# 2254 +_ForwardIterator2 __last2 = __first2; +# 2255 +std::advance(__last2, std::distance(__first1, __last1)); +# 2256 +for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) +# 2257 +{ +# 2258 +if (__scan != std::__find_if(__first1, __scan, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) { +# 2260 +continue; } +# 2262 +auto __matches = std::__count_if(__first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); +# 2265 +if ((0 == __matches) || (std::__count_if(__scan, __last1, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) != __matches)) { +# 2269 +return false; } +# 2270 +} +# 2271 +return true; +# 2272 +} +# 2286 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> inline bool +# 2289 +is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2290 +__first2) +# 2291 +{ +# 2298 +; +# 2300 +return std::__is_permutation(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 2302 +} +# 2328 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2, class +# 2329 +_BinaryPredicate> inline _ForwardIterator1 +# 2332 +search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2333 +__first2, _ForwardIterator2 __last2, _BinaryPredicate +# 2334 +__predicate) +# 2335 +{ +# 2342 +; +# 2343 +; +# 2345 +return std::__search(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__predicate)); +# 2347 +} +# 2351 +} +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +namespace std __attribute((__visibility__("default"))) { +# 167 +enum float_round_style { +# 169 +round_indeterminate = (-1), +# 170 +round_toward_zero = 0, +# 171 +round_to_nearest, +# 172 +round_toward_infinity, +# 173 +round_toward_neg_infinity +# 174 +}; +# 182 +enum float_denorm_style { +# 185 +denorm_indeterminate = (-1), +# 187 +denorm_absent = 0, +# 189 +denorm_present +# 190 +}; +# 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +struct __numeric_limits_base { +# 206 +static constexpr inline bool is_specialized = false; +# 211 +static constexpr inline int digits = 0; +# 214 +static constexpr inline int digits10 = 0; +# 219 +static constexpr inline int max_digits10 = 0; +# 223 +static constexpr inline bool is_signed = false; +# 226 +static constexpr inline bool is_integer = false; +# 231 +static constexpr inline bool is_exact = false; +# 235 +static constexpr inline int radix = 0; +# 239 +static constexpr inline int min_exponent = 0; +# 243 +static constexpr inline int min_exponent10 = 0; +# 248 +static constexpr inline int max_exponent = 0; +# 252 +static constexpr inline int max_exponent10 = 0; +# 255 +static constexpr inline bool has_infinity = false; +# 259 +static constexpr inline bool has_quiet_NaN = false; +# 263 +static constexpr inline bool has_signaling_NaN = false; +# 266 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 270 +static constexpr inline bool has_denorm_loss = false; +# 274 +static constexpr inline bool is_iec559 = false; +# 279 +static constexpr inline bool is_bounded = false; +# 288 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +static constexpr inline bool is_modulo = false; +# 291 +static constexpr inline bool traps = false; +# 294 +static constexpr inline bool tinyness_before = false; +# 299 +static constexpr inline float_round_style round_style = round_toward_zero; +# 301 +}; +# 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template< class _Tp> +# 312 +struct numeric_limits : public __numeric_limits_base { +# 317 +static constexpr _Tp min() noexcept { return _Tp(); } +# 321 +static constexpr _Tp max() noexcept { return _Tp(); } +# 327 +static constexpr _Tp lowest() noexcept { return _Tp(); } +# 333 +static constexpr _Tp epsilon() noexcept { return _Tp(); } +# 337 +static constexpr _Tp round_error() noexcept { return _Tp(); } +# 341 +static constexpr _Tp infinity() noexcept { return _Tp(); } +# 346 +static constexpr _Tp quiet_NaN() noexcept { return _Tp(); } +# 351 +static constexpr _Tp signaling_NaN() noexcept { return _Tp(); } +# 357 +static constexpr _Tp denorm_min() noexcept { return _Tp(); } +# 358 +}; +# 363 +template< class _Tp> +# 364 +struct numeric_limits< const _Tp> : public std::numeric_limits< _Tp> { +# 365 +}; +# 367 +template< class _Tp> +# 368 +struct numeric_limits< volatile _Tp> : public std::numeric_limits< _Tp> { +# 369 +}; +# 371 +template< class _Tp> +# 372 +struct numeric_limits< const volatile _Tp> : public std::numeric_limits< _Tp> { +# 373 +}; +# 384 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< bool> { +# 386 +static constexpr inline bool is_specialized = true; +# 389 +static constexpr bool min() noexcept { return false; } +# 392 +static constexpr bool max() noexcept { return true; } +# 396 +static constexpr bool lowest() noexcept { return min(); } +# 398 +static constexpr inline int digits = 1; +# 399 +static constexpr inline int digits10 = 0; +# 401 +static constexpr inline int max_digits10 = 0; +# 403 +static constexpr inline bool is_signed = false; +# 404 +static constexpr inline bool is_integer = true; +# 405 +static constexpr inline bool is_exact = true; +# 406 +static constexpr inline int radix = 2; +# 409 +static constexpr bool epsilon() noexcept { return false; } +# 412 +static constexpr bool round_error() noexcept { return false; } +# 414 +static constexpr inline int min_exponent = 0; +# 415 +static constexpr inline int min_exponent10 = 0; +# 416 +static constexpr inline int max_exponent = 0; +# 417 +static constexpr inline int max_exponent10 = 0; +# 419 +static constexpr inline bool has_infinity = false; +# 420 +static constexpr inline bool has_quiet_NaN = false; +# 421 +static constexpr inline bool has_signaling_NaN = false; +# 422 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 424 +static constexpr inline bool has_denorm_loss = false; +# 427 +static constexpr bool infinity() noexcept { return false; } +# 430 +static constexpr bool quiet_NaN() noexcept { return false; } +# 433 +static constexpr bool signaling_NaN() noexcept { return false; } +# 436 +static constexpr bool denorm_min() noexcept { return false; } +# 438 +static constexpr inline bool is_iec559 = false; +# 439 +static constexpr inline bool is_bounded = true; +# 440 +static constexpr inline bool is_modulo = false; +# 445 +static constexpr inline bool traps = true; +# 446 +static constexpr inline bool tinyness_before = false; +# 447 +static constexpr inline float_round_style round_style = round_toward_zero; +# 449 +}; +# 453 +template<> struct numeric_limits< char> { +# 455 +static constexpr inline bool is_specialized = true; +# 458 +static constexpr char min() noexcept { return ((((char)(-1)) < 0) ? (-((((char)(-1)) < 0) ? (((((char)1) << (((sizeof(char) * (8)) - (((char)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((char)0)))) - 1 : ((char)0)); } +# 461 +static constexpr char max() noexcept { return ((((char)(-1)) < 0) ? (((((char)1) << (((sizeof(char) * (8)) - (((char)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((char)0))); } +# 465 +static constexpr char lowest() noexcept { return min(); } +# 468 +static constexpr inline int digits = ((sizeof(char) * (8)) - (((char)(-1)) < 0)); +# 469 +static constexpr inline int digits10 = ((((sizeof(char) * (8)) - (((char)(-1)) < 0)) * (643L)) / (2136)); +# 471 +static constexpr inline int max_digits10 = 0; +# 473 +static constexpr inline bool is_signed = (((char)(-1)) < 0); +# 474 +static constexpr inline bool is_integer = true; +# 475 +static constexpr inline bool is_exact = true; +# 476 +static constexpr inline int radix = 2; +# 479 +static constexpr char epsilon() noexcept { return 0; } +# 482 +static constexpr char round_error() noexcept { return 0; } +# 484 +static constexpr inline int min_exponent = 0; +# 485 +static constexpr inline int min_exponent10 = 0; +# 486 +static constexpr inline int max_exponent = 0; +# 487 +static constexpr inline int max_exponent10 = 0; +# 489 +static constexpr inline bool has_infinity = false; +# 490 +static constexpr inline bool has_quiet_NaN = false; +# 491 +static constexpr inline bool has_signaling_NaN = false; +# 492 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 494 +static constexpr inline bool has_denorm_loss = false; +# 497 +static constexpr char infinity() noexcept { return ((char)0); } +# 500 +static constexpr char quiet_NaN() noexcept { return ((char)0); } +# 503 +static constexpr char signaling_NaN() noexcept { return ((char)0); } +# 506 +static constexpr char denorm_min() noexcept { return static_cast< char>(0); } +# 508 +static constexpr inline bool is_iec559 = false; +# 509 +static constexpr inline bool is_bounded = true; +# 510 +static constexpr inline bool is_modulo = (!is_signed); +# 512 +static constexpr inline bool traps = true; +# 513 +static constexpr inline bool tinyness_before = false; +# 514 +static constexpr inline float_round_style round_style = round_toward_zero; +# 516 +}; +# 520 +template<> struct numeric_limits< signed char> { +# 522 +static constexpr inline bool is_specialized = true; +# 525 +static constexpr signed char min() noexcept { return (-127) - 1; } +# 528 +static constexpr signed char max() noexcept { return 127; } +# 532 +static constexpr signed char lowest() noexcept { return min(); } +# 535 +static constexpr inline int digits = ((sizeof(signed char) * (8)) - (((signed char)(-1)) < 0)); +# 536 +static constexpr inline int digits10 = ((((sizeof(signed char) * (8)) - (((signed char)(-1)) < 0)) * (643L)) / (2136)); +# 539 +static constexpr inline int max_digits10 = 0; +# 541 +static constexpr inline bool is_signed = true; +# 542 +static constexpr inline bool is_integer = true; +# 543 +static constexpr inline bool is_exact = true; +# 544 +static constexpr inline int radix = 2; +# 547 +static constexpr signed char epsilon() noexcept { return 0; } +# 550 +static constexpr signed char round_error() noexcept { return 0; } +# 552 +static constexpr inline int min_exponent = 0; +# 553 +static constexpr inline int min_exponent10 = 0; +# 554 +static constexpr inline int max_exponent = 0; +# 555 +static constexpr inline int max_exponent10 = 0; +# 557 +static constexpr inline bool has_infinity = false; +# 558 +static constexpr inline bool has_quiet_NaN = false; +# 559 +static constexpr inline bool has_signaling_NaN = false; +# 560 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 562 +static constexpr inline bool has_denorm_loss = false; +# 565 +static constexpr signed char infinity() noexcept { return static_cast< signed char>(0); } +# 568 +static constexpr signed char quiet_NaN() noexcept { return static_cast< signed char>(0); } +# 571 +static constexpr signed char signaling_NaN() noexcept +# 572 +{ return static_cast< signed char>(0); } +# 575 +static constexpr signed char denorm_min() noexcept +# 576 +{ return static_cast< signed char>(0); } +# 578 +static constexpr inline bool is_iec559 = false; +# 579 +static constexpr inline bool is_bounded = true; +# 580 +static constexpr inline bool is_modulo = false; +# 582 +static constexpr inline bool traps = true; +# 583 +static constexpr inline bool tinyness_before = false; +# 584 +static constexpr inline float_round_style round_style = round_toward_zero; +# 586 +}; +# 590 +template<> struct numeric_limits< unsigned char> { +# 592 +static constexpr inline bool is_specialized = true; +# 595 +static constexpr unsigned char min() noexcept { return 0; } +# 598 +static constexpr unsigned char max() noexcept { return ((127) * 2U) + (1); } +# 602 +static constexpr unsigned char lowest() noexcept { return min(); } +# 605 +static constexpr inline int digits = ((sizeof(unsigned char) * (8)) - (((unsigned char)(-1)) < 0)); +# 607 +static constexpr inline int digits10 = ((((sizeof(unsigned char) * (8)) - (((unsigned char)(-1)) < 0)) * (643L)) / (2136)); +# 610 +static constexpr inline int max_digits10 = 0; +# 612 +static constexpr inline bool is_signed = false; +# 613 +static constexpr inline bool is_integer = true; +# 614 +static constexpr inline bool is_exact = true; +# 615 +static constexpr inline int radix = 2; +# 618 +static constexpr unsigned char epsilon() noexcept { return 0; } +# 621 +static constexpr unsigned char round_error() noexcept { return 0; } +# 623 +static constexpr inline int min_exponent = 0; +# 624 +static constexpr inline int min_exponent10 = 0; +# 625 +static constexpr inline int max_exponent = 0; +# 626 +static constexpr inline int max_exponent10 = 0; +# 628 +static constexpr inline bool has_infinity = false; +# 629 +static constexpr inline bool has_quiet_NaN = false; +# 630 +static constexpr inline bool has_signaling_NaN = false; +# 631 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 633 +static constexpr inline bool has_denorm_loss = false; +# 636 +static constexpr unsigned char infinity() noexcept +# 637 +{ return static_cast< unsigned char>(0); } +# 640 +static constexpr unsigned char quiet_NaN() noexcept +# 641 +{ return static_cast< unsigned char>(0); } +# 644 +static constexpr unsigned char signaling_NaN() noexcept +# 645 +{ return static_cast< unsigned char>(0); } +# 648 +static constexpr unsigned char denorm_min() noexcept +# 649 +{ return static_cast< unsigned char>(0); } +# 651 +static constexpr inline bool is_iec559 = false; +# 652 +static constexpr inline bool is_bounded = true; +# 653 +static constexpr inline bool is_modulo = true; +# 655 +static constexpr inline bool traps = true; +# 656 +static constexpr inline bool tinyness_before = false; +# 657 +static constexpr inline float_round_style round_style = round_toward_zero; +# 659 +}; +# 663 +template<> struct numeric_limits< wchar_t> { +# 665 +static constexpr inline bool is_specialized = true; +# 668 +static constexpr wchar_t min() noexcept { return ((((wchar_t)(-1)) < 0) ? (-((((wchar_t)(-1)) < 0) ? (((((wchar_t)1) << (((sizeof(wchar_t) * (8)) - (((wchar_t)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((wchar_t)0)))) - 1 : ((wchar_t)0)); } +# 671 +static constexpr wchar_t max() noexcept { return ((((wchar_t)(-1)) < 0) ? (((((wchar_t)1) << (((sizeof(wchar_t) * (8)) - (((wchar_t)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((wchar_t)0))); } +# 675 +static constexpr wchar_t lowest() noexcept { return min(); } +# 678 +static constexpr inline int digits = ((sizeof(wchar_t) * (8)) - (((wchar_t)(-1)) < 0)); +# 679 +static constexpr inline int digits10 = ((((sizeof(wchar_t) * (8)) - (((wchar_t)(-1)) < 0)) * (643L)) / (2136)); +# 682 +static constexpr inline int max_digits10 = 0; +# 684 +static constexpr inline bool is_signed = (((wchar_t)(-1)) < 0); +# 685 +static constexpr inline bool is_integer = true; +# 686 +static constexpr inline bool is_exact = true; +# 687 +static constexpr inline int radix = 2; +# 690 +static constexpr wchar_t epsilon() noexcept { return 0; } +# 693 +static constexpr wchar_t round_error() noexcept { return 0; } +# 695 +static constexpr inline int min_exponent = 0; +# 696 +static constexpr inline int min_exponent10 = 0; +# 697 +static constexpr inline int max_exponent = 0; +# 698 +static constexpr inline int max_exponent10 = 0; +# 700 +static constexpr inline bool has_infinity = false; +# 701 +static constexpr inline bool has_quiet_NaN = false; +# 702 +static constexpr inline bool has_signaling_NaN = false; +# 703 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 705 +static constexpr inline bool has_denorm_loss = false; +# 708 +static constexpr wchar_t infinity() noexcept { return ((wchar_t)0); } +# 711 +static constexpr wchar_t quiet_NaN() noexcept { return ((wchar_t)0); } +# 714 +static constexpr wchar_t signaling_NaN() noexcept { return ((wchar_t)0); } +# 717 +static constexpr wchar_t denorm_min() noexcept { return ((wchar_t)0); } +# 719 +static constexpr inline bool is_iec559 = false; +# 720 +static constexpr inline bool is_bounded = true; +# 721 +static constexpr inline bool is_modulo = (!is_signed); +# 723 +static constexpr inline bool traps = true; +# 724 +static constexpr inline bool tinyness_before = false; +# 725 +static constexpr inline float_round_style round_style = round_toward_zero; +# 727 +}; +# 797 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< char16_t> { +# 799 +static constexpr inline bool is_specialized = true; +# 802 +static constexpr char16_t min() noexcept { return ((((char16_t)(-1)) < 0) ? (-((((char16_t)(-1)) < 0) ? (((((char16_t)1) << (((sizeof(char16_t) * (8)) - (((char16_t)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((char16_t)0)))) - 1 : ((char16_t)0)); } +# 805 +static constexpr char16_t max() noexcept { return ((((char16_t)(-1)) < 0) ? (((((char16_t)1) << (((sizeof(char16_t) * (8)) - (((char16_t)(-1)) < 0)) - (1))) - 1) << 1) + 1 : (~((char16_t)0))); } +# 808 +static constexpr char16_t lowest() noexcept { return min(); } +# 810 +static constexpr inline int digits = ((sizeof(char16_t) * (8)) - (((char16_t)(-1)) < 0)); +# 811 +static constexpr inline int digits10 = ((((sizeof(char16_t) * (8)) - (((char16_t)(-1)) < 0)) * (643L)) / (2136)); +# 812 +static constexpr inline int max_digits10 = 0; +# 813 +static constexpr inline bool is_signed = (((char16_t)(-1)) < 0); +# 814 +static constexpr inline bool is_integer = true; +# 815 +static constexpr inline bool is_exact = true; +# 816 +static constexpr inline int radix = 2; +# 819 +static constexpr char16_t epsilon() noexcept { return 0; } +# 822 +static constexpr char16_t round_error() noexcept { return 0; } +# 824 +static constexpr inline int min_exponent = 0; +# 825 +static constexpr inline int min_exponent10 = 0; +# 826 +static constexpr inline int max_exponent = 0; +# 827 +static constexpr inline int max_exponent10 = 0; +# 829 +static constexpr inline bool has_infinity = false; +# 830 +static constexpr inline bool has_quiet_NaN = false; +# 831 +static constexpr inline bool has_signaling_NaN = false; +# 832 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 833 +static constexpr inline bool has_denorm_loss = false; +# 836 +static constexpr char16_t infinity() noexcept { return ((char16_t)0); } +# 839 +static constexpr char16_t quiet_NaN() noexcept { return ((char16_t)0); } +# 842 +static constexpr char16_t signaling_NaN() noexcept { return ((char16_t)0); } +# 845 +static constexpr char16_t denorm_min() noexcept { return ((char16_t)0); } +# 847 +static constexpr inline bool is_iec559 = false; +# 848 +static constexpr inline bool is_bounded = true; +# 849 +static constexpr inline bool is_modulo = (!is_signed); +# 851 +static constexpr inline bool traps = true; +# 852 +static constexpr inline bool tinyness_before = false; +# 853 +static constexpr inline float_round_style round_style = round_toward_zero; +# 854 +}; +# 858 +template<> struct numeric_limits< char32_t> { +# 860 +static constexpr inline bool is_specialized = true; +# 863 +static constexpr char32_t min() noexcept { return ((((char32_t)(-1)) < (0)) ? (-((((char32_t)(-1)) < (0)) ? (((((char32_t)1) << (((sizeof(char32_t) * (8)) - (((char32_t)(-1)) < (0))) - (1))) - (1)) << 1) + (1) : (~((char32_t)0)))) - (1) : ((char32_t)0)); } +# 866 +static constexpr char32_t max() noexcept { return ((((char32_t)(-1)) < (0)) ? (((((char32_t)1) << (((sizeof(char32_t) * (8)) - (((char32_t)(-1)) < (0))) - (1))) - (1)) << 1) + (1) : (~((char32_t)0))); } +# 869 +static constexpr char32_t lowest() noexcept { return min(); } +# 871 +static constexpr inline int digits = ((sizeof(char32_t) * (8)) - (((char32_t)(-1)) < (0))); +# 872 +static constexpr inline int digits10 = ((((sizeof(char32_t) * (8)) - (((char32_t)(-1)) < (0))) * (643L)) / (2136)); +# 873 +static constexpr inline int max_digits10 = 0; +# 874 +static constexpr inline bool is_signed = (((char32_t)(-1)) < (0)); +# 875 +static constexpr inline bool is_integer = true; +# 876 +static constexpr inline bool is_exact = true; +# 877 +static constexpr inline int radix = 2; +# 880 +static constexpr char32_t epsilon() noexcept { return 0; } +# 883 +static constexpr char32_t round_error() noexcept { return 0; } +# 885 +static constexpr inline int min_exponent = 0; +# 886 +static constexpr inline int min_exponent10 = 0; +# 887 +static constexpr inline int max_exponent = 0; +# 888 +static constexpr inline int max_exponent10 = 0; +# 890 +static constexpr inline bool has_infinity = false; +# 891 +static constexpr inline bool has_quiet_NaN = false; +# 892 +static constexpr inline bool has_signaling_NaN = false; +# 893 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 894 +static constexpr inline bool has_denorm_loss = false; +# 897 +static constexpr char32_t infinity() noexcept { return ((char32_t)0); } +# 900 +static constexpr char32_t quiet_NaN() noexcept { return ((char32_t)0); } +# 903 +static constexpr char32_t signaling_NaN() noexcept { return ((char32_t)0); } +# 906 +static constexpr char32_t denorm_min() noexcept { return ((char32_t)0); } +# 908 +static constexpr inline bool is_iec559 = false; +# 909 +static constexpr inline bool is_bounded = true; +# 910 +static constexpr inline bool is_modulo = (!is_signed); +# 912 +static constexpr inline bool traps = true; +# 913 +static constexpr inline bool tinyness_before = false; +# 914 +static constexpr inline float_round_style round_style = round_toward_zero; +# 915 +}; +# 920 +template<> struct numeric_limits< short> { +# 922 +static constexpr inline bool is_specialized = true; +# 925 +static constexpr short min() noexcept { return (-32767) - 1; } +# 928 +static constexpr short max() noexcept { return 32767; } +# 932 +static constexpr short lowest() noexcept { return min(); } +# 935 +static constexpr inline int digits = ((sizeof(short) * (8)) - (((short)(-1)) < 0)); +# 936 +static constexpr inline int digits10 = ((((sizeof(short) * (8)) - (((short)(-1)) < 0)) * (643L)) / (2136)); +# 938 +static constexpr inline int max_digits10 = 0; +# 940 +static constexpr inline bool is_signed = true; +# 941 +static constexpr inline bool is_integer = true; +# 942 +static constexpr inline bool is_exact = true; +# 943 +static constexpr inline int radix = 2; +# 946 +static constexpr short epsilon() noexcept { return 0; } +# 949 +static constexpr short round_error() noexcept { return 0; } +# 951 +static constexpr inline int min_exponent = 0; +# 952 +static constexpr inline int min_exponent10 = 0; +# 953 +static constexpr inline int max_exponent = 0; +# 954 +static constexpr inline int max_exponent10 = 0; +# 956 +static constexpr inline bool has_infinity = false; +# 957 +static constexpr inline bool has_quiet_NaN = false; +# 958 +static constexpr inline bool has_signaling_NaN = false; +# 959 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 961 +static constexpr inline bool has_denorm_loss = false; +# 964 +static constexpr short infinity() noexcept { return ((short)0); } +# 967 +static constexpr short quiet_NaN() noexcept { return ((short)0); } +# 970 +static constexpr short signaling_NaN() noexcept { return ((short)0); } +# 973 +static constexpr short denorm_min() noexcept { return ((short)0); } +# 975 +static constexpr inline bool is_iec559 = false; +# 976 +static constexpr inline bool is_bounded = true; +# 977 +static constexpr inline bool is_modulo = false; +# 979 +static constexpr inline bool traps = true; +# 980 +static constexpr inline bool tinyness_before = false; +# 981 +static constexpr inline float_round_style round_style = round_toward_zero; +# 983 +}; +# 987 +template<> struct numeric_limits< unsigned short> { +# 989 +static constexpr inline bool is_specialized = true; +# 992 +static constexpr unsigned short min() noexcept { return 0; } +# 995 +static constexpr unsigned short max() noexcept { return ((32767) * 2U) + (1); } +# 999 +static constexpr unsigned short lowest() noexcept { return min(); } +# 1002 +static constexpr inline int digits = ((sizeof(unsigned short) * (8)) - (((unsigned short)(-1)) < 0)); +# 1004 +static constexpr inline int digits10 = ((((sizeof(unsigned short) * (8)) - (((unsigned short)(-1)) < 0)) * (643L)) / (2136)); +# 1007 +static constexpr inline int max_digits10 = 0; +# 1009 +static constexpr inline bool is_signed = false; +# 1010 +static constexpr inline bool is_integer = true; +# 1011 +static constexpr inline bool is_exact = true; +# 1012 +static constexpr inline int radix = 2; +# 1015 +static constexpr unsigned short epsilon() noexcept { return 0; } +# 1018 +static constexpr unsigned short round_error() noexcept { return 0; } +# 1020 +static constexpr inline int min_exponent = 0; +# 1021 +static constexpr inline int min_exponent10 = 0; +# 1022 +static constexpr inline int max_exponent = 0; +# 1023 +static constexpr inline int max_exponent10 = 0; +# 1025 +static constexpr inline bool has_infinity = false; +# 1026 +static constexpr inline bool has_quiet_NaN = false; +# 1027 +static constexpr inline bool has_signaling_NaN = false; +# 1028 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1030 +static constexpr inline bool has_denorm_loss = false; +# 1033 +static constexpr unsigned short infinity() noexcept +# 1034 +{ return static_cast< unsigned short>(0); } +# 1037 +static constexpr unsigned short quiet_NaN() noexcept +# 1038 +{ return static_cast< unsigned short>(0); } +# 1041 +static constexpr unsigned short signaling_NaN() noexcept +# 1042 +{ return static_cast< unsigned short>(0); } +# 1045 +static constexpr unsigned short denorm_min() noexcept +# 1046 +{ return static_cast< unsigned short>(0); } +# 1048 +static constexpr inline bool is_iec559 = false; +# 1049 +static constexpr inline bool is_bounded = true; +# 1050 +static constexpr inline bool is_modulo = true; +# 1052 +static constexpr inline bool traps = true; +# 1053 +static constexpr inline bool tinyness_before = false; +# 1054 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1056 +}; +# 1060 +template<> struct numeric_limits< int> { +# 1062 +static constexpr inline bool is_specialized = true; +# 1065 +static constexpr int min() noexcept { return (-2147483647) - 1; } +# 1068 +static constexpr int max() noexcept { return 2147483647; } +# 1072 +static constexpr int lowest() noexcept { return min(); } +# 1075 +static constexpr inline int digits = ((sizeof(int) * (8)) - (((int)(-1)) < 0)); +# 1076 +static constexpr inline int digits10 = ((((sizeof(int) * (8)) - (((int)(-1)) < 0)) * (643L)) / (2136)); +# 1078 +static constexpr inline int max_digits10 = 0; +# 1080 +static constexpr inline bool is_signed = true; +# 1081 +static constexpr inline bool is_integer = true; +# 1082 +static constexpr inline bool is_exact = true; +# 1083 +static constexpr inline int radix = 2; +# 1086 +static constexpr int epsilon() noexcept { return 0; } +# 1089 +static constexpr int round_error() noexcept { return 0; } +# 1091 +static constexpr inline int min_exponent = 0; +# 1092 +static constexpr inline int min_exponent10 = 0; +# 1093 +static constexpr inline int max_exponent = 0; +# 1094 +static constexpr inline int max_exponent10 = 0; +# 1096 +static constexpr inline bool has_infinity = false; +# 1097 +static constexpr inline bool has_quiet_NaN = false; +# 1098 +static constexpr inline bool has_signaling_NaN = false; +# 1099 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1101 +static constexpr inline bool has_denorm_loss = false; +# 1104 +static constexpr int infinity() noexcept { return static_cast< int>(0); } +# 1107 +static constexpr int quiet_NaN() noexcept { return static_cast< int>(0); } +# 1110 +static constexpr int signaling_NaN() noexcept { return static_cast< int>(0); } +# 1113 +static constexpr int denorm_min() noexcept { return static_cast< int>(0); } +# 1115 +static constexpr inline bool is_iec559 = false; +# 1116 +static constexpr inline bool is_bounded = true; +# 1117 +static constexpr inline bool is_modulo = false; +# 1119 +static constexpr inline bool traps = true; +# 1120 +static constexpr inline bool tinyness_before = false; +# 1121 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1123 +}; +# 1127 +template<> struct numeric_limits< unsigned> { +# 1129 +static constexpr inline bool is_specialized = true; +# 1132 +static constexpr unsigned min() noexcept { return 0; } +# 1135 +static constexpr unsigned max() noexcept { return ((2147483647) * 2U) + (1); } +# 1139 +static constexpr unsigned lowest() noexcept { return min(); } +# 1142 +static constexpr inline int digits = ((sizeof(unsigned) * (8)) - (((unsigned)(-1)) < (0))); +# 1144 +static constexpr inline int digits10 = ((((sizeof(unsigned) * (8)) - (((unsigned)(-1)) < (0))) * (643L)) / (2136)); +# 1147 +static constexpr inline int max_digits10 = 0; +# 1149 +static constexpr inline bool is_signed = false; +# 1150 +static constexpr inline bool is_integer = true; +# 1151 +static constexpr inline bool is_exact = true; +# 1152 +static constexpr inline int radix = 2; +# 1155 +static constexpr unsigned epsilon() noexcept { return 0; } +# 1158 +static constexpr unsigned round_error() noexcept { return 0; } +# 1160 +static constexpr inline int min_exponent = 0; +# 1161 +static constexpr inline int min_exponent10 = 0; +# 1162 +static constexpr inline int max_exponent = 0; +# 1163 +static constexpr inline int max_exponent10 = 0; +# 1165 +static constexpr inline bool has_infinity = false; +# 1166 +static constexpr inline bool has_quiet_NaN = false; +# 1167 +static constexpr inline bool has_signaling_NaN = false; +# 1168 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1170 +static constexpr inline bool has_denorm_loss = false; +# 1173 +static constexpr unsigned infinity() noexcept { return static_cast< unsigned>(0); } +# 1176 +static constexpr unsigned quiet_NaN() noexcept +# 1177 +{ return static_cast< unsigned>(0); } +# 1180 +static constexpr unsigned signaling_NaN() noexcept +# 1181 +{ return static_cast< unsigned>(0); } +# 1184 +static constexpr unsigned denorm_min() noexcept +# 1185 +{ return static_cast< unsigned>(0); } +# 1187 +static constexpr inline bool is_iec559 = false; +# 1188 +static constexpr inline bool is_bounded = true; +# 1189 +static constexpr inline bool is_modulo = true; +# 1191 +static constexpr inline bool traps = true; +# 1192 +static constexpr inline bool tinyness_before = false; +# 1193 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1195 +}; +# 1199 +template<> struct numeric_limits< long> { +# 1201 +static constexpr inline bool is_specialized = true; +# 1204 +static constexpr long min() noexcept { return (-9223372036854775807L) - (1); } +# 1207 +static constexpr long max() noexcept { return 9223372036854775807L; } +# 1211 +static constexpr long lowest() noexcept { return min(); } +# 1214 +static constexpr inline int digits = ((sizeof(long) * (8)) - (((long)(-1)) < (0))); +# 1215 +static constexpr inline int digits10 = ((((sizeof(long) * (8)) - (((long)(-1)) < (0))) * (643L)) / (2136)); +# 1217 +static constexpr inline int max_digits10 = 0; +# 1219 +static constexpr inline bool is_signed = true; +# 1220 +static constexpr inline bool is_integer = true; +# 1221 +static constexpr inline bool is_exact = true; +# 1222 +static constexpr inline int radix = 2; +# 1225 +static constexpr long epsilon() noexcept { return 0; } +# 1228 +static constexpr long round_error() noexcept { return 0; } +# 1230 +static constexpr inline int min_exponent = 0; +# 1231 +static constexpr inline int min_exponent10 = 0; +# 1232 +static constexpr inline int max_exponent = 0; +# 1233 +static constexpr inline int max_exponent10 = 0; +# 1235 +static constexpr inline bool has_infinity = false; +# 1236 +static constexpr inline bool has_quiet_NaN = false; +# 1237 +static constexpr inline bool has_signaling_NaN = false; +# 1238 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1240 +static constexpr inline bool has_denorm_loss = false; +# 1243 +static constexpr long infinity() noexcept { return static_cast< long>(0); } +# 1246 +static constexpr long quiet_NaN() noexcept { return static_cast< long>(0); } +# 1249 +static constexpr long signaling_NaN() noexcept { return static_cast< long>(0); } +# 1252 +static constexpr long denorm_min() noexcept { return static_cast< long>(0); } +# 1254 +static constexpr inline bool is_iec559 = false; +# 1255 +static constexpr inline bool is_bounded = true; +# 1256 +static constexpr inline bool is_modulo = false; +# 1258 +static constexpr inline bool traps = true; +# 1259 +static constexpr inline bool tinyness_before = false; +# 1260 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1262 +}; +# 1266 +template<> struct numeric_limits< unsigned long> { +# 1268 +static constexpr inline bool is_specialized = true; +# 1271 +static constexpr unsigned long min() noexcept { return 0; } +# 1274 +static constexpr unsigned long max() noexcept { return ((9223372036854775807L) * 2UL) + (1); } +# 1278 +static constexpr unsigned long lowest() noexcept { return min(); } +# 1281 +static constexpr inline int digits = ((sizeof(unsigned long) * (8)) - (((unsigned long)(-1)) < (0))); +# 1283 +static constexpr inline int digits10 = ((((sizeof(unsigned long) * (8)) - (((unsigned long)(-1)) < (0))) * (643L)) / (2136)); +# 1286 +static constexpr inline int max_digits10 = 0; +# 1288 +static constexpr inline bool is_signed = false; +# 1289 +static constexpr inline bool is_integer = true; +# 1290 +static constexpr inline bool is_exact = true; +# 1291 +static constexpr inline int radix = 2; +# 1294 +static constexpr unsigned long epsilon() noexcept { return 0; } +# 1297 +static constexpr unsigned long round_error() noexcept { return 0; } +# 1299 +static constexpr inline int min_exponent = 0; +# 1300 +static constexpr inline int min_exponent10 = 0; +# 1301 +static constexpr inline int max_exponent = 0; +# 1302 +static constexpr inline int max_exponent10 = 0; +# 1304 +static constexpr inline bool has_infinity = false; +# 1305 +static constexpr inline bool has_quiet_NaN = false; +# 1306 +static constexpr inline bool has_signaling_NaN = false; +# 1307 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1309 +static constexpr inline bool has_denorm_loss = false; +# 1312 +static constexpr unsigned long infinity() noexcept +# 1313 +{ return static_cast< unsigned long>(0); } +# 1316 +static constexpr unsigned long quiet_NaN() noexcept +# 1317 +{ return static_cast< unsigned long>(0); } +# 1320 +static constexpr unsigned long signaling_NaN() noexcept +# 1321 +{ return static_cast< unsigned long>(0); } +# 1324 +static constexpr unsigned long denorm_min() noexcept +# 1325 +{ return static_cast< unsigned long>(0); } +# 1327 +static constexpr inline bool is_iec559 = false; +# 1328 +static constexpr inline bool is_bounded = true; +# 1329 +static constexpr inline bool is_modulo = true; +# 1331 +static constexpr inline bool traps = true; +# 1332 +static constexpr inline bool tinyness_before = false; +# 1333 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1335 +}; +# 1339 +template<> struct numeric_limits< long long> { +# 1341 +static constexpr inline bool is_specialized = true; +# 1344 +static constexpr long long min() noexcept { return (-9223372036854775807LL) - (1); } +# 1347 +static constexpr long long max() noexcept { return 9223372036854775807LL; } +# 1351 +static constexpr long long lowest() noexcept { return min(); } +# 1354 +static constexpr inline int digits = ((sizeof(long long) * (8)) - (((long long)(-1)) < (0))); +# 1356 +static constexpr inline int digits10 = ((((sizeof(long long) * (8)) - (((long long)(-1)) < (0))) * (643L)) / (2136)); +# 1359 +static constexpr inline int max_digits10 = 0; +# 1361 +static constexpr inline bool is_signed = true; +# 1362 +static constexpr inline bool is_integer = true; +# 1363 +static constexpr inline bool is_exact = true; +# 1364 +static constexpr inline int radix = 2; +# 1367 +static constexpr long long epsilon() noexcept { return 0; } +# 1370 +static constexpr long long round_error() noexcept { return 0; } +# 1372 +static constexpr inline int min_exponent = 0; +# 1373 +static constexpr inline int min_exponent10 = 0; +# 1374 +static constexpr inline int max_exponent = 0; +# 1375 +static constexpr inline int max_exponent10 = 0; +# 1377 +static constexpr inline bool has_infinity = false; +# 1378 +static constexpr inline bool has_quiet_NaN = false; +# 1379 +static constexpr inline bool has_signaling_NaN = false; +# 1380 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1382 +static constexpr inline bool has_denorm_loss = false; +# 1385 +static constexpr long long infinity() noexcept { return static_cast< long long>(0); } +# 1388 +static constexpr long long quiet_NaN() noexcept { return static_cast< long long>(0); } +# 1391 +static constexpr long long signaling_NaN() noexcept +# 1392 +{ return static_cast< long long>(0); } +# 1395 +static constexpr long long denorm_min() noexcept { return static_cast< long long>(0); } +# 1397 +static constexpr inline bool is_iec559 = false; +# 1398 +static constexpr inline bool is_bounded = true; +# 1399 +static constexpr inline bool is_modulo = false; +# 1401 +static constexpr inline bool traps = true; +# 1402 +static constexpr inline bool tinyness_before = false; +# 1403 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1405 +}; +# 1409 +template<> struct numeric_limits< unsigned long long> { +# 1411 +static constexpr inline bool is_specialized = true; +# 1414 +static constexpr unsigned long long min() noexcept { return 0; } +# 1417 +static constexpr unsigned long long max() noexcept { return ((9223372036854775807LL) * 2ULL) + (1); } +# 1421 +static constexpr unsigned long long lowest() noexcept { return min(); } +# 1424 +static constexpr inline int digits = ((sizeof(unsigned long long) * (8)) - (((unsigned long long)(-1)) < (0))); +# 1426 +static constexpr inline int digits10 = ((((sizeof(unsigned long long) * (8)) - (((unsigned long long)(-1)) < (0))) * (643L)) / (2136)); +# 1429 +static constexpr inline int max_digits10 = 0; +# 1431 +static constexpr inline bool is_signed = false; +# 1432 +static constexpr inline bool is_integer = true; +# 1433 +static constexpr inline bool is_exact = true; +# 1434 +static constexpr inline int radix = 2; +# 1437 +static constexpr unsigned long long epsilon() noexcept { return 0; } +# 1440 +static constexpr unsigned long long round_error() noexcept { return 0; } +# 1442 +static constexpr inline int min_exponent = 0; +# 1443 +static constexpr inline int min_exponent10 = 0; +# 1444 +static constexpr inline int max_exponent = 0; +# 1445 +static constexpr inline int max_exponent10 = 0; +# 1447 +static constexpr inline bool has_infinity = false; +# 1448 +static constexpr inline bool has_quiet_NaN = false; +# 1449 +static constexpr inline bool has_signaling_NaN = false; +# 1450 +static constexpr inline float_denorm_style has_denorm = denorm_absent; +# 1452 +static constexpr inline bool has_denorm_loss = false; +# 1455 +static constexpr unsigned long long infinity() noexcept +# 1456 +{ return static_cast< unsigned long long>(0); } +# 1459 +static constexpr unsigned long long quiet_NaN() noexcept +# 1460 +{ return static_cast< unsigned long long>(0); } +# 1463 +static constexpr unsigned long long signaling_NaN() noexcept +# 1464 +{ return static_cast< unsigned long long>(0); } +# 1467 +static constexpr unsigned long long denorm_min() noexcept +# 1468 +{ return static_cast< unsigned long long>(0); } +# 1470 +static constexpr inline bool is_iec559 = false; +# 1471 +static constexpr inline bool is_bounded = true; +# 1472 +static constexpr inline bool is_modulo = true; +# 1474 +static constexpr inline bool traps = true; +# 1475 +static constexpr inline bool tinyness_before = false; +# 1476 +static constexpr inline float_round_style round_style = round_toward_zero; +# 1478 +}; +# 1637 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< __int128> { static constexpr inline bool is_specialized = true; static constexpr __int128 min() noexcept { return ((((__int128)(-1)) < (0)) ? (-((((__int128)(-1)) < (0)) ? (((((__int128)1) << ((128 - (((__int128)(-1)) < (0))) - 1)) - (1)) << 1) + (1) : (~((__int128)0)))) - (1) : ((__int128)0)); } static constexpr __int128 max() noexcept { return ((((__int128)(-1)) < (0)) ? (((((__int128)1) << ((128 - (((__int128)(-1)) < (0))) - 1)) - (1)) << 1) + (1) : (~((__int128)0))); } static constexpr inline int digits = (128 - 1); static constexpr inline int digits10 = (((128 - 1) * 643L) / (2136)); static constexpr inline bool is_signed = true; static constexpr inline bool is_integer = true; static constexpr inline bool is_exact = true; static constexpr inline int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr inline int max_digits10 = 0; static constexpr inline int min_exponent = 0; static constexpr inline int min_exponent10 = 0; static constexpr inline int max_exponent = 0; static constexpr inline int max_exponent10 = 0; static constexpr inline bool has_infinity = false; static constexpr inline bool has_quiet_NaN = false; static constexpr inline bool has_signaling_NaN = false; static constexpr inline float_denorm_style has_denorm = denorm_absent; static constexpr inline bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast< __int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast< __int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast< __int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast< __int128>(0); } static constexpr inline bool is_iec559 = false; static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = false; static constexpr inline bool traps = true; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits< unsigned __int128> { static constexpr inline bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return ((((unsigned __int128)(-1)) < (0)) ? (((((unsigned __int128)1) << ((128 - (((unsigned __int128)(-1)) < (0))) - 1)) - (1)) << 1) + (1) : (~((unsigned __int128)0))); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr inline int max_digits10 = 0; static constexpr inline int digits = 128; static constexpr inline int digits10 = (((128) * 643L) / (2136)); static constexpr inline bool is_signed = false; static constexpr inline bool is_integer = true; static constexpr inline bool is_exact = true; static constexpr inline int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr inline int min_exponent = 0; static constexpr inline int min_exponent10 = 0; static constexpr inline int max_exponent = 0; static constexpr inline int max_exponent10 = 0; static constexpr inline bool has_infinity = false; static constexpr inline bool has_quiet_NaN = false; static constexpr inline bool has_signaling_NaN = false; static constexpr inline float_denorm_style has_denorm = denorm_absent; static constexpr inline bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast< unsigned __int128>(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast< unsigned __int128>(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast< unsigned __int128>(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast< unsigned __int128>(0); } static constexpr inline bool is_iec559 = false; static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = true; static constexpr inline bool traps = true; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_toward_zero; }; +# 1670 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< float> { +# 1672 +static constexpr inline bool is_specialized = true; +# 1675 +static constexpr float min() noexcept { return (1.1754944E-38F); } +# 1678 +static constexpr float max() noexcept { return (3.4028235E38F); } +# 1682 +static constexpr float lowest() noexcept { return -(3.4028235E38F); } +# 1685 +static constexpr inline int digits = 24; +# 1686 +static constexpr inline int digits10 = 6; +# 1688 +static constexpr inline int max_digits10 = ((2) + (((24) * 643L) / (2136))); +# 1691 +static constexpr inline bool is_signed = true; +# 1692 +static constexpr inline bool is_integer = false; +# 1693 +static constexpr inline bool is_exact = false; +# 1694 +static constexpr inline int radix = 2; +# 1697 +static constexpr float epsilon() noexcept { return (1.1920929E-7F); } +# 1700 +static constexpr float round_error() noexcept { return (0.5F); } +# 1702 +static constexpr inline int min_exponent = (-125); +# 1703 +static constexpr inline int min_exponent10 = (-37); +# 1704 +static constexpr inline int max_exponent = 128; +# 1705 +static constexpr inline int max_exponent10 = 38; +# 1707 +static constexpr inline bool has_infinity = (1); +# 1708 +static constexpr inline bool has_quiet_NaN = (1); +# 1709 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1710 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1712 +static constexpr inline bool has_denorm_loss = false; +# 1716 +static constexpr float infinity() noexcept { return __builtin_huge_valf(); } +# 1719 +static constexpr float quiet_NaN() noexcept { return __builtin_nanf(""); } +# 1722 +static constexpr float signaling_NaN() noexcept { return __builtin_nansf(""); } +# 1725 +static constexpr float denorm_min() noexcept { return (1.4E-45F); } +# 1727 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1729 +static constexpr inline bool is_bounded = true; +# 1730 +static constexpr inline bool is_modulo = false; +# 1732 +static constexpr inline bool traps = false; +# 1733 +static constexpr inline bool tinyness_before = false; +# 1735 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1737 +}; +# 1745 +template<> struct numeric_limits< double> { +# 1747 +static constexpr inline bool is_specialized = true; +# 1750 +static constexpr double min() noexcept { return (double)(2.2250738585072013831E-308L); } +# 1753 +static constexpr double max() noexcept { return (double)(1.7976931348623157081E308L); } +# 1757 +static constexpr double lowest() noexcept { return -((double)(1.7976931348623157081E308L)); } +# 1760 +static constexpr inline int digits = 53; +# 1761 +static constexpr inline int digits10 = 15; +# 1763 +static constexpr inline int max_digits10 = ((2) + (((53) * 643L) / (2136))); +# 1766 +static constexpr inline bool is_signed = true; +# 1767 +static constexpr inline bool is_integer = false; +# 1768 +static constexpr inline bool is_exact = false; +# 1769 +static constexpr inline int radix = 2; +# 1772 +static constexpr double epsilon() noexcept { return (double)(2.2204460492503130808E-16L); } +# 1775 +static constexpr double round_error() noexcept { return (0.5); } +# 1777 +static constexpr inline int min_exponent = (-1021); +# 1778 +static constexpr inline int min_exponent10 = (-307); +# 1779 +static constexpr inline int max_exponent = 1024; +# 1780 +static constexpr inline int max_exponent10 = 308; +# 1782 +static constexpr inline bool has_infinity = (1); +# 1783 +static constexpr inline bool has_quiet_NaN = (1); +# 1784 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1785 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1787 +static constexpr inline bool has_denorm_loss = false; +# 1791 +static constexpr double infinity() noexcept { return __builtin_huge_val(); } +# 1794 +static constexpr double quiet_NaN() noexcept { return __builtin_nan(""); } +# 1797 +static constexpr double signaling_NaN() noexcept { return __builtin_nans(""); } +# 1800 +static constexpr double denorm_min() noexcept { return (double)(4.940656458412465442E-324L); } +# 1802 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1804 +static constexpr inline bool is_bounded = true; +# 1805 +static constexpr inline bool is_modulo = false; +# 1807 +static constexpr inline bool traps = false; +# 1808 +static constexpr inline bool tinyness_before = false; +# 1810 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1812 +}; +# 1820 +template<> struct numeric_limits< long double> { +# 1822 +static constexpr inline bool is_specialized = true; +# 1825 +static constexpr long double min() noexcept { return (3.3621031431120935063E-4932L); } +# 1828 +static constexpr long double max() noexcept { return (1.189731495357231765E4932L); } +# 1832 +static constexpr long double lowest() noexcept { return -(1.189731495357231765E4932L); } +# 1835 +static constexpr inline int digits = 64; +# 1836 +static constexpr inline int digits10 = 18; +# 1838 +static constexpr inline int max_digits10 = ((2) + (((64) * 643L) / (2136))); +# 1841 +static constexpr inline bool is_signed = true; +# 1842 +static constexpr inline bool is_integer = false; +# 1843 +static constexpr inline bool is_exact = false; +# 1844 +static constexpr inline int radix = 2; +# 1847 +static constexpr long double epsilon() noexcept { return (1.084202172485504434E-19L); } +# 1850 +static constexpr long double round_error() noexcept { return (0.5L); } +# 1852 +static constexpr inline int min_exponent = (-16381); +# 1853 +static constexpr inline int min_exponent10 = (-4931); +# 1854 +static constexpr inline int max_exponent = 16384; +# 1855 +static constexpr inline int max_exponent10 = 4932; +# 1857 +static constexpr inline bool has_infinity = (1); +# 1858 +static constexpr inline bool has_quiet_NaN = (1); +# 1859 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1860 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1862 +static constexpr inline bool has_denorm_loss = false; +# 1866 +static constexpr long double infinity() noexcept { return __builtin_huge_vall(); } +# 1869 +static constexpr long double quiet_NaN() noexcept { return __builtin_nanl(""); } +# 1872 +static constexpr long double signaling_NaN() noexcept { return __builtin_nansl(""); } +# 1875 +static constexpr long double denorm_min() noexcept { return (3.6E-4951L); } +# 1877 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1879 +static constexpr inline bool is_bounded = true; +# 1880 +static constexpr inline bool is_modulo = false; +# 1882 +static constexpr inline bool traps = false; +# 1883 +static constexpr inline bool tinyness_before = false; +# 1885 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1887 +}; +# 1989 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< _Float32> { static constexpr inline bool is_specialized = true; static constexpr _Float32 min() noexcept { return (1.1754944E-38f32); } static constexpr _Float32 max() noexcept { return (3.4028235E38f32); } static constexpr _Float32 lowest() noexcept { return -(3.4028235E38f32); } static constexpr inline int digits = 24; static constexpr inline int digits10 = 6; static constexpr inline int max_digits10 = ((2) + (((24) * 643L) / (2136))); static constexpr inline bool is_signed = true; static constexpr inline bool is_integer = false; static constexpr inline bool is_exact = false; static constexpr inline int radix = 2; static constexpr _Float32 epsilon() noexcept { return (1.1920929E-7f32); } static constexpr _Float32 round_error() noexcept { return (0.5f32); } static constexpr inline int min_exponent = (-125); static constexpr inline int min_exponent10 = (-37); static constexpr inline int max_exponent = 128; static constexpr inline int max_exponent10 = 38; static constexpr inline bool has_infinity = (1); static constexpr inline bool has_quiet_NaN = (1); static constexpr inline bool has_signaling_NaN = has_quiet_NaN; static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); static constexpr inline bool has_denorm_loss = false; static constexpr _Float32 infinity() noexcept { return __builtin_huge_valf32(); } static constexpr _Float32 quiet_NaN() noexcept { return __builtin_nanf32(""); } static constexpr _Float32 signaling_NaN() noexcept { return __builtin_nansf32(""); } static constexpr _Float32 denorm_min() noexcept { return (1.4E-45f32); } static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = false; static constexpr inline bool traps = false; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_to_nearest; }; +# 1992 +template<> struct numeric_limits< _Float64> { static constexpr inline bool is_specialized = true; static constexpr _Float64 min() noexcept { return (2.2250738585072014E-308f64); } static constexpr _Float64 max() noexcept { return (1.7976931348623157E308f64); } static constexpr _Float64 lowest() noexcept { return -(1.7976931348623157E308f64); } static constexpr inline int digits = 53; static constexpr inline int digits10 = 15; static constexpr inline int max_digits10 = ((2) + (((53) * 643L) / (2136))); static constexpr inline bool is_signed = true; static constexpr inline bool is_integer = false; static constexpr inline bool is_exact = false; static constexpr inline int radix = 2; static constexpr _Float64 epsilon() noexcept { return (2.220446049250313E-16f64); } static constexpr _Float64 round_error() noexcept { return (0.5f64); } static constexpr inline int min_exponent = (-1021); static constexpr inline int min_exponent10 = (-307); static constexpr inline int max_exponent = 1024; static constexpr inline int max_exponent10 = 308; static constexpr inline bool has_infinity = (1); static constexpr inline bool has_quiet_NaN = (1); static constexpr inline bool has_signaling_NaN = has_quiet_NaN; static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); static constexpr inline bool has_denorm_loss = false; static constexpr _Float64 infinity() noexcept { return __builtin_huge_valf64(); } static constexpr _Float64 quiet_NaN() noexcept { return __builtin_nanf64(""); } static constexpr _Float64 signaling_NaN() noexcept { return __builtin_nansf64(""); } static constexpr _Float64 denorm_min() noexcept { return (4.9E-324f64); } static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = false; static constexpr inline bool traps = false; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_to_nearest; }; +# 1995 +template<> struct numeric_limits< _Float128> { static constexpr inline bool is_specialized = true; static constexpr _Float128 min() noexcept { return (3.3621031431120935062626778173217526E-4932f128); } static constexpr _Float128 max() noexcept { return (1.189731495357231765085759326628007E4932f128); } static constexpr _Float128 lowest() noexcept { return -(1.189731495357231765085759326628007E4932f128); } static constexpr inline int digits = 113; static constexpr inline int digits10 = 33; static constexpr inline int max_digits10 = ((2) + (((113) * 643L) / (2136))); static constexpr inline bool is_signed = true; static constexpr inline bool is_integer = false; static constexpr inline bool is_exact = false; static constexpr inline int radix = 2; static constexpr _Float128 epsilon() noexcept { return (1.9259299443872358530559779425849273E-34f128); } static constexpr _Float128 round_error() noexcept { return (0.5f128); } static constexpr inline int min_exponent = (-16381); static constexpr inline int min_exponent10 = (-4931); static constexpr inline int max_exponent = 16384; static constexpr inline int max_exponent10 = 4932; static constexpr inline bool has_infinity = (1); static constexpr inline bool has_quiet_NaN = (1); static constexpr inline bool has_signaling_NaN = has_quiet_NaN; static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); static constexpr inline bool has_denorm_loss = false; static constexpr _Float128 infinity() noexcept { return __builtin_huge_valf128(); } static constexpr _Float128 quiet_NaN() noexcept { return __builtin_nanf128(""); } static constexpr _Float128 signaling_NaN() noexcept { return __builtin_nansf128(""); } static constexpr _Float128 denorm_min() noexcept { return (6.5E-4966f128); } static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); static constexpr inline bool is_bounded = true; static constexpr inline bool is_modulo = false; static constexpr inline bool traps = false; static constexpr inline bool tinyness_before = false; static constexpr inline float_round_style round_style = round_to_nearest; }; +# 2089 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +template<> struct numeric_limits< __float128> { +# 2091 +static constexpr inline bool is_specialized = true; +# 2094 +static constexpr __float128 min() noexcept +# 2095 +{ +# 2100 +return __extension__ (3.3621031431120935062626778173217526E-4932Q); +# 2102 +} +# 2105 +static constexpr __float128 max() noexcept +# 2106 +{ +# 2114 +return __extension__ (1.189731495357231765085759326628007E4932Q); +# 2116 +} +# 2119 +static constexpr __float128 lowest() noexcept +# 2120 +{ return -max(); } +# 2122 +static constexpr inline int digits = 113; +# 2123 +static constexpr inline int digits10 = 33; +# 2125 +static constexpr inline int max_digits10 = 35; +# 2127 +static constexpr inline bool is_signed = true; +# 2128 +static constexpr inline bool is_integer = false; +# 2129 +static constexpr inline bool is_exact = false; +# 2130 +static constexpr inline int radix = 2; +# 2133 +static constexpr __float128 epsilon() noexcept +# 2134 +{ return (double)(1.925929944387236E-34); } +# 2137 +static constexpr __float128 round_error() noexcept { return (0.5); } +# 2139 +static constexpr inline int min_exponent = (-16381); +# 2140 +static constexpr inline int min_exponent10 = (-4931); +# 2141 +static constexpr inline int max_exponent = 16384; +# 2142 +static constexpr inline int max_exponent10 = 4932; +# 2144 +static constexpr inline bool has_infinity = (1); +# 2145 +static constexpr inline bool has_quiet_NaN = (1); +# 2148 +static constexpr inline bool has_signaling_NaN = true; +# 2152 +static constexpr inline float_denorm_style has_denorm = denorm_present; +# 2154 +static constexpr inline bool has_denorm_loss = false; +# 2157 +static constexpr __float128 infinity() noexcept +# 2158 +{ return __builtin_huge_val(); } +# 2161 +static constexpr __float128 quiet_NaN() noexcept +# 2162 +{ return __builtin_nan(""); } +# 2165 +static constexpr __float128 signaling_NaN() noexcept +# 2166 +{ +# 2168 +return __builtin_nansq(""); +# 2174 +} +# 2177 +static constexpr __float128 denorm_min() noexcept +# 2178 +{ +# 2183 +return __extension__ (6.5E-4966Q); +# 2185 +} +# 2187 +static constexpr inline bool is_iec559 = has_signaling_NaN; +# 2188 +static constexpr inline bool is_bounded = true; +# 2189 +static constexpr inline bool is_modulo = false; +# 2191 +static constexpr inline bool traps = false; +# 2192 +static constexpr inline bool tinyness_before = false; +# 2193 +static constexpr inline float_round_style round_style = round_to_nearest; +# 2218 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/limits" 3 +}; +# 2223 +} +# 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +namespace __detail { +# 55 +template< class _Tp> +# 56 +struct __floating_point_constant { +# 58 +static const _Tp __value; +# 59 +}; +# 63 +template< class _Tp> +# 64 +struct __numeric_constants { +# 67 +static _Tp __pi() throw() +# 68 +{ return static_cast< _Tp>((3.1415926535897932385L)); } +# 70 +static _Tp __pi_2() throw() +# 71 +{ return static_cast< _Tp>((1.5707963267948966193L)); } +# 73 +static _Tp __pi_3() throw() +# 74 +{ return static_cast< _Tp>((1.0471975511965977461L)); } +# 76 +static _Tp __pi_4() throw() +# 77 +{ return static_cast< _Tp>((0.78539816339744830963L)); } +# 79 +static _Tp __1_pi() throw() +# 80 +{ return static_cast< _Tp>((0.31830988618379067154L)); } +# 82 +static _Tp __2_sqrtpi() throw() +# 83 +{ return static_cast< _Tp>((1.1283791670955125738L)); } +# 85 +static _Tp __sqrt2() throw() +# 86 +{ return static_cast< _Tp>((1.4142135623730950488L)); } +# 88 +static _Tp __sqrt3() throw() +# 89 +{ return static_cast< _Tp>((1.7320508075688772936L)); } +# 91 +static _Tp __sqrtpio2() throw() +# 92 +{ return static_cast< _Tp>((1.2533141373155002512L)); } +# 94 +static _Tp __sqrt1_2() throw() +# 95 +{ return static_cast< _Tp>((0.7071067811865475244L)); } +# 97 +static _Tp __lnpi() throw() +# 98 +{ return static_cast< _Tp>((1.1447298858494001742L)); } +# 100 +static _Tp __gamma_e() throw() +# 101 +{ return static_cast< _Tp>((0.5772156649015328606L)); } +# 103 +static _Tp __euler() throw() +# 104 +{ return static_cast< _Tp>((2.7182818284590452354L)); } +# 105 +}; +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +template< class _Tp> inline bool +# 115 +__isnan(_Tp __x) +# 116 +{ return std::isnan(__x); } +# 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/special_function_util.h" 3 +} +# 139 +} +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +namespace __detail { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 78 +__bernoulli_series(unsigned __n) +# 79 +{ +# 81 +static const _Tp __num[28] = {((_Tp)1UL), ((-((_Tp)1UL)) / ((_Tp)2UL)), (((_Tp)1UL) / ((_Tp)6UL)), ((_Tp)0UL), ((-((_Tp)1UL)) / ((_Tp)30UL)), ((_Tp)0UL), (((_Tp)1UL) / ((_Tp)42UL)), ((_Tp)0UL), ((-((_Tp)1UL)) / ((_Tp)30UL)), ((_Tp)0UL), (((_Tp)5UL) / ((_Tp)66UL)), ((_Tp)0UL), ((-((_Tp)691UL)) / ((_Tp)2730UL)), ((_Tp)0UL), (((_Tp)7UL) / ((_Tp)6UL)), ((_Tp)0UL), ((-((_Tp)3617UL)) / ((_Tp)510UL)), ((_Tp)0UL), (((_Tp)43867UL) / ((_Tp)798UL)), ((_Tp)0UL), ((-((_Tp)174611)) / ((_Tp)330UL)), ((_Tp)0UL), (((_Tp)854513UL) / ((_Tp)138UL)), ((_Tp)0UL), ((-((_Tp)236364091UL)) / ((_Tp)2730UL)), ((_Tp)0UL), (((_Tp)8553103UL) / ((_Tp)6UL)), ((_Tp)0UL)}; +# 98 +if (__n == (0)) { +# 99 +return (_Tp)1; } +# 101 +if (__n == (1)) { +# 102 +return (-((_Tp)1)) / ((_Tp)2); } +# 105 +if ((__n % (2)) == (1)) { +# 106 +return (_Tp)0; } +# 109 +if (__n < (28)) { +# 110 +return __num[__n]; } +# 113 +_Tp __fact = ((_Tp)1); +# 114 +if (((__n / (2)) % (2)) == (0)) { +# 115 +__fact *= ((_Tp)(-1)); } +# 116 +for (unsigned __k = (1); __k <= __n; ++__k) { +# 117 +__fact *= (__k / (((_Tp)2) * __numeric_constants< _Tp> ::__pi())); } +# 118 +__fact *= ((_Tp)2); +# 120 +_Tp __sum = ((_Tp)0); +# 121 +for (unsigned __i = (1); __i < (1000); ++__i) +# 122 +{ +# 123 +_Tp __term = std::pow((_Tp)__i, -((_Tp)__n)); +# 124 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) { +# 125 +break; } +# 126 +__sum += __term; +# 127 +} +# 129 +return __fact * __sum; +# 130 +} +# 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> inline _Tp +# 141 +__bernoulli(int __n) +# 142 +{ return __bernoulli_series< _Tp> (__n); } +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 155 +__log_gamma_bernoulli(_Tp __x) +# 156 +{ +# 157 +_Tp __lg = (((__x - ((_Tp)(0.5L))) * std::log(__x)) - __x) + (((_Tp)(0.5L)) * std::log(((_Tp)2) * __numeric_constants< _Tp> ::__pi())); +# 161 +const _Tp __xx = __x * __x; +# 162 +_Tp __help = ((_Tp)1) / __x; +# 163 +for (unsigned __i = (1); __i < (20); ++__i) +# 164 +{ +# 165 +const _Tp __2i = (_Tp)((2) * __i); +# 166 +__help /= ((__2i * (__2i - ((_Tp)1))) * __xx); +# 167 +__lg += (__bernoulli< _Tp> ((2) * __i) * __help); +# 168 +} +# 170 +return __lg; +# 171 +} +# 181 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 183 +__log_gamma_lanczos(_Tp __x) +# 184 +{ +# 185 +const _Tp __xm1 = __x - ((_Tp)1); +# 187 +static const _Tp __lanczos_cheb_7[9] = {((_Tp)(0.99999999999980993226L)), ((_Tp)(676.52036812188509857L)), ((_Tp)(-(1259.1392167224028704L))), ((_Tp)(771.32342877765307887L)), ((_Tp)(-(176.61502916214059906L))), ((_Tp)(12.507343278686904814L)), ((_Tp)(-(0.1385710952657201169L))), ((_Tp)(9.9843695780195708595E-6L)), ((_Tp)(1.5056327351493115584E-7L))}; +# 199 +static const _Tp __LOGROOT2PI = ((_Tp)(0.9189385332046727418L)); +# 202 +_Tp __sum = (__lanczos_cheb_7[0]); +# 203 +for (unsigned __k = (1); __k < (9); ++__k) { +# 204 +__sum += ((__lanczos_cheb_7[__k]) / (__xm1 + __k)); } +# 206 +const _Tp __term1 = (__xm1 + ((_Tp)(0.5L))) * std::log((__xm1 + ((_Tp)(7.5L))) / __numeric_constants< _Tp> ::__euler()); +# 209 +const _Tp __term2 = __LOGROOT2PI + std::log(__sum); +# 210 +const _Tp __result = __term1 + (__term2 - ((_Tp)7)); +# 212 +return __result; +# 213 +} +# 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 227 +__log_gamma(_Tp __x) +# 228 +{ +# 229 +if (__x > ((_Tp)(0.5L))) { +# 230 +return __log_gamma_lanczos(__x); } else +# 232 +{ +# 233 +const _Tp __sin_fact = std::abs(std::sin(__numeric_constants< _Tp> ::__pi() * __x)); +# 235 +if (__sin_fact == ((_Tp)0)) { +# 236 +std::__throw_domain_error("Argument is nonpositive integer in __log_gamma"); } +# 238 +return (__numeric_constants< _Tp> ::__lnpi() - std::log(__sin_fact)) - __log_gamma_lanczos(((_Tp)1) - __x); +# 241 +} +# 242 +} +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 254 +__log_gamma_sign(_Tp __x) +# 255 +{ +# 256 +if (__x > ((_Tp)0)) { +# 257 +return (_Tp)1; } else +# 259 +{ +# 260 +const _Tp __sin_fact = std::sin(__numeric_constants< _Tp> ::__pi() * __x); +# 262 +if (__sin_fact > ((_Tp)0)) { +# 263 +return 1; } else { +# 264 +if (__sin_fact < ((_Tp)0)) { +# 265 +return -((_Tp)1); } else { +# 267 +return (_Tp)0; } } +# 268 +} +# 269 +} +# 283 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 285 +__log_bincoef(unsigned __n, unsigned __k) +# 286 +{ +# 288 +static const _Tp __max_bincoeff = (std::template numeric_limits< _Tp> ::max_exponent10 * std::log((_Tp)10)) - ((_Tp)1); +# 292 +_Tp __coeff = (std::lgamma((_Tp)((1) + __n)) - std::lgamma((_Tp)((1) + __k))) - std::lgamma((_Tp)(((1) + __n) - __k)); +# 300 +} +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 316 +__bincoef(unsigned __n, unsigned __k) +# 317 +{ +# 319 +static const _Tp __max_bincoeff = (std::template numeric_limits< _Tp> ::max_exponent10 * std::log((_Tp)10)) - ((_Tp)1); +# 323 +const _Tp __log_coeff = __log_bincoef< _Tp> (__n, __k); +# 324 +if (__log_coeff > __max_bincoeff) { +# 325 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 327 +return std::exp(__log_coeff); } +# 328 +} +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> inline _Tp +# 339 +__gamma(_Tp __x) +# 340 +{ return std::exp(__log_gamma(__x)); } +# 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 358 +__psi_series(_Tp __x) +# 359 +{ +# 360 +_Tp __sum = (-__numeric_constants< _Tp> ::__gamma_e()) - (((_Tp)1) / __x); +# 361 +const unsigned __max_iter = (100000); +# 362 +for (unsigned __k = (1); __k < __max_iter; ++__k) +# 363 +{ +# 364 +const _Tp __term = __x / (__k * (__k + __x)); +# 365 +__sum += __term; +# 366 +if (std::abs(__term / __sum) < std::template numeric_limits< _Tp> ::epsilon()) { +# 367 +break; } +# 368 +} +# 369 +return __sum; +# 370 +} +# 386 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 388 +__psi_asymp(_Tp __x) +# 389 +{ +# 390 +_Tp __sum = std::log(__x) - (((_Tp)(0.5L)) / __x); +# 391 +const _Tp __xx = __x * __x; +# 392 +_Tp __xp = __xx; +# 393 +const unsigned __max_iter = (100); +# 394 +for (unsigned __k = (1); __k < __max_iter; ++__k) +# 395 +{ +# 396 +const _Tp __term = __bernoulli< _Tp> ((2) * __k) / (((2) * __k) * __xp); +# 397 +__sum -= __term; +# 398 +if (std::abs(__term / __sum) < std::template numeric_limits< _Tp> ::epsilon()) { +# 399 +break; } +# 400 +__xp *= __xx; +# 401 +} +# 402 +return __sum; +# 403 +} +# 417 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 419 +__psi(_Tp __x) +# 420 +{ +# 421 +const int __n = static_cast< int>(__x + (0.5L)); +# 422 +const _Tp __eps = ((_Tp)4) * std::template numeric_limits< _Tp> ::epsilon(); +# 423 +if ((__n <= 0) && (std::abs(__x - ((_Tp)__n)) < __eps)) { +# 424 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 425 +if (__x < ((_Tp)0)) +# 426 +{ +# 427 +const _Tp __pi = __numeric_constants< _Tp> ::__pi(); +# 428 +return __psi(((_Tp)1) - __x) - ((__pi * std::cos(__pi * __x)) / std::sin(__pi * __x)); +# 430 +} else { +# 431 +if (__x > ((_Tp)100)) { +# 432 +return __psi_asymp(__x); } else { +# 434 +return __psi_series(__x); } } } +# 435 +} +# 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/gamma.tcc" 3 +template< class _Tp> _Tp +# 448 +__psi(unsigned __n, _Tp __x) +# 449 +{ +# 450 +if (__x <= ((_Tp)0)) { +# 451 +std::__throw_domain_error("Argument out of range in __psi"); } else { +# 453 +if (__n == (0)) { +# 454 +return __psi(__x); } else +# 456 +{ +# 457 +const _Tp __hzeta = __hurwitz_zeta((_Tp)(__n + (1)), __x); +# 459 +const _Tp __ln_nfact = std::lgamma((_Tp)(__n + (1))); +# 463 +_Tp __result = std::exp(__ln_nfact) * __hzeta; +# 464 +if ((__n % (2)) == (1)) { +# 465 +__result = (-__result); } +# 466 +return __result; +# 467 +} } +# 468 +} +# 469 +} +# 476 +} +# 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +namespace __detail { +# 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> void +# 100 +__gamma_temme(_Tp __mu, _Tp & +# 101 +__gam1, _Tp &__gam2, _Tp &__gampl, _Tp &__gammi) +# 102 +{ +# 104 +__gampl = (((_Tp)1) / std::tgamma(((_Tp)1) + __mu)); +# 105 +__gammi = (((_Tp)1) / std::tgamma(((_Tp)1) - __mu)); +# 111 +if (std::abs(__mu) < std::template numeric_limits< _Tp> ::epsilon()) { +# 112 +__gam1 = (-((_Tp)__numeric_constants< _Tp> ::__gamma_e())); } else { +# 114 +__gam1 = ((__gammi - __gampl) / (((_Tp)2) * __mu)); } +# 116 +__gam2 = ((__gammi + __gampl) / ((_Tp)2)); +# 119 +} +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> void +# 138 +__bessel_jn(_Tp __nu, _Tp __x, _Tp & +# 139 +__Jnu, _Tp &__Nnu, _Tp &__Jpnu, _Tp &__Npnu) +# 140 +{ +# 141 +if (__x == ((_Tp)0)) +# 142 +{ +# 143 +if (__nu == ((_Tp)0)) +# 144 +{ +# 145 +__Jnu = ((_Tp)1); +# 146 +__Jpnu = ((_Tp)0); +# 147 +} else { +# 148 +if (__nu == ((_Tp)1)) +# 149 +{ +# 150 +__Jnu = ((_Tp)0); +# 151 +__Jpnu = ((_Tp)(0.5L)); +# 152 +} else +# 154 +{ +# 155 +__Jnu = ((_Tp)0); +# 156 +__Jpnu = ((_Tp)0); +# 157 +} } +# 158 +__Nnu = (-std::template numeric_limits< _Tp> ::infinity()); +# 159 +__Npnu = std::template numeric_limits< _Tp> ::infinity(); +# 160 +return; +# 161 +} +# 163 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 168 +const _Tp __fp_min = std::sqrt(std::template numeric_limits< _Tp> ::min()); +# 169 +const int __max_iter = 15000; +# 170 +const _Tp __x_min = ((_Tp)2); +# 172 +const int __nl = (__x < __x_min) ? static_cast< int>(__nu + ((_Tp)(0.5L))) : std::max(0, static_cast< int>((__nu - __x) + ((_Tp)(1.5L)))); +# 176 +const _Tp __mu = __nu - __nl; +# 177 +const _Tp __mu2 = __mu * __mu; +# 178 +const _Tp __xi = ((_Tp)1) / __x; +# 179 +const _Tp __xi2 = ((_Tp)2) * __xi; +# 180 +_Tp __w = __xi2 / __numeric_constants< _Tp> ::__pi(); +# 181 +int __isign = 1; +# 182 +_Tp __h = __nu * __xi; +# 183 +if (__h < __fp_min) { +# 184 +__h = __fp_min; } +# 185 +_Tp __b = __xi2 * __nu; +# 186 +_Tp __d = ((_Tp)0); +# 187 +_Tp __c = __h; +# 188 +int __i; +# 189 +for (__i = 1; __i <= __max_iter; ++__i) +# 190 +{ +# 191 +__b += __xi2; +# 192 +__d = (__b - __d); +# 193 +if (std::abs(__d) < __fp_min) { +# 194 +__d = __fp_min; } +# 195 +__c = (__b - (((_Tp)1) / __c)); +# 196 +if (std::abs(__c) < __fp_min) { +# 197 +__c = __fp_min; } +# 198 +__d = (((_Tp)1) / __d); +# 199 +const _Tp __del = __c * __d; +# 200 +__h *= __del; +# 201 +if (__d < ((_Tp)0)) { +# 202 +__isign = (-__isign); } +# 203 +if (std::abs(__del - ((_Tp)1)) < __eps) { +# 204 +break; } +# 205 +} +# 206 +if (__i > __max_iter) { +# 207 +std::__throw_runtime_error("Argument x too large in __bessel_jn; try asymptotic expansion."); } +# 209 +_Tp __Jnul = __isign * __fp_min; +# 210 +_Tp __Jpnul = __h * __Jnul; +# 211 +_Tp __Jnul1 = __Jnul; +# 212 +_Tp __Jpnu1 = __Jpnul; +# 213 +_Tp __fact = __nu * __xi; +# 214 +for (int __l = __nl; __l >= 1; --__l) +# 215 +{ +# 216 +const _Tp __Jnutemp = (__fact * __Jnul) + __Jpnul; +# 217 +__fact -= __xi; +# 218 +__Jpnul = ((__fact * __Jnutemp) - __Jnul); +# 219 +__Jnul = __Jnutemp; +# 220 +} +# 221 +if (__Jnul == ((_Tp)0)) { +# 222 +__Jnul = __eps; } +# 223 +_Tp __f = __Jpnul / __Jnul; +# 224 +_Tp __Nmu, __Nnu1, __Npmu, __Jmu; +# 225 +if (__x < __x_min) +# 226 +{ +# 227 +const _Tp __x2 = __x / ((_Tp)2); +# 228 +const _Tp __pimu = __numeric_constants< _Tp> ::__pi() * __mu; +# 229 +_Tp __fact = (std::abs(__pimu) < __eps) ? (_Tp)1 : (__pimu / std::sin(__pimu)); +# 231 +_Tp __d = (-std::log(__x2)); +# 232 +_Tp __e = __mu * __d; +# 233 +_Tp __fact2 = (std::abs(__e) < __eps) ? (_Tp)1 : (std::sinh(__e) / __e); +# 235 +_Tp __gam1, __gam2, __gampl, __gammi; +# 236 +__gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); +# 237 +_Tp __ff = ((((_Tp)2) / __numeric_constants< _Tp> ::__pi()) * __fact) * ((__gam1 * std::cosh(__e)) + ((__gam2 * __fact2) * __d)); +# 239 +__e = std::exp(__e); +# 240 +_Tp __p = __e / (__numeric_constants< _Tp> ::__pi() * __gampl); +# 241 +_Tp __q = ((_Tp)1) / ((__e * __numeric_constants< _Tp> ::__pi()) * __gammi); +# 242 +const _Tp __pimu2 = __pimu / ((_Tp)2); +# 243 +_Tp __fact3 = (std::abs(__pimu2) < __eps) ? (_Tp)1 : (std::sin(__pimu2) / __pimu2); +# 245 +_Tp __r = ((__numeric_constants< _Tp> ::__pi() * __pimu2) * __fact3) * __fact3; +# 246 +_Tp __c = ((_Tp)1); +# 247 +__d = ((-__x2) * __x2); +# 248 +_Tp __sum = __ff + (__r * __q); +# 249 +_Tp __sum1 = __p; +# 250 +for (__i = 1; __i <= __max_iter; ++__i) +# 251 +{ +# 252 +__ff = ((((__i * __ff) + __p) + __q) / ((__i * __i) - __mu2)); +# 253 +__c *= (__d / ((_Tp)__i)); +# 254 +__p /= (((_Tp)__i) - __mu); +# 255 +__q /= (((_Tp)__i) + __mu); +# 256 +const _Tp __del = __c * (__ff + (__r * __q)); +# 257 +__sum += __del; +# 258 +const _Tp __del1 = (__c * __p) - (__i * __del); +# 259 +__sum1 += __del1; +# 260 +if (std::abs(__del) < (__eps * (((_Tp)1) + std::abs(__sum)))) { +# 261 +break; } +# 262 +} +# 263 +if (__i > __max_iter) { +# 264 +std::__throw_runtime_error("Bessel y series failed to converge in __bessel_jn."); } +# 266 +__Nmu = (-__sum); +# 267 +__Nnu1 = ((-__sum1) * __xi2); +# 268 +__Npmu = (((__mu * __xi) * __Nmu) - __Nnu1); +# 269 +__Jmu = (__w / (__Npmu - (__f * __Nmu))); +# 270 +} else +# 272 +{ +# 273 +_Tp __a = ((_Tp)(0.25L)) - __mu2; +# 274 +_Tp __q = ((_Tp)1); +# 275 +_Tp __p = ((-__xi) / ((_Tp)2)); +# 276 +_Tp __br = ((_Tp)2) * __x; +# 277 +_Tp __bi = ((_Tp)2); +# 278 +_Tp __fact = (__a * __xi) / ((__p * __p) + (__q * __q)); +# 279 +_Tp __cr = __br + (__q * __fact); +# 280 +_Tp __ci = __bi + (__p * __fact); +# 281 +_Tp __den = (__br * __br) + (__bi * __bi); +# 282 +_Tp __dr = __br / __den; +# 283 +_Tp __di = (-__bi) / __den; +# 284 +_Tp __dlr = (__cr * __dr) - (__ci * __di); +# 285 +_Tp __dli = (__cr * __di) + (__ci * __dr); +# 286 +_Tp __temp = (__p * __dlr) - (__q * __dli); +# 287 +__q = ((__p * __dli) + (__q * __dlr)); +# 288 +__p = __temp; +# 289 +int __i; +# 290 +for (__i = 2; __i <= __max_iter; ++__i) +# 291 +{ +# 292 +__a += ((_Tp)(2 * (__i - 1))); +# 293 +__bi += ((_Tp)2); +# 294 +__dr = ((__a * __dr) + __br); +# 295 +__di = ((__a * __di) + __bi); +# 296 +if ((std::abs(__dr) + std::abs(__di)) < __fp_min) { +# 297 +__dr = __fp_min; } +# 298 +__fact = (__a / ((__cr * __cr) + (__ci * __ci))); +# 299 +__cr = (__br + (__cr * __fact)); +# 300 +__ci = (__bi - (__ci * __fact)); +# 301 +if ((std::abs(__cr) + std::abs(__ci)) < __fp_min) { +# 302 +__cr = __fp_min; } +# 303 +__den = ((__dr * __dr) + (__di * __di)); +# 304 +__dr /= __den; +# 305 +__di /= (-__den); +# 306 +__dlr = ((__cr * __dr) - (__ci * __di)); +# 307 +__dli = ((__cr * __di) + (__ci * __dr)); +# 308 +__temp = ((__p * __dlr) - (__q * __dli)); +# 309 +__q = ((__p * __dli) + (__q * __dlr)); +# 310 +__p = __temp; +# 311 +if ((std::abs(__dlr - ((_Tp)1)) + std::abs(__dli)) < __eps) { +# 312 +break; } +# 313 +} +# 314 +if (__i > __max_iter) { +# 315 +std::__throw_runtime_error("Lentz\'s method failed in __bessel_jn."); } +# 317 +const _Tp __gam = (__p - __f) / __q; +# 318 +__Jmu = std::sqrt(__w / (((__p - __f) * __gam) + __q)); +# 320 +__Jmu = std::copysign(__Jmu, __Jnul); +# 325 +__Nmu = (__gam * __Jmu); +# 326 +__Npmu = ((__p + (__q / __gam)) * __Nmu); +# 327 +__Nnu1 = (((__mu * __xi) * __Nmu) - __Npmu); +# 328 +} +# 329 +__fact = (__Jmu / __Jnul); +# 330 +__Jnu = (__fact * __Jnul1); +# 331 +__Jpnu = (__fact * __Jpnu1); +# 332 +for (__i = 1; __i <= __nl; ++__i) +# 333 +{ +# 334 +const _Tp __Nnutemp = (((__mu + __i) * __xi2) * __Nnu1) - __Nmu; +# 335 +__Nmu = __Nnu1; +# 336 +__Nnu1 = __Nnutemp; +# 337 +} +# 338 +__Nnu = __Nmu; +# 339 +__Npnu = (((__nu * __xi) * __Nmu) - __Nnu1); +# 342 +} +# 361 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> void +# 363 +__cyl_bessel_jn_asymp(_Tp __nu, _Tp __x, _Tp &__Jnu, _Tp &__Nnu) +# 364 +{ +# 365 +const _Tp __mu = (((_Tp)4) * __nu) * __nu; +# 366 +const _Tp __8x = ((_Tp)8) * __x; +# 368 +_Tp __P = ((_Tp)0); +# 369 +_Tp __Q = ((_Tp)0); +# 371 +_Tp __k = ((_Tp)0); +# 372 +_Tp __term = ((_Tp)1); +# 374 +int __epsP = 0; +# 375 +int __epsQ = 0; +# 377 +_Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 379 +do +# 380 +{ +# 381 +__term *= ((__k == 0) ? (_Tp)1 : ((-(__mu - (((2 * __k) - 1) * ((2 * __k) - 1)))) / (__k * __8x))); +# 385 +__epsP = (std::abs(__term) < (__eps * std::abs(__P))); +# 386 +__P += __term; +# 388 +__k++; +# 390 +__term *= ((__mu - (((2 * __k) - 1) * ((2 * __k) - 1))) / (__k * __8x)); +# 391 +__epsQ = (std::abs(__term) < (__eps * std::abs(__Q))); +# 392 +__Q += __term; +# 394 +if (__epsP && __epsQ && (__k > (__nu / (2.0)))) { +# 395 +break; } +# 397 +__k++; +# 398 +} +# 399 +while (__k < 1000); +# 401 +const _Tp __chi = __x - ((__nu + ((_Tp)(0.5L))) * __numeric_constants< _Tp> ::__pi_2()); +# 404 +const _Tp __c = std::cos(__chi); +# 405 +const _Tp __s = std::sin(__chi); +# 407 +const _Tp __coef = std::sqrt(((_Tp)2) / (__numeric_constants< _Tp> ::__pi() * __x)); +# 410 +__Jnu = (__coef * ((__c * __P) - (__s * __Q))); +# 411 +__Nnu = (__coef * ((__s * __P) + (__c * __Q))); +# 414 +} +# 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 446 +__cyl_bessel_ij_series(_Tp __nu, _Tp __x, _Tp __sgn, unsigned +# 447 +__max_iter) +# 448 +{ +# 449 +if (__x == ((_Tp)0)) { +# 450 +return (__nu == ((_Tp)0)) ? (_Tp)1 : ((_Tp)0); } +# 452 +const _Tp __x2 = __x / ((_Tp)2); +# 453 +_Tp __fact = __nu * std::log(__x2); +# 455 +__fact -= std::lgamma(__nu + ((_Tp)1)); +# 459 +__fact = std::exp(__fact); +# 460 +const _Tp __xx4 = (__sgn * __x2) * __x2; +# 461 +_Tp __Jn = ((_Tp)1); +# 462 +_Tp __term = ((_Tp)1); +# 464 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 465 +{ +# 466 +__term *= (__xx4 / (((_Tp)__i) * (__nu + ((_Tp)__i)))); +# 467 +__Jn += __term; +# 468 +if (std::abs(__term / __Jn) < std::template numeric_limits< _Tp> ::epsilon()) { +# 469 +break; } +# 470 +} +# 472 +return __fact * __Jn; +# 473 +} +# 490 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 492 +__cyl_bessel_j(_Tp __nu, _Tp __x) +# 493 +{ +# 494 +if ((__nu < ((_Tp)0)) || (__x < ((_Tp)0))) { +# 495 +std::__throw_domain_error("Bad argument in __cyl_bessel_j."); } else { +# 497 +if (__isnan(__nu) || __isnan(__x)) { +# 498 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 499 +if ((__x * __x) < (((_Tp)10) * (__nu + ((_Tp)1)))) { +# 500 +return __cyl_bessel_ij_series(__nu, __x, -((_Tp)1), 200); } else { +# 501 +if (__x > ((_Tp)1000)) +# 502 +{ +# 503 +_Tp __J_nu, __N_nu; +# 504 +__cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); +# 505 +return __J_nu; +# 506 +} else +# 508 +{ +# 509 +_Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; +# 510 +__bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 511 +return __J_nu; +# 512 +} } } } +# 513 +} +# 532 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 534 +__cyl_neumann_n(_Tp __nu, _Tp __x) +# 535 +{ +# 536 +if ((__nu < ((_Tp)0)) || (__x < ((_Tp)0))) { +# 537 +std::__throw_domain_error("Bad argument in __cyl_neumann_n."); } else { +# 539 +if (__isnan(__nu) || __isnan(__x)) { +# 540 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 541 +if (__x > ((_Tp)1000)) +# 542 +{ +# 543 +_Tp __J_nu, __N_nu; +# 544 +__cyl_bessel_jn_asymp(__nu, __x, __J_nu, __N_nu); +# 545 +return __N_nu; +# 546 +} else +# 548 +{ +# 549 +_Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; +# 550 +__bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 551 +return __N_nu; +# 552 +} } } +# 553 +} +# 569 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> void +# 571 +__sph_bessel_jn(unsigned __n, _Tp __x, _Tp & +# 572 +__j_n, _Tp &__n_n, _Tp &__jp_n, _Tp &__np_n) +# 573 +{ +# 574 +const _Tp __nu = ((_Tp)__n) + ((_Tp)(0.5L)); +# 576 +_Tp __J_nu, __N_nu, __Jp_nu, __Np_nu; +# 577 +__bessel_jn(__nu, __x, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 579 +const _Tp __factor = __numeric_constants< _Tp> ::__sqrtpio2() / std::sqrt(__x); +# 582 +__j_n = (__factor * __J_nu); +# 583 +__n_n = (__factor * __N_nu); +# 584 +__jp_n = ((__factor * __Jp_nu) - (__j_n / (((_Tp)2) * __x))); +# 585 +__np_n = ((__factor * __Np_nu) - (__n_n / (((_Tp)2) * __x))); +# 588 +} +# 604 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 606 +__sph_bessel(unsigned __n, _Tp __x) +# 607 +{ +# 608 +if (__x < ((_Tp)0)) { +# 609 +std::__throw_domain_error("Bad argument in __sph_bessel."); } else { +# 611 +if (__isnan(__x)) { +# 612 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 613 +if (__x == ((_Tp)0)) +# 614 +{ +# 615 +if (__n == (0)) { +# 616 +return (_Tp)1; } else { +# 618 +return (_Tp)0; } +# 619 +} else +# 621 +{ +# 622 +_Tp __j_n, __n_n, __jp_n, __np_n; +# 623 +__sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); +# 624 +return __j_n; +# 625 +} } } +# 626 +} +# 642 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/bessel_function.tcc" 3 +template< class _Tp> _Tp +# 644 +__sph_neumann(unsigned __n, _Tp __x) +# 645 +{ +# 646 +if (__x < ((_Tp)0)) { +# 647 +std::__throw_domain_error("Bad argument in __sph_neumann."); } else { +# 649 +if (__isnan(__x)) { +# 650 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 651 +if (__x == ((_Tp)0)) { +# 652 +return -std::template numeric_limits< _Tp> ::infinity(); } else +# 654 +{ +# 655 +_Tp __j_n, __n_n, __jp_n, __np_n; +# 656 +__sph_bessel_jn(__n, __x, __j_n, __n_n, __jp_n, __np_n); +# 657 +return __n_n; +# 658 +} } } +# 659 +} +# 660 +} +# 667 +} +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +namespace __detail { +# 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +template< class _Tp> _Tp +# 81 +__beta_gamma(_Tp __x, _Tp __y) +# 82 +{ +# 84 +_Tp __bet; +# 86 +if (__x > __y) +# 87 +{ +# 88 +__bet = (std::tgamma(__x) / std::tgamma(__x + __y)); +# 90 +__bet *= std::tgamma(__y); +# 91 +} else +# 93 +{ +# 94 +__bet = (std::tgamma(__y) / std::tgamma(__x + __y)); +# 96 +__bet *= std::tgamma(__x); +# 97 +} +# 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +return __bet; +# 112 +} +# 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +template< class _Tp> _Tp +# 129 +__beta_lgamma(_Tp __x, _Tp __y) +# 130 +{ +# 132 +_Tp __bet = (std::lgamma(__x) + std::lgamma(__y)) - std::lgamma(__x + __y); +# 140 +__bet = std::exp(__bet); +# 141 +return __bet; +# 142 +} +# 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +template< class _Tp> _Tp +# 160 +__beta_product(_Tp __x, _Tp __y) +# 161 +{ +# 163 +_Tp __bet = (__x + __y) / (__x * __y); +# 165 +unsigned __max_iter = (1000000); +# 166 +for (unsigned __k = (1); __k < __max_iter; ++__k) +# 167 +{ +# 168 +_Tp __term = (((_Tp)1) + ((__x + __y) / __k)) / ((((_Tp)1) + (__x / __k)) * (((_Tp)1) + (__y / __k))); +# 170 +__bet *= __term; +# 171 +} +# 173 +return __bet; +# 174 +} +# 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/beta_function.tcc" 3 +template< class _Tp> inline _Tp +# 191 +__beta(_Tp __x, _Tp __y) +# 192 +{ +# 193 +if (__isnan(__x) || __isnan(__y)) { +# 194 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 196 +return __beta_lgamma(__x, __y); } +# 197 +} +# 198 +} +# 205 +} +# 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +namespace __detail { +# 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 78 +__ellint_rf(_Tp __x, _Tp __y, _Tp __z) +# 79 +{ +# 80 +const _Tp __min = std::template numeric_limits< _Tp> ::min(); +# 81 +const _Tp __lolim = ((_Tp)5) * __min; +# 83 +if (((__x < ((_Tp)0)) || (__y < ((_Tp)0))) || (__z < ((_Tp)0))) { +# 84 +std::__throw_domain_error("Argument less than zero in __ellint_rf."); } else { +# 86 +if ((((__x + __y) < __lolim) || ((__x + __z) < __lolim)) || ((__y + __z) < __lolim)) { +# 88 +std::__throw_domain_error("Argument too small in __ellint_rf"); } else +# 90 +{ +# 91 +const _Tp __c0 = (((_Tp)1) / ((_Tp)4)); +# 92 +const _Tp __c1 = (((_Tp)1) / ((_Tp)24)); +# 93 +const _Tp __c2 = (((_Tp)1) / ((_Tp)10)); +# 94 +const _Tp __c3 = (((_Tp)3) / ((_Tp)44)); +# 95 +const _Tp __c4 = (((_Tp)1) / ((_Tp)14)); +# 97 +_Tp __xn = __x; +# 98 +_Tp __yn = __y; +# 99 +_Tp __zn = __z; +# 101 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 102 +const _Tp __errtol = std::pow(__eps, ((_Tp)1) / ((_Tp)6)); +# 103 +_Tp __mu; +# 104 +_Tp __xndev, __yndev, __zndev; +# 106 +const unsigned __max_iter = (100); +# 107 +for (unsigned __iter = (0); __iter < __max_iter; ++__iter) +# 108 +{ +# 109 +__mu = (((__xn + __yn) + __zn) / ((_Tp)3)); +# 110 +__xndev = (2 - ((__mu + __xn) / __mu)); +# 111 +__yndev = (2 - ((__mu + __yn) / __mu)); +# 112 +__zndev = (2 - ((__mu + __zn) / __mu)); +# 113 +_Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); +# 114 +__epsilon = std::max(__epsilon, std::abs(__zndev)); +# 115 +if (__epsilon < __errtol) { +# 116 +break; } +# 117 +const _Tp __xnroot = std::sqrt(__xn); +# 118 +const _Tp __ynroot = std::sqrt(__yn); +# 119 +const _Tp __znroot = std::sqrt(__zn); +# 120 +const _Tp __lambda = (__xnroot * (__ynroot + __znroot)) + (__ynroot * __znroot); +# 122 +__xn = (__c0 * (__xn + __lambda)); +# 123 +__yn = (__c0 * (__yn + __lambda)); +# 124 +__zn = (__c0 * (__zn + __lambda)); +# 125 +} +# 127 +const _Tp __e2 = (__xndev * __yndev) - (__zndev * __zndev); +# 128 +const _Tp __e3 = (__xndev * __yndev) * __zndev; +# 129 +const _Tp __s = (((_Tp)1) + ((((__c1 * __e2) - __c2) - (__c3 * __e3)) * __e2)) + (__c4 * __e3); +# 132 +return __s / std::sqrt(__mu); +# 133 +} } +# 134 +} +# 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 155 +__comp_ellint_1_series(_Tp __k) +# 156 +{ +# 158 +const _Tp __kk = __k * __k; +# 160 +_Tp __term = __kk / ((_Tp)4); +# 161 +_Tp __sum = ((_Tp)1) + __term; +# 163 +const unsigned __max_iter = (1000); +# 164 +for (unsigned __i = (2); __i < __max_iter; ++__i) +# 165 +{ +# 166 +__term *= (((((2) * __i) - (1)) * __kk) / ((2) * __i)); +# 167 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) { +# 168 +break; } +# 169 +__sum += __term; +# 170 +} +# 172 +return __numeric_constants< _Tp> ::__pi_2() * __sum; +# 173 +} +# 191 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 193 +__comp_ellint_1(_Tp __k) +# 194 +{ +# 196 +if (__isnan(__k)) { +# 197 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 198 +if (std::abs(__k) >= ((_Tp)1)) { +# 199 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 201 +return __ellint_rf((_Tp)0, ((_Tp)1) - (__k * __k), (_Tp)1); } } +# 202 +} +# 219 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 221 +__ellint_1(_Tp __k, _Tp __phi) +# 222 +{ +# 224 +if (__isnan(__k) || __isnan(__phi)) { +# 225 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 226 +if (std::abs(__k) > ((_Tp)1)) { +# 227 +std::__throw_domain_error("Bad argument in __ellint_1."); } else +# 229 +{ +# 231 +const int __n = std::floor((__phi / __numeric_constants< _Tp> ::__pi()) + ((_Tp)(0.5L))); +# 233 +const _Tp __phi_red = __phi - (__n * __numeric_constants< _Tp> ::__pi()); +# 236 +const _Tp __s = std::sin(__phi_red); +# 237 +const _Tp __c = std::cos(__phi_red); +# 239 +const _Tp __F = __s * __ellint_rf(__c * __c, ((_Tp)1) - (((__k * __k) * __s) * __s), (_Tp)1); +# 243 +if (__n == 0) { +# 244 +return __F; } else { +# 246 +return __F + ((((_Tp)2) * __n) * __comp_ellint_1(__k)); } +# 247 +} } +# 248 +} +# 266 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 268 +__comp_ellint_2_series(_Tp __k) +# 269 +{ +# 271 +const _Tp __kk = __k * __k; +# 273 +_Tp __term = __kk; +# 274 +_Tp __sum = __term; +# 276 +const unsigned __max_iter = (1000); +# 277 +for (unsigned __i = (2); __i < __max_iter; ++__i) +# 278 +{ +# 279 +const _Tp __i2m = ((2) * __i) - (1); +# 280 +const _Tp __i2 = (2) * __i; +# 281 +__term *= (((__i2m * __i2m) * __kk) / (__i2 * __i2)); +# 282 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) { +# 283 +break; } +# 284 +__sum += (__term / __i2m); +# 285 +} +# 287 +return __numeric_constants< _Tp> ::__pi_2() * (((_Tp)1) - __sum); +# 288 +} +# 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 316 +__ellint_rd(_Tp __x, _Tp __y, _Tp __z) +# 317 +{ +# 318 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 319 +const _Tp __errtol = std::pow(__eps / ((_Tp)8), ((_Tp)1) / ((_Tp)6)); +# 320 +const _Tp __max = std::template numeric_limits< _Tp> ::max(); +# 321 +const _Tp __lolim = ((_Tp)2) / std::pow(__max, ((_Tp)2) / ((_Tp)3)); +# 323 +if ((__x < ((_Tp)0)) || (__y < ((_Tp)0))) { +# 324 +std::__throw_domain_error("Argument less than zero in __ellint_rd."); } else { +# 326 +if (((__x + __y) < __lolim) || (__z < __lolim)) { +# 327 +std::__throw_domain_error("Argument too small in __ellint_rd."); } else +# 330 +{ +# 331 +const _Tp __c0 = (((_Tp)1) / ((_Tp)4)); +# 332 +const _Tp __c1 = (((_Tp)3) / ((_Tp)14)); +# 333 +const _Tp __c2 = (((_Tp)1) / ((_Tp)6)); +# 334 +const _Tp __c3 = (((_Tp)9) / ((_Tp)22)); +# 335 +const _Tp __c4 = (((_Tp)3) / ((_Tp)26)); +# 337 +_Tp __xn = __x; +# 338 +_Tp __yn = __y; +# 339 +_Tp __zn = __z; +# 340 +_Tp __sigma = ((_Tp)0); +# 341 +_Tp __power4 = ((_Tp)1); +# 343 +_Tp __mu; +# 344 +_Tp __xndev, __yndev, __zndev; +# 346 +const unsigned __max_iter = (100); +# 347 +for (unsigned __iter = (0); __iter < __max_iter; ++__iter) +# 348 +{ +# 349 +__mu = (((__xn + __yn) + (((_Tp)3) * __zn)) / ((_Tp)5)); +# 350 +__xndev = ((__mu - __xn) / __mu); +# 351 +__yndev = ((__mu - __yn) / __mu); +# 352 +__zndev = ((__mu - __zn) / __mu); +# 353 +_Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); +# 354 +__epsilon = std::max(__epsilon, std::abs(__zndev)); +# 355 +if (__epsilon < __errtol) { +# 356 +break; } +# 357 +_Tp __xnroot = std::sqrt(__xn); +# 358 +_Tp __ynroot = std::sqrt(__yn); +# 359 +_Tp __znroot = std::sqrt(__zn); +# 360 +_Tp __lambda = (__xnroot * (__ynroot + __znroot)) + (__ynroot * __znroot); +# 362 +__sigma += (__power4 / (__znroot * (__zn + __lambda))); +# 363 +__power4 *= __c0; +# 364 +__xn = (__c0 * (__xn + __lambda)); +# 365 +__yn = (__c0 * (__yn + __lambda)); +# 366 +__zn = (__c0 * (__zn + __lambda)); +# 367 +} +# 369 +_Tp __ea = __xndev * __yndev; +# 370 +_Tp __eb = __zndev * __zndev; +# 371 +_Tp __ec = __ea - __eb; +# 372 +_Tp __ed = __ea - (((_Tp)6) * __eb); +# 373 +_Tp __ef = (__ed + __ec) + __ec; +# 374 +_Tp __s1 = __ed * (((-__c1) + ((__c3 * __ed) / ((_Tp)3))) - ((((((_Tp)3) * __c4) * __zndev) * __ef) / ((_Tp)2))); +# 377 +_Tp __s2 = __zndev * ((__c2 * __ef) + (__zndev * ((((-__c3) * __ec) - (__zndev * __c4)) - __ea))); +# 381 +return (((_Tp)3) * __sigma) + ((__power4 * ((((_Tp)1) + __s1) + __s2)) / (__mu * std::sqrt(__mu))); +# 383 +} } +# 384 +} +# 399 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 401 +__comp_ellint_2(_Tp __k) +# 402 +{ +# 404 +if (__isnan(__k)) { +# 405 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 406 +if (std::abs(__k) == 1) { +# 407 +return (_Tp)1; } else { +# 408 +if (std::abs(__k) > ((_Tp)1)) { +# 409 +std::__throw_domain_error("Bad argument in __comp_ellint_2."); } else +# 411 +{ +# 412 +const _Tp __kk = __k * __k; +# 414 +return __ellint_rf((_Tp)0, ((_Tp)1) - __kk, (_Tp)1) - ((__kk * __ellint_rd((_Tp)0, ((_Tp)1) - __kk, (_Tp)1)) / ((_Tp)3)); +# 416 +} } } +# 417 +} +# 433 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 435 +__ellint_2(_Tp __k, _Tp __phi) +# 436 +{ +# 438 +if (__isnan(__k) || __isnan(__phi)) { +# 439 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 440 +if (std::abs(__k) > ((_Tp)1)) { +# 441 +std::__throw_domain_error("Bad argument in __ellint_2."); } else +# 443 +{ +# 445 +const int __n = std::floor((__phi / __numeric_constants< _Tp> ::__pi()) + ((_Tp)(0.5L))); +# 447 +const _Tp __phi_red = __phi - (__n * __numeric_constants< _Tp> ::__pi()); +# 450 +const _Tp __kk = __k * __k; +# 451 +const _Tp __s = std::sin(__phi_red); +# 452 +const _Tp __ss = __s * __s; +# 453 +const _Tp __sss = __ss * __s; +# 454 +const _Tp __c = std::cos(__phi_red); +# 455 +const _Tp __cc = __c * __c; +# 457 +const _Tp __E = (__s * __ellint_rf(__cc, ((_Tp)1) - (__kk * __ss), (_Tp)1)) - (((__kk * __sss) * __ellint_rd(__cc, ((_Tp)1) - (__kk * __ss), (_Tp)1)) / ((_Tp)3)); +# 463 +if (__n == 0) { +# 464 +return __E; } else { +# 466 +return __E + ((((_Tp)2) * __n) * __comp_ellint_2(__k)); } +# 467 +} } +# 468 +} +# 492 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 494 +__ellint_rc(_Tp __x, _Tp __y) +# 495 +{ +# 496 +const _Tp __min = std::template numeric_limits< _Tp> ::min(); +# 497 +const _Tp __lolim = ((_Tp)5) * __min; +# 499 +if (((__x < ((_Tp)0)) || (__y < ((_Tp)0))) || ((__x + __y) < __lolim)) { +# 500 +std::__throw_domain_error("Argument less than zero in __ellint_rc."); } else +# 503 +{ +# 504 +const _Tp __c0 = (((_Tp)1) / ((_Tp)4)); +# 505 +const _Tp __c1 = (((_Tp)1) / ((_Tp)7)); +# 506 +const _Tp __c2 = (((_Tp)9) / ((_Tp)22)); +# 507 +const _Tp __c3 = (((_Tp)3) / ((_Tp)10)); +# 508 +const _Tp __c4 = (((_Tp)3) / ((_Tp)8)); +# 510 +_Tp __xn = __x; +# 511 +_Tp __yn = __y; +# 513 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 514 +const _Tp __errtol = std::pow(__eps / ((_Tp)30), ((_Tp)1) / ((_Tp)6)); +# 515 +_Tp __mu; +# 516 +_Tp __sn; +# 518 +const unsigned __max_iter = (100); +# 519 +for (unsigned __iter = (0); __iter < __max_iter; ++__iter) +# 520 +{ +# 521 +__mu = ((__xn + (((_Tp)2) * __yn)) / ((_Tp)3)); +# 522 +__sn = (((__yn + __mu) / __mu) - ((_Tp)2)); +# 523 +if (std::abs(__sn) < __errtol) { +# 524 +break; } +# 525 +const _Tp __lambda = ((((_Tp)2) * std::sqrt(__xn)) * std::sqrt(__yn)) + __yn; +# 527 +__xn = (__c0 * (__xn + __lambda)); +# 528 +__yn = (__c0 * (__yn + __lambda)); +# 529 +} +# 531 +_Tp __s = (__sn * __sn) * (__c3 + (__sn * (__c1 + (__sn * (__c4 + (__sn * __c2)))))); +# 534 +return (((_Tp)1) + __s) / std::sqrt(__mu); +# 535 +} +# 536 +} +# 561 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 563 +__ellint_rj(_Tp __x, _Tp __y, _Tp __z, _Tp __p) +# 564 +{ +# 565 +const _Tp __min = std::template numeric_limits< _Tp> ::min(); +# 566 +const _Tp __lolim = std::pow(((_Tp)5) * __min, ((_Tp)1) / ((_Tp)3)); +# 568 +if (((__x < ((_Tp)0)) || (__y < ((_Tp)0))) || (__z < ((_Tp)0))) { +# 569 +std::__throw_domain_error("Argument less than zero in __ellint_rj."); } else { +# 571 +if (((((__x + __y) < __lolim) || ((__x + __z) < __lolim)) || ((__y + __z) < __lolim)) || (__p < __lolim)) { +# 573 +std::__throw_domain_error("Argument too small in __ellint_rj"); } else +# 576 +{ +# 577 +const _Tp __c0 = (((_Tp)1) / ((_Tp)4)); +# 578 +const _Tp __c1 = (((_Tp)3) / ((_Tp)14)); +# 579 +const _Tp __c2 = (((_Tp)1) / ((_Tp)3)); +# 580 +const _Tp __c3 = (((_Tp)3) / ((_Tp)22)); +# 581 +const _Tp __c4 = (((_Tp)3) / ((_Tp)26)); +# 583 +_Tp __xn = __x; +# 584 +_Tp __yn = __y; +# 585 +_Tp __zn = __z; +# 586 +_Tp __pn = __p; +# 587 +_Tp __sigma = ((_Tp)0); +# 588 +_Tp __power4 = ((_Tp)1); +# 590 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 591 +const _Tp __errtol = std::pow(__eps / ((_Tp)8), ((_Tp)1) / ((_Tp)6)); +# 593 +_Tp __mu; +# 594 +_Tp __xndev, __yndev, __zndev, __pndev; +# 596 +const unsigned __max_iter = (100); +# 597 +for (unsigned __iter = (0); __iter < __max_iter; ++__iter) +# 598 +{ +# 599 +__mu = ((((__xn + __yn) + __zn) + (((_Tp)2) * __pn)) / ((_Tp)5)); +# 600 +__xndev = ((__mu - __xn) / __mu); +# 601 +__yndev = ((__mu - __yn) / __mu); +# 602 +__zndev = ((__mu - __zn) / __mu); +# 603 +__pndev = ((__mu - __pn) / __mu); +# 604 +_Tp __epsilon = std::max(std::abs(__xndev), std::abs(__yndev)); +# 605 +__epsilon = std::max(__epsilon, std::abs(__zndev)); +# 606 +__epsilon = std::max(__epsilon, std::abs(__pndev)); +# 607 +if (__epsilon < __errtol) { +# 608 +break; } +# 609 +const _Tp __xnroot = std::sqrt(__xn); +# 610 +const _Tp __ynroot = std::sqrt(__yn); +# 611 +const _Tp __znroot = std::sqrt(__zn); +# 612 +const _Tp __lambda = (__xnroot * (__ynroot + __znroot)) + (__ynroot * __znroot); +# 614 +const _Tp __alpha1 = (__pn * ((__xnroot + __ynroot) + __znroot)) + ((__xnroot * __ynroot) * __znroot); +# 616 +const _Tp __alpha2 = __alpha1 * __alpha1; +# 617 +const _Tp __beta = (__pn * (__pn + __lambda)) * (__pn + __lambda); +# 619 +__sigma += (__power4 * __ellint_rc(__alpha2, __beta)); +# 620 +__power4 *= __c0; +# 621 +__xn = (__c0 * (__xn + __lambda)); +# 622 +__yn = (__c0 * (__yn + __lambda)); +# 623 +__zn = (__c0 * (__zn + __lambda)); +# 624 +__pn = (__c0 * (__pn + __lambda)); +# 625 +} +# 627 +_Tp __ea = (__xndev * (__yndev + __zndev)) + (__yndev * __zndev); +# 628 +_Tp __eb = (__xndev * __yndev) * __zndev; +# 629 +_Tp __ec = __pndev * __pndev; +# 630 +_Tp __e2 = __ea - (((_Tp)3) * __ec); +# 631 +_Tp __e3 = __eb + ((((_Tp)2) * __pndev) * (__ea - __ec)); +# 632 +_Tp __s1 = ((_Tp)1) + (__e2 * (((-__c1) + (((((_Tp)3) * __c3) * __e2) / ((_Tp)4))) - (((((_Tp)3) * __c4) * __e3) / ((_Tp)2)))); +# 634 +_Tp __s2 = __eb * ((__c2 / ((_Tp)2)) + (__pndev * (((-__c3) - __c3) + (__pndev * __c4)))); +# 636 +_Tp __s3 = ((__pndev * __ea) * (__c2 - (__pndev * __c3))) - ((__c2 * __pndev) * __ec); +# 639 +return (((_Tp)3) * __sigma) + ((__power4 * ((__s1 + __s2) + __s3)) / (__mu * std::sqrt(__mu))); +# 641 +} } +# 642 +} +# 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 663 +__comp_ellint_3(_Tp __k, _Tp __nu) +# 664 +{ +# 666 +if (__isnan(__k) || __isnan(__nu)) { +# 667 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 668 +if (__nu == ((_Tp)1)) { +# 669 +return std::template numeric_limits< _Tp> ::infinity(); } else { +# 670 +if (std::abs(__k) > ((_Tp)1)) { +# 671 +std::__throw_domain_error("Bad argument in __comp_ellint_3."); } else +# 673 +{ +# 674 +const _Tp __kk = __k * __k; +# 676 +return __ellint_rf((_Tp)0, ((_Tp)1) - __kk, (_Tp)1) + ((__nu * __ellint_rj((_Tp)0, ((_Tp)1) - __kk, (_Tp)1, ((_Tp)1) - __nu)) / ((_Tp)3)); +# 680 +} } } +# 681 +} +# 701 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/ell_integral.tcc" 3 +template< class _Tp> _Tp +# 703 +__ellint_3(_Tp __k, _Tp __nu, _Tp __phi) +# 704 +{ +# 706 +if ((__isnan(__k) || __isnan(__nu)) || __isnan(__phi)) { +# 707 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 708 +if (std::abs(__k) > ((_Tp)1)) { +# 709 +std::__throw_domain_error("Bad argument in __ellint_3."); } else +# 711 +{ +# 713 +const int __n = std::floor((__phi / __numeric_constants< _Tp> ::__pi()) + ((_Tp)(0.5L))); +# 715 +const _Tp __phi_red = __phi - (__n * __numeric_constants< _Tp> ::__pi()); +# 718 +const _Tp __kk = __k * __k; +# 719 +const _Tp __s = std::sin(__phi_red); +# 720 +const _Tp __ss = __s * __s; +# 721 +const _Tp __sss = __ss * __s; +# 722 +const _Tp __c = std::cos(__phi_red); +# 723 +const _Tp __cc = __c * __c; +# 725 +const _Tp __Pi = (__s * __ellint_rf(__cc, ((_Tp)1) - (__kk * __ss), (_Tp)1)) + (((__nu * __sss) * __ellint_rj(__cc, ((_Tp)1) - (__kk * __ss), (_Tp)1, ((_Tp)1) - (__nu * __ss))) / ((_Tp)3)); +# 731 +if (__n == 0) { +# 732 +return __Pi; } else { +# 734 +return __Pi + ((((_Tp)2) * __n) * __comp_ellint_3(__k, __nu)); } +# 735 +} } +# 736 +} +# 737 +} +# 743 +} +# 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +namespace __detail { +# 66 +template< class _Tp> _Tp __expint_E1(_Tp); +# 81 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 83 +__expint_E1_series(_Tp __x) +# 84 +{ +# 85 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 86 +_Tp __term = ((_Tp)1); +# 87 +_Tp __esum = ((_Tp)0); +# 88 +_Tp __osum = ((_Tp)0); +# 89 +const unsigned __max_iter = (1000); +# 90 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 91 +{ +# 92 +__term *= ((-__x) / __i); +# 93 +if (std::abs(__term) < __eps) { +# 94 +break; } +# 95 +if (__term >= ((_Tp)0)) { +# 96 +__esum += (__term / __i); } else { +# 98 +__osum += (__term / __i); } +# 99 +} +# 101 +return (((-__esum) - __osum) - __numeric_constants< _Tp> ::__gamma_e()) - std::log(__x); +# 103 +} +# 118 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 120 +__expint_E1_asymp(_Tp __x) +# 121 +{ +# 122 +_Tp __term = ((_Tp)1); +# 123 +_Tp __esum = ((_Tp)1); +# 124 +_Tp __osum = ((_Tp)0); +# 125 +const unsigned __max_iter = (1000); +# 126 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 127 +{ +# 128 +_Tp __prev = __term; +# 129 +__term *= ((-__i) / __x); +# 130 +if (std::abs(__term) > std::abs(__prev)) { +# 131 +break; } +# 132 +if (__term >= ((_Tp)0)) { +# 133 +__esum += __term; } else { +# 135 +__osum += __term; } +# 136 +} +# 138 +return (std::exp(-__x) * (__esum + __osum)) / __x; +# 139 +} +# 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 157 +__expint_En_series(unsigned __n, _Tp __x) +# 158 +{ +# 159 +const unsigned __max_iter = (1000); +# 160 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 161 +const int __nm1 = __n - (1); +# 162 +_Tp __ans = (__nm1 != 0) ? ((_Tp)1) / __nm1 : ((-std::log(__x)) - __numeric_constants< _Tp> ::__gamma_e()); +# 165 +_Tp __fact = ((_Tp)1); +# 166 +for (int __i = 1; __i <= __max_iter; ++__i) +# 167 +{ +# 168 +__fact *= ((-__x) / ((_Tp)__i)); +# 169 +_Tp __del; +# 170 +if (__i != __nm1) { +# 171 +__del = ((-__fact) / ((_Tp)(__i - __nm1))); } else +# 173 +{ +# 174 +_Tp __psi = (-__numeric_constants< _Tp> ::gamma_e()); +# 175 +for (int __ii = 1; __ii <= __nm1; ++__ii) { +# 176 +__psi += (((_Tp)1) / ((_Tp)__ii)); } +# 177 +__del = (__fact * (__psi - std::log(__x))); +# 178 +} +# 179 +__ans += __del; +# 180 +if (std::abs(__del) < (__eps * std::abs(__ans))) { +# 181 +return __ans; } +# 182 +} +# 183 +std::__throw_runtime_error("Series summation failed in __expint_En_series."); +# 185 +} +# 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 203 +__expint_En_cont_frac(unsigned __n, _Tp __x) +# 204 +{ +# 205 +const unsigned __max_iter = (1000); +# 206 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 207 +const _Tp __fp_min = std::template numeric_limits< _Tp> ::min(); +# 208 +const int __nm1 = __n - (1); +# 209 +_Tp __b = __x + ((_Tp)__n); +# 210 +_Tp __c = ((_Tp)1) / __fp_min; +# 211 +_Tp __d = ((_Tp)1) / __b; +# 212 +_Tp __h = __d; +# 213 +for (unsigned __i = (1); __i <= __max_iter; ++__i) +# 214 +{ +# 215 +_Tp __a = (-((_Tp)(__i * (__nm1 + __i)))); +# 216 +__b += ((_Tp)2); +# 217 +__d = (((_Tp)1) / ((__a * __d) + __b)); +# 218 +__c = (__b + (__a / __c)); +# 219 +const _Tp __del = __c * __d; +# 220 +__h *= __del; +# 221 +if (std::abs(__del - ((_Tp)1)) < __eps) +# 222 +{ +# 223 +const _Tp __ans = __h * std::exp(-__x); +# 224 +return __ans; +# 225 +} +# 226 +} +# 227 +std::__throw_runtime_error("Continued fraction failed in __expint_En_cont_frac."); +# 229 +} +# 246 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 248 +__expint_En_recursion(unsigned __n, _Tp __x) +# 249 +{ +# 250 +_Tp __En; +# 251 +_Tp __E1 = __expint_E1(__x); +# 252 +if (__x < ((_Tp)__n)) +# 253 +{ +# 255 +__En = __E1; +# 256 +for (unsigned __j = (2); __j < __n; ++__j) { +# 257 +__En = ((std::exp(-__x) - (__x * __En)) / ((_Tp)(__j - (1)))); } +# 258 +} else +# 260 +{ +# 262 +__En = ((_Tp)1); +# 263 +const int __N = __n + (20); +# 264 +_Tp __save = ((_Tp)0); +# 265 +for (int __j = __N; __j > 0; --__j) +# 266 +{ +# 267 +__En = ((std::exp(-__x) - (__j * __En)) / __x); +# 268 +if (__j == __n) { +# 269 +__save = __En; } +# 270 +} +# 271 +_Tp __norm = __En / __E1; +# 272 +__En /= __norm; +# 273 +} +# 275 +return __En; +# 276 +} +# 290 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 292 +__expint_Ei_series(_Tp __x) +# 293 +{ +# 294 +_Tp __term = ((_Tp)1); +# 295 +_Tp __sum = ((_Tp)0); +# 296 +const unsigned __max_iter = (1000); +# 297 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 298 +{ +# 299 +__term *= (__x / __i); +# 300 +__sum += (__term / __i); +# 301 +if (__term < (std::template numeric_limits< _Tp> ::epsilon() * __sum)) { +# 302 +break; } +# 303 +} +# 305 +return (__numeric_constants< _Tp> ::__gamma_e() + __sum) + std::log(__x); +# 306 +} +# 321 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 323 +__expint_Ei_asymp(_Tp __x) +# 324 +{ +# 325 +_Tp __term = ((_Tp)1); +# 326 +_Tp __sum = ((_Tp)1); +# 327 +const unsigned __max_iter = (1000); +# 328 +for (unsigned __i = (1); __i < __max_iter; ++__i) +# 329 +{ +# 330 +_Tp __prev = __term; +# 331 +__term *= (__i / __x); +# 332 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) { +# 333 +break; } +# 334 +if (__term >= __prev) { +# 335 +break; } +# 336 +__sum += __term; +# 337 +} +# 339 +return (std::exp(__x) * __sum) / __x; +# 340 +} +# 354 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 356 +__expint_Ei(_Tp __x) +# 357 +{ +# 358 +if (__x < ((_Tp)0)) { +# 359 +return -__expint_E1(-__x); } else { +# 360 +if (__x < (-std::log(std::template numeric_limits< _Tp> ::epsilon()))) { +# 361 +return __expint_Ei_series(__x); } else { +# 363 +return __expint_Ei_asymp(__x); } } +# 364 +} +# 378 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 380 +__expint_E1(_Tp __x) +# 381 +{ +# 382 +if (__x < ((_Tp)0)) { +# 383 +return -__expint_Ei(-__x); } else { +# 384 +if (__x < ((_Tp)1)) { +# 385 +return __expint_E1_series(__x); } else { +# 386 +if (__x < ((_Tp)100)) { +# 387 +return __expint_En_cont_frac(1, __x); } else { +# 389 +return __expint_E1_asymp(__x); } } } +# 390 +} +# 408 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 410 +__expint_asymp(unsigned __n, _Tp __x) +# 411 +{ +# 412 +_Tp __term = ((_Tp)1); +# 413 +_Tp __sum = ((_Tp)1); +# 414 +for (unsigned __i = (1); __i <= __n; ++__i) +# 415 +{ +# 416 +_Tp __prev = __term; +# 417 +__term *= ((-((__n - __i) + (1))) / __x); +# 418 +if (std::abs(__term) > std::abs(__prev)) { +# 419 +break; } +# 420 +__sum += __term; +# 421 +} +# 423 +return (std::exp(-__x) * __sum) / __x; +# 424 +} +# 442 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 444 +__expint_large_n(unsigned __n, _Tp __x) +# 445 +{ +# 446 +const _Tp __xpn = __x + __n; +# 447 +const _Tp __xpn2 = __xpn * __xpn; +# 448 +_Tp __term = ((_Tp)1); +# 449 +_Tp __sum = ((_Tp)1); +# 450 +for (unsigned __i = (1); __i <= __n; ++__i) +# 451 +{ +# 452 +_Tp __prev = __term; +# 453 +__term *= ((__n - (((2) * (__i - (1))) * __x)) / __xpn2); +# 454 +if (std::abs(__term) < std::template numeric_limits< _Tp> ::epsilon()) { +# 455 +break; } +# 456 +__sum += __term; +# 457 +} +# 459 +return (std::exp(-__x) * __sum) / __xpn; +# 460 +} +# 476 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> _Tp +# 478 +__expint(unsigned __n, _Tp __x) +# 479 +{ +# 481 +if (__isnan(__x)) { +# 482 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 483 +if ((__n <= (1)) && (__x == ((_Tp)0))) { +# 484 +return std::template numeric_limits< _Tp> ::infinity(); } else +# 486 +{ +# 487 +_Tp __E0 = std::exp(__x) / __x; +# 488 +if (__n == (0)) { +# 489 +return __E0; } +# 491 +_Tp __E1 = __expint_E1(__x); +# 492 +if (__n == (1)) { +# 493 +return __E1; } +# 495 +if (__x == ((_Tp)0)) { +# 496 +return ((_Tp)1) / (static_cast< _Tp>(__n - (1))); } +# 498 +_Tp __En = __expint_En_recursion(__n, __x); +# 500 +return __En; +# 501 +} } +# 502 +} +# 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/exp_integral.tcc" 3 +template< class _Tp> inline _Tp +# 518 +__expint(_Tp __x) +# 519 +{ +# 520 +if (__isnan(__x)) { +# 521 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 523 +return __expint_Ei(__x); } +# 524 +} +# 525 +} +# 531 +} +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +namespace __detail { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 85 +__conf_hyperg_series(_Tp __a, _Tp __c, _Tp __x) +# 86 +{ +# 87 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 89 +_Tp __term = ((_Tp)1); +# 90 +_Tp __Fac = ((_Tp)1); +# 91 +const unsigned __max_iter = (100000); +# 92 +unsigned __i; +# 93 +for (__i = (0); __i < __max_iter; ++__i) +# 94 +{ +# 95 +__term *= (((__a + ((_Tp)__i)) * __x) / ((__c + ((_Tp)__i)) * ((_Tp)((1) + __i)))); +# 97 +if (std::abs(__term) < __eps) +# 98 +{ +# 99 +break; +# 100 +} +# 101 +__Fac += __term; +# 102 +} +# 103 +if (__i == __max_iter) { +# 104 +std::__throw_runtime_error("Series failed to converge in __conf_hyperg_series."); } +# 107 +return __Fac; +# 108 +} +# 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 122 +__conf_hyperg_luke(_Tp __a, _Tp __c, _Tp __xin) +# 123 +{ +# 124 +const _Tp __big = std::pow(std::template numeric_limits< _Tp> ::max(), (_Tp)(0.16L)); +# 125 +const int __nmax = 20000; +# 126 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 127 +const _Tp __x = (-__xin); +# 128 +const _Tp __x3 = (__x * __x) * __x; +# 129 +const _Tp __t0 = __a / __c; +# 130 +const _Tp __t1 = (__a + ((_Tp)1)) / (((_Tp)2) * __c); +# 131 +const _Tp __t2 = (__a + ((_Tp)2)) / (((_Tp)2) * (__c + ((_Tp)1))); +# 132 +_Tp __F = ((_Tp)1); +# 133 +_Tp __prec; +# 135 +_Tp __Bnm3 = ((_Tp)1); +# 136 +_Tp __Bnm2 = ((_Tp)1) + (__t1 * __x); +# 137 +_Tp __Bnm1 = ((_Tp)1) + ((__t2 * __x) * (((_Tp)1) + ((__t1 / ((_Tp)3)) * __x))); +# 139 +_Tp __Anm3 = ((_Tp)1); +# 140 +_Tp __Anm2 = __Bnm2 - (__t0 * __x); +# 141 +_Tp __Anm1 = (__Bnm1 - ((__t0 * (((_Tp)1) + (__t2 * __x))) * __x)) + ((((__t0 * __t1) * (__c / (__c + ((_Tp)1)))) * __x) * __x); +# 144 +int __n = 3; +# 145 +while (1) +# 146 +{ +# 147 +_Tp __npam1 = ((_Tp)(__n - 1)) + __a; +# 148 +_Tp __npcm1 = ((_Tp)(__n - 1)) + __c; +# 149 +_Tp __npam2 = ((_Tp)(__n - 2)) + __a; +# 150 +_Tp __npcm2 = ((_Tp)(__n - 2)) + __c; +# 151 +_Tp __tnm1 = (_Tp)((2 * __n) - 1); +# 152 +_Tp __tnm3 = (_Tp)((2 * __n) - 3); +# 153 +_Tp __tnm5 = (_Tp)((2 * __n) - 5); +# 154 +_Tp __F1 = (((_Tp)(__n - 2)) - __a) / ((((_Tp)2) * __tnm3) * __npcm1); +# 155 +_Tp __F2 = ((((_Tp)__n) + __a) * __npam1) / ((((((_Tp)4) * __tnm1) * __tnm3) * __npcm2) * __npcm1); +# 157 +_Tp __F3 = (((-__npam2) * __npam1) * (((_Tp)(__n - 2)) - __a)) / ((((((((_Tp)8) * __tnm3) * __tnm3) * __tnm5) * (((_Tp)(__n - 3)) + __c)) * __npcm2) * __npcm1); +# 160 +_Tp __E = ((-__npam1) * (((_Tp)(__n - 1)) - __c)) / (((((_Tp)2) * __tnm3) * __npcm2) * __npcm1); +# 163 +_Tp __An = (((((_Tp)1) + (__F1 * __x)) * __Anm1) + (((__E + (__F2 * __x)) * __x) * __Anm2)) + ((__F3 * __x3) * __Anm3); +# 165 +_Tp __Bn = (((((_Tp)1) + (__F1 * __x)) * __Bnm1) + (((__E + (__F2 * __x)) * __x) * __Bnm2)) + ((__F3 * __x3) * __Bnm3); +# 167 +_Tp __r = __An / __Bn; +# 169 +__prec = std::abs((__F - __r) / __F); +# 170 +__F = __r; +# 172 +if ((__prec < __eps) || (__n > __nmax)) { +# 173 +break; } +# 175 +if ((std::abs(__An) > __big) || (std::abs(__Bn) > __big)) +# 176 +{ +# 177 +__An /= __big; +# 178 +__Bn /= __big; +# 179 +__Anm1 /= __big; +# 180 +__Bnm1 /= __big; +# 181 +__Anm2 /= __big; +# 182 +__Bnm2 /= __big; +# 183 +__Anm3 /= __big; +# 184 +__Bnm3 /= __big; +# 185 +} else { +# 186 +if ((std::abs(__An) < (((_Tp)1) / __big)) || (std::abs(__Bn) < (((_Tp)1) / __big))) +# 188 +{ +# 189 +__An *= __big; +# 190 +__Bn *= __big; +# 191 +__Anm1 *= __big; +# 192 +__Bnm1 *= __big; +# 193 +__Anm2 *= __big; +# 194 +__Bnm2 *= __big; +# 195 +__Anm3 *= __big; +# 196 +__Bnm3 *= __big; +# 197 +} } +# 199 +++__n; +# 200 +__Bnm3 = __Bnm2; +# 201 +__Bnm2 = __Bnm1; +# 202 +__Bnm1 = __Bn; +# 203 +__Anm3 = __Anm2; +# 204 +__Anm2 = __Anm1; +# 205 +__Anm1 = __An; +# 206 +} +# 208 +if (__n >= __nmax) { +# 209 +std::__throw_runtime_error("Iteration failed to converge in __conf_hyperg_luke."); } +# 212 +return __F; +# 213 +} +# 227 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 229 +__conf_hyperg(_Tp __a, _Tp __c, _Tp __x) +# 230 +{ +# 232 +const _Tp __c_nint = std::nearbyint(__c); +# 236 +if ((__isnan(__a) || __isnan(__c)) || __isnan(__x)) { +# 237 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 238 +if ((__c_nint == __c) && (__c_nint <= 0)) { +# 239 +return std::template numeric_limits< _Tp> ::infinity(); } else { +# 240 +if (__a == ((_Tp)0)) { +# 241 +return (_Tp)1; } else { +# 242 +if (__c == __a) { +# 243 +return std::exp(__x); } else { +# 244 +if (__x < ((_Tp)0)) { +# 245 +return __conf_hyperg_luke(__a, __c, __x); } else { +# 247 +return __conf_hyperg_series(__a, __c, __x); } } } } } +# 248 +} +# 271 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 273 +__hyperg_series(_Tp __a, _Tp __b, _Tp __c, _Tp __x) +# 274 +{ +# 275 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 277 +_Tp __term = ((_Tp)1); +# 278 +_Tp __Fabc = ((_Tp)1); +# 279 +const unsigned __max_iter = (100000); +# 280 +unsigned __i; +# 281 +for (__i = (0); __i < __max_iter; ++__i) +# 282 +{ +# 283 +__term *= ((((__a + ((_Tp)__i)) * (__b + ((_Tp)__i))) * __x) / ((__c + ((_Tp)__i)) * ((_Tp)((1) + __i)))); +# 285 +if (std::abs(__term) < __eps) +# 286 +{ +# 287 +break; +# 288 +} +# 289 +__Fabc += __term; +# 290 +} +# 291 +if (__i == __max_iter) { +# 292 +std::__throw_runtime_error("Series failed to converge in __hyperg_series."); } +# 295 +return __Fabc; +# 296 +} +# 304 +template< class _Tp> _Tp +# 306 +__hyperg_luke(_Tp __a, _Tp __b, _Tp __c, _Tp __xin) +# 307 +{ +# 308 +const _Tp __big = std::pow(std::template numeric_limits< _Tp> ::max(), (_Tp)(0.16L)); +# 309 +const int __nmax = 20000; +# 310 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 311 +const _Tp __x = (-__xin); +# 312 +const _Tp __x3 = (__x * __x) * __x; +# 313 +const _Tp __t0 = (__a * __b) / __c; +# 314 +const _Tp __t1 = ((__a + ((_Tp)1)) * (__b + ((_Tp)1))) / (((_Tp)2) * __c); +# 315 +const _Tp __t2 = ((__a + ((_Tp)2)) * (__b + ((_Tp)2))) / (((_Tp)2) * (__c + ((_Tp)1))); +# 318 +_Tp __F = ((_Tp)1); +# 320 +_Tp __Bnm3 = ((_Tp)1); +# 321 +_Tp __Bnm2 = ((_Tp)1) + (__t1 * __x); +# 322 +_Tp __Bnm1 = ((_Tp)1) + ((__t2 * __x) * (((_Tp)1) + ((__t1 / ((_Tp)3)) * __x))); +# 324 +_Tp __Anm3 = ((_Tp)1); +# 325 +_Tp __Anm2 = __Bnm2 - (__t0 * __x); +# 326 +_Tp __Anm1 = (__Bnm1 - ((__t0 * (((_Tp)1) + (__t2 * __x))) * __x)) + ((((__t0 * __t1) * (__c / (__c + ((_Tp)1)))) * __x) * __x); +# 329 +int __n = 3; +# 330 +while (1) +# 331 +{ +# 332 +const _Tp __npam1 = ((_Tp)(__n - 1)) + __a; +# 333 +const _Tp __npbm1 = ((_Tp)(__n - 1)) + __b; +# 334 +const _Tp __npcm1 = ((_Tp)(__n - 1)) + __c; +# 335 +const _Tp __npam2 = ((_Tp)(__n - 2)) + __a; +# 336 +const _Tp __npbm2 = ((_Tp)(__n - 2)) + __b; +# 337 +const _Tp __npcm2 = ((_Tp)(__n - 2)) + __c; +# 338 +const _Tp __tnm1 = (_Tp)((2 * __n) - 1); +# 339 +const _Tp __tnm3 = (_Tp)((2 * __n) - 3); +# 340 +const _Tp __tnm5 = (_Tp)((2 * __n) - 5); +# 341 +const _Tp __n2 = __n * __n; +# 342 +const _Tp __F1 = (((((((_Tp)3) * __n2) + (((__a + __b) - ((_Tp)6)) * __n)) + ((_Tp)2)) - (__a * __b)) - (((_Tp)2) * (__a + __b))) / ((((_Tp)2) * __tnm3) * __npcm1); +# 345 +const _Tp __F2 = (((-((((((_Tp)3) * __n2) - (((__a + __b) + ((_Tp)6)) * __n)) + ((_Tp)2)) - (__a * __b))) * __npam1) * __npbm1) / ((((((_Tp)4) * __tnm1) * __tnm3) * __npcm2) * __npcm1); +# 348 +const _Tp __F3 = (((((__npam2 * __npam1) * __npbm2) * __npbm1) * (((_Tp)(__n - 2)) - __a)) * (((_Tp)(__n - 2)) - __b)) / ((((((((_Tp)8) * __tnm3) * __tnm3) * __tnm5) * (((_Tp)(__n - 3)) + __c)) * __npcm2) * __npcm1); +# 352 +const _Tp __E = (((-__npam1) * __npbm1) * (((_Tp)(__n - 1)) - __c)) / (((((_Tp)2) * __tnm3) * __npcm2) * __npcm1); +# 355 +_Tp __An = (((((_Tp)1) + (__F1 * __x)) * __Anm1) + (((__E + (__F2 * __x)) * __x) * __Anm2)) + ((__F3 * __x3) * __Anm3); +# 357 +_Tp __Bn = (((((_Tp)1) + (__F1 * __x)) * __Bnm1) + (((__E + (__F2 * __x)) * __x) * __Bnm2)) + ((__F3 * __x3) * __Bnm3); +# 359 +const _Tp __r = __An / __Bn; +# 361 +const _Tp __prec = std::abs((__F - __r) / __F); +# 362 +__F = __r; +# 364 +if ((__prec < __eps) || (__n > __nmax)) { +# 365 +break; } +# 367 +if ((std::abs(__An) > __big) || (std::abs(__Bn) > __big)) +# 368 +{ +# 369 +__An /= __big; +# 370 +__Bn /= __big; +# 371 +__Anm1 /= __big; +# 372 +__Bnm1 /= __big; +# 373 +__Anm2 /= __big; +# 374 +__Bnm2 /= __big; +# 375 +__Anm3 /= __big; +# 376 +__Bnm3 /= __big; +# 377 +} else { +# 378 +if ((std::abs(__An) < (((_Tp)1) / __big)) || (std::abs(__Bn) < (((_Tp)1) / __big))) +# 380 +{ +# 381 +__An *= __big; +# 382 +__Bn *= __big; +# 383 +__Anm1 *= __big; +# 384 +__Bnm1 *= __big; +# 385 +__Anm2 *= __big; +# 386 +__Bnm2 *= __big; +# 387 +__Anm3 *= __big; +# 388 +__Bnm3 *= __big; +# 389 +} } +# 391 +++__n; +# 392 +__Bnm3 = __Bnm2; +# 393 +__Bnm2 = __Bnm1; +# 394 +__Bnm1 = __Bn; +# 395 +__Anm3 = __Anm2; +# 396 +__Anm2 = __Anm1; +# 397 +__Anm1 = __An; +# 398 +} +# 400 +if (__n >= __nmax) { +# 401 +std::__throw_runtime_error("Iteration failed to converge in __hyperg_luke."); } +# 404 +return __F; +# 405 +} +# 438 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 440 +__hyperg_reflect(_Tp __a, _Tp __b, _Tp __c, _Tp __x) +# 441 +{ +# 442 +const _Tp __d = (__c - __a) - __b; +# 443 +const int __intd = std::floor(__d + ((_Tp)(0.5L))); +# 444 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 445 +const _Tp __toler = ((_Tp)1000) * __eps; +# 446 +const _Tp __log_max = std::log(std::template numeric_limits< _Tp> ::max()); +# 447 +const bool __d_integer = std::abs(__d - __intd) < __toler; +# 449 +if (__d_integer) +# 450 +{ +# 451 +const _Tp __ln_omx = std::log(((_Tp)1) - __x); +# 452 +const _Tp __ad = std::abs(__d); +# 453 +_Tp __F1, __F2; +# 455 +_Tp __d1, __d2; +# 456 +if (__d >= ((_Tp)0)) +# 457 +{ +# 458 +__d1 = __d; +# 459 +__d2 = ((_Tp)0); +# 460 +} else +# 462 +{ +# 463 +__d1 = ((_Tp)0); +# 464 +__d2 = __d; +# 465 +} +# 467 +const _Tp __lng_c = __log_gamma(__c); +# 470 +if (__ad < __eps) +# 471 +{ +# 473 +__F1 = ((_Tp)0); +# 474 +} else +# 476 +{ +# 478 +bool __ok_d1 = true; +# 479 +_Tp __lng_ad, __lng_ad1, __lng_bd1; +# 480 +try +# 481 +{ +# 482 +__lng_ad = __log_gamma(__ad); +# 483 +__lng_ad1 = __log_gamma(__a + __d1); +# 484 +__lng_bd1 = __log_gamma(__b + __d1); +# 485 +} +# 486 +catch (...) +# 487 +{ +# 488 +__ok_d1 = false; +# 489 +} +# 491 +if (__ok_d1) +# 492 +{ +# 496 +_Tp __sum1 = ((_Tp)1); +# 497 +_Tp __term = ((_Tp)1); +# 498 +_Tp __ln_pre1 = (((__lng_ad + __lng_c) + (__d2 * __ln_omx)) - __lng_ad1) - __lng_bd1; +# 503 +for (int __i = 1; __i < __ad; ++__i) +# 504 +{ +# 505 +const int __j = __i - 1; +# 506 +__term *= ((((((__a + __d2) + __j) * ((__b + __d2) + __j)) / ((((_Tp)1) + __d2) + __j)) / __i) * (((_Tp)1) - __x)); +# 508 +__sum1 += __term; +# 509 +} +# 511 +if (__ln_pre1 > __log_max) { +# 512 +std::__throw_runtime_error("Overflow of gamma functions in __hyperg_luke."); } else { +# 515 +__F1 = (std::exp(__ln_pre1) * __sum1); } +# 516 +} else +# 518 +{ +# 521 +__F1 = ((_Tp)0); +# 522 +} +# 523 +} +# 526 +bool __ok_d2 = true; +# 527 +_Tp __lng_ad2, __lng_bd2; +# 528 +try +# 529 +{ +# 530 +__lng_ad2 = __log_gamma(__a + __d2); +# 531 +__lng_bd2 = __log_gamma(__b + __d2); +# 532 +} +# 533 +catch (...) +# 534 +{ +# 535 +__ok_d2 = false; +# 536 +} +# 538 +if (__ok_d2) +# 539 +{ +# 542 +const int __maxiter = 2000; +# 543 +const _Tp __psi_1 = (-__numeric_constants< _Tp> ::__gamma_e()); +# 544 +const _Tp __psi_1pd = __psi(((_Tp)1) + __ad); +# 545 +const _Tp __psi_apd1 = __psi(__a + __d1); +# 546 +const _Tp __psi_bpd1 = __psi(__b + __d1); +# 548 +_Tp __psi_term = (((__psi_1 + __psi_1pd) - __psi_apd1) - __psi_bpd1) - __ln_omx; +# 550 +_Tp __fact = ((_Tp)1); +# 551 +_Tp __sum2 = __psi_term; +# 552 +_Tp __ln_pre2 = ((__lng_c + (__d1 * __ln_omx)) - __lng_ad2) - __lng_bd2; +# 556 +int __j; +# 557 +for (__j = 1; __j < __maxiter; ++__j) +# 558 +{ +# 561 +const _Tp __term1 = (((_Tp)1) / ((_Tp)__j)) + (((_Tp)1) / (__ad + __j)); +# 563 +const _Tp __term2 = (((_Tp)1) / ((__a + __d1) + ((_Tp)(__j - 1)))) + (((_Tp)1) / ((__b + __d1) + ((_Tp)(__j - 1)))); +# 565 +__psi_term += (__term1 - __term2); +# 566 +__fact *= (((((__a + __d1) + ((_Tp)(__j - 1))) * ((__b + __d1) + ((_Tp)(__j - 1)))) / ((__ad + __j) * __j)) * (((_Tp)1) - __x)); +# 569 +const _Tp __delta = __fact * __psi_term; +# 570 +__sum2 += __delta; +# 571 +if (std::abs(__delta) < (__eps * std::abs(__sum2))) { +# 572 +break; } +# 573 +} +# 574 +if (__j == __maxiter) { +# 575 +std::__throw_runtime_error("Sum F2 failed to converge in __hyperg_reflect"); } +# 578 +if (__sum2 == ((_Tp)0)) { +# 579 +__F2 = ((_Tp)0); } else { +# 581 +__F2 = (std::exp(__ln_pre2) * __sum2); } +# 582 +} else +# 584 +{ +# 587 +__F2 = ((_Tp)0); +# 588 +} +# 590 +const _Tp __sgn_2 = (((__intd % 2) == 1) ? -((_Tp)1) : ((_Tp)1)); +# 591 +const _Tp __F = __F1 + (__sgn_2 * __F2); +# 593 +return __F; +# 594 +} else +# 596 +{ +# 601 +bool __ok1 = true; +# 602 +_Tp __sgn_g1ca = ((_Tp)0), __ln_g1ca = ((_Tp)0); +# 603 +_Tp __sgn_g1cb = ((_Tp)0), __ln_g1cb = ((_Tp)0); +# 604 +try +# 605 +{ +# 606 +__sgn_g1ca = __log_gamma_sign(__c - __a); +# 607 +__ln_g1ca = __log_gamma(__c - __a); +# 608 +__sgn_g1cb = __log_gamma_sign(__c - __b); +# 609 +__ln_g1cb = __log_gamma(__c - __b); +# 610 +} +# 611 +catch (...) +# 612 +{ +# 613 +__ok1 = false; +# 614 +} +# 616 +bool __ok2 = true; +# 617 +_Tp __sgn_g2a = ((_Tp)0), __ln_g2a = ((_Tp)0); +# 618 +_Tp __sgn_g2b = ((_Tp)0), __ln_g2b = ((_Tp)0); +# 619 +try +# 620 +{ +# 621 +__sgn_g2a = __log_gamma_sign(__a); +# 622 +__ln_g2a = __log_gamma(__a); +# 623 +__sgn_g2b = __log_gamma_sign(__b); +# 624 +__ln_g2b = __log_gamma(__b); +# 625 +} +# 626 +catch (...) +# 627 +{ +# 628 +__ok2 = false; +# 629 +} +# 631 +const _Tp __sgn_gc = __log_gamma_sign(__c); +# 632 +const _Tp __ln_gc = __log_gamma(__c); +# 633 +const _Tp __sgn_gd = __log_gamma_sign(__d); +# 634 +const _Tp __ln_gd = __log_gamma(__d); +# 635 +const _Tp __sgn_gmd = __log_gamma_sign(-__d); +# 636 +const _Tp __ln_gmd = __log_gamma(-__d); +# 638 +const _Tp __sgn1 = ((__sgn_gc * __sgn_gd) * __sgn_g1ca) * __sgn_g1cb; +# 639 +const _Tp __sgn2 = ((__sgn_gc * __sgn_gmd) * __sgn_g2a) * __sgn_g2b; +# 641 +_Tp __pre1, __pre2; +# 642 +if (__ok1 && __ok2) +# 643 +{ +# 644 +_Tp __ln_pre1 = ((__ln_gc + __ln_gd) - __ln_g1ca) - __ln_g1cb; +# 645 +_Tp __ln_pre2 = (((__ln_gc + __ln_gmd) - __ln_g2a) - __ln_g2b) + (__d * std::log(((_Tp)1) - __x)); +# 647 +if ((__ln_pre1 < __log_max) && (__ln_pre2 < __log_max)) +# 648 +{ +# 649 +__pre1 = std::exp(__ln_pre1); +# 650 +__pre2 = std::exp(__ln_pre2); +# 651 +__pre1 *= __sgn1; +# 652 +__pre2 *= __sgn2; +# 653 +} else +# 655 +{ +# 656 +std::__throw_runtime_error("Overflow of gamma functions in __hyperg_reflect"); +# 658 +} +# 659 +} else { +# 660 +if (__ok1 && (!__ok2)) +# 661 +{ +# 662 +_Tp __ln_pre1 = ((__ln_gc + __ln_gd) - __ln_g1ca) - __ln_g1cb; +# 663 +if (__ln_pre1 < __log_max) +# 664 +{ +# 665 +__pre1 = std::exp(__ln_pre1); +# 666 +__pre1 *= __sgn1; +# 667 +__pre2 = ((_Tp)0); +# 668 +} else +# 670 +{ +# 671 +std::__throw_runtime_error("Overflow of gamma functions in __hyperg_reflect"); +# 673 +} +# 674 +} else { +# 675 +if ((!__ok1) && __ok2) +# 676 +{ +# 677 +_Tp __ln_pre2 = (((__ln_gc + __ln_gmd) - __ln_g2a) - __ln_g2b) + (__d * std::log(((_Tp)1) - __x)); +# 679 +if (__ln_pre2 < __log_max) +# 680 +{ +# 681 +__pre1 = ((_Tp)0); +# 682 +__pre2 = std::exp(__ln_pre2); +# 683 +__pre2 *= __sgn2; +# 684 +} else +# 686 +{ +# 687 +std::__throw_runtime_error("Overflow of gamma functions in __hyperg_reflect"); +# 689 +} +# 690 +} else +# 692 +{ +# 693 +__pre1 = ((_Tp)0); +# 694 +__pre2 = ((_Tp)0); +# 695 +std::__throw_runtime_error("Underflow of gamma functions in __hyperg_reflect"); +# 697 +} } } +# 699 +const _Tp __F1 = __hyperg_series(__a, __b, ((_Tp)1) - __d, ((_Tp)1) - __x); +# 701 +const _Tp __F2 = __hyperg_series(__c - __a, __c - __b, ((_Tp)1) + __d, ((_Tp)1) - __x); +# 704 +const _Tp __F = (__pre1 * __F1) + (__pre2 * __F2); +# 706 +return __F; +# 707 +} +# 708 +} +# 728 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/hypergeometric.tcc" 3 +template< class _Tp> _Tp +# 730 +__hyperg(_Tp __a, _Tp __b, _Tp __c, _Tp __x) +# 731 +{ +# 733 +const _Tp __a_nint = std::nearbyint(__a); +# 734 +const _Tp __b_nint = std::nearbyint(__b); +# 735 +const _Tp __c_nint = std::nearbyint(__c); +# 741 +const _Tp __toler = ((_Tp)1000) * std::template numeric_limits< _Tp> ::epsilon(); +# 742 +if (std::abs(__x) >= ((_Tp)1)) { +# 743 +std::__throw_domain_error("Argument outside unit circle in __hyperg."); } else { +# 745 +if (((__isnan(__a) || __isnan(__b)) || __isnan(__c)) || __isnan(__x)) { +# 747 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 748 +if ((__c_nint == __c) && (__c_nint <= ((_Tp)0))) { +# 749 +return std::template numeric_limits< _Tp> ::infinity(); } else { +# 750 +if ((std::abs(__c - __b) < __toler) || (std::abs(__c - __a) < __toler)) { +# 751 +return std::pow(((_Tp)1) - __x, (__c - __a) - __b); } else { +# 752 +if ((__a >= ((_Tp)0)) && (__b >= ((_Tp)0)) && (__c >= ((_Tp)0)) && (__x >= ((_Tp)0)) && (__x < ((_Tp)(0.995L)))) { +# 754 +return __hyperg_series(__a, __b, __c, __x); } else { +# 755 +if ((std::abs(__a) < ((_Tp)10)) && (std::abs(__b) < ((_Tp)10))) +# 756 +{ +# 759 +if ((__a < ((_Tp)0)) && (std::abs(__a - __a_nint) < __toler)) { +# 760 +return __hyperg_series(__a_nint, __b, __c, __x); } else { +# 761 +if ((__b < ((_Tp)0)) && (std::abs(__b - __b_nint) < __toler)) { +# 762 +return __hyperg_series(__a, __b_nint, __c, __x); } else { +# 763 +if (__x < (-((_Tp)(0.25L)))) { +# 764 +return __hyperg_luke(__a, __b, __c, __x); } else { +# 765 +if (__x < ((_Tp)(0.5L))) { +# 766 +return __hyperg_series(__a, __b, __c, __x); } else { +# 768 +if (std::abs(__c) > ((_Tp)10)) { +# 769 +return __hyperg_series(__a, __b, __c, __x); } else { +# 771 +return __hyperg_reflect(__a, __b, __c, __x); } } } } } +# 772 +} else { +# 774 +return __hyperg_luke(__a, __b, __c, __x); } } } } } } +# 775 +} +# 776 +} +# 783 +} +# 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +namespace __detail { +# 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +template< class _Tp> _Tp +# 82 +__poly_legendre_p(unsigned __l, _Tp __x) +# 83 +{ +# 85 +if (__isnan(__x)) { +# 86 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 87 +if (__x == (+((_Tp)1))) { +# 88 +return +((_Tp)1); } else { +# 89 +if (__x == (-((_Tp)1))) { +# 90 +return (((__l % (2)) == (1)) ? -((_Tp)1) : (+((_Tp)1))); } else +# 92 +{ +# 93 +_Tp __p_lm2 = ((_Tp)1); +# 94 +if (__l == (0)) { +# 95 +return __p_lm2; } +# 97 +_Tp __p_lm1 = __x; +# 98 +if (__l == (1)) { +# 99 +return __p_lm1; } +# 101 +_Tp __p_l = (0); +# 102 +for (unsigned __ll = (2); __ll <= __l; ++__ll) +# 103 +{ +# 106 +__p_l = ((((((_Tp)2) * __x) * __p_lm1) - __p_lm2) - (((__x * __p_lm1) - __p_lm2) / ((_Tp)__ll))); +# 108 +__p_lm2 = __p_lm1; +# 109 +__p_lm1 = __p_l; +# 110 +} +# 112 +return __p_l; +# 113 +} } } +# 114 +} +# 136 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +template< class _Tp> _Tp +# 138 +__assoc_legendre_p(unsigned __l, unsigned __m, _Tp __x, _Tp +# 139 +__phase = (_Tp)(+1)) +# 140 +{ +# 142 +if (__m > __l) { +# 143 +return (_Tp)0; } else { +# 144 +if (__isnan(__x)) { +# 145 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 146 +if (__m == (0)) { +# 147 +return __poly_legendre_p(__l, __x); } else +# 149 +{ +# 150 +_Tp __p_mm = ((_Tp)1); +# 151 +if (__m > (0)) +# 152 +{ +# 155 +_Tp __root = std::sqrt(((_Tp)1) - __x) * std::sqrt(((_Tp)1) + __x); +# 156 +_Tp __fact = ((_Tp)1); +# 157 +for (unsigned __i = (1); __i <= __m; ++__i) +# 158 +{ +# 159 +__p_mm *= ((__phase * __fact) * __root); +# 160 +__fact += ((_Tp)2); +# 161 +} +# 162 +} +# 163 +if (__l == __m) { +# 164 +return __p_mm; } +# 166 +_Tp __p_mp1m = (((_Tp)(((2) * __m) + (1))) * __x) * __p_mm; +# 167 +if (__l == (__m + (1))) { +# 168 +return __p_mp1m; } +# 170 +_Tp __p_lm2m = __p_mm; +# 171 +_Tp __P_lm1m = __p_mp1m; +# 172 +_Tp __p_lm = ((_Tp)0); +# 173 +for (unsigned __j = __m + (2); __j <= __l; ++__j) +# 174 +{ +# 175 +__p_lm = ((((((_Tp)(((2) * __j) - (1))) * __x) * __P_lm1m) - (((_Tp)((__j + __m) - (1))) * __p_lm2m)) / ((_Tp)(__j - __m))); +# 177 +__p_lm2m = __P_lm1m; +# 178 +__P_lm1m = __p_lm; +# 179 +} +# 181 +return __p_lm; +# 182 +} } } +# 183 +} +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/legendre_function.tcc" 3 +template< class _Tp> _Tp +# 216 +__sph_legendre(unsigned __l, unsigned __m, _Tp __theta) +# 217 +{ +# 218 +if (__isnan(__theta)) { +# 219 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } +# 221 +const _Tp __x = std::cos(__theta); +# 223 +if (__m > __l) { +# 224 +return (_Tp)0; } else { +# 225 +if (__m == (0)) +# 226 +{ +# 227 +_Tp __P = __poly_legendre_p(__l, __x); +# 228 +_Tp __fact = std::sqrt(((_Tp)(((2) * __l) + (1))) / (((_Tp)4) * __numeric_constants< _Tp> ::__pi())); +# 230 +__P *= __fact; +# 231 +return __P; +# 232 +} else { +# 233 +if ((__x == ((_Tp)1)) || (__x == (-((_Tp)1)))) +# 234 +{ +# 236 +return (_Tp)0; +# 237 +} else +# 239 +{ +# 245 +const _Tp __sgn = ((__m % (2)) == (1)) ? -((_Tp)1) : ((_Tp)1); +# 246 +const _Tp __y_mp1m_factor = __x * std::sqrt((_Tp)(((2) * __m) + (3))); +# 248 +const _Tp __lncirc = std::log1p((-__x) * __x); +# 254 +const _Tp __lnpoch = std::lgamma((_Tp)(__m + ((_Tp)(0.5L)))) - std::lgamma((_Tp)__m); +# 260 +const _Tp __lnpre_val = ((-((_Tp)(0.25L))) * __numeric_constants< _Tp> ::__lnpi()) + (((_Tp)(0.5L)) * (__lnpoch + (__m * __lncirc))); +# 263 +const _Tp __sr = std::sqrt((((_Tp)2) + (((_Tp)1) / __m)) / (((_Tp)4) * __numeric_constants< _Tp> ::__pi())); +# 265 +_Tp __y_mm = (__sgn * __sr) * std::exp(__lnpre_val); +# 266 +_Tp __y_mp1m = __y_mp1m_factor * __y_mm; +# 268 +if (__l == __m) { +# 269 +return __y_mm; } else { +# 270 +if (__l == (__m + (1))) { +# 271 +return __y_mp1m; } else +# 273 +{ +# 274 +_Tp __y_lm = ((_Tp)0); +# 277 +for (unsigned __ll = __m + (2); __ll <= __l; ++__ll) +# 278 +{ +# 279 +const _Tp __rat1 = ((_Tp)(__ll - __m)) / ((_Tp)(__ll + __m)); +# 280 +const _Tp __rat2 = ((_Tp)((__ll - __m) - (1))) / ((_Tp)((__ll + __m) - (1))); +# 281 +const _Tp __fact1 = std::sqrt((__rat1 * ((_Tp)(((2) * __ll) + (1)))) * ((_Tp)(((2) * __ll) - (1)))); +# 283 +const _Tp __fact2 = std::sqrt(((__rat1 * __rat2) * ((_Tp)(((2) * __ll) + (1)))) / ((_Tp)(((2) * __ll) - (3)))); +# 285 +__y_lm = ((((__x * __y_mp1m) * __fact1) - ((((__ll + __m) - (1)) * __y_mm) * __fact2)) / ((_Tp)(__ll - __m))); +# 287 +__y_mm = __y_mp1m; +# 288 +__y_mp1m = __y_lm; +# 289 +} +# 291 +return __y_lm; +# 292 +} } +# 293 +} } } +# 294 +} +# 295 +} +# 302 +} +# 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +namespace __detail { +# 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> void +# 85 +__bessel_ik(_Tp __nu, _Tp __x, _Tp & +# 86 +__Inu, _Tp &__Knu, _Tp &__Ipnu, _Tp &__Kpnu) +# 87 +{ +# 88 +if (__x == ((_Tp)0)) +# 89 +{ +# 90 +if (__nu == ((_Tp)0)) +# 91 +{ +# 92 +__Inu = ((_Tp)1); +# 93 +__Ipnu = ((_Tp)0); +# 94 +} else { +# 95 +if (__nu == ((_Tp)1)) +# 96 +{ +# 97 +__Inu = ((_Tp)0); +# 98 +__Ipnu = ((_Tp)(0.5L)); +# 99 +} else +# 101 +{ +# 102 +__Inu = ((_Tp)0); +# 103 +__Ipnu = ((_Tp)0); +# 104 +} } +# 105 +__Knu = std::template numeric_limits< _Tp> ::infinity(); +# 106 +__Kpnu = (-std::template numeric_limits< _Tp> ::infinity()); +# 107 +return; +# 108 +} +# 110 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 111 +const _Tp __fp_min = ((_Tp)10) * std::template numeric_limits< _Tp> ::epsilon(); +# 112 +const int __max_iter = 15000; +# 113 +const _Tp __x_min = ((_Tp)2); +# 115 +const int __nl = static_cast< int>(__nu + ((_Tp)(0.5L))); +# 117 +const _Tp __mu = __nu - __nl; +# 118 +const _Tp __mu2 = __mu * __mu; +# 119 +const _Tp __xi = ((_Tp)1) / __x; +# 120 +const _Tp __xi2 = ((_Tp)2) * __xi; +# 121 +_Tp __h = __nu * __xi; +# 122 +if (__h < __fp_min) { +# 123 +__h = __fp_min; } +# 124 +_Tp __b = __xi2 * __nu; +# 125 +_Tp __d = ((_Tp)0); +# 126 +_Tp __c = __h; +# 127 +int __i; +# 128 +for (__i = 1; __i <= __max_iter; ++__i) +# 129 +{ +# 130 +__b += __xi2; +# 131 +__d = (((_Tp)1) / (__b + __d)); +# 132 +__c = (__b + (((_Tp)1) / __c)); +# 133 +const _Tp __del = __c * __d; +# 134 +__h *= __del; +# 135 +if (std::abs(__del - ((_Tp)1)) < __eps) { +# 136 +break; } +# 137 +} +# 138 +if (__i > __max_iter) { +# 139 +std::__throw_runtime_error("Argument x too large in __bessel_ik; try asymptotic expansion."); } +# 142 +_Tp __Inul = __fp_min; +# 143 +_Tp __Ipnul = __h * __Inul; +# 144 +_Tp __Inul1 = __Inul; +# 145 +_Tp __Ipnu1 = __Ipnul; +# 146 +_Tp __fact = __nu * __xi; +# 147 +for (int __l = __nl; __l >= 1; --__l) +# 148 +{ +# 149 +const _Tp __Inutemp = (__fact * __Inul) + __Ipnul; +# 150 +__fact -= __xi; +# 151 +__Ipnul = ((__fact * __Inutemp) + __Inul); +# 152 +__Inul = __Inutemp; +# 153 +} +# 154 +_Tp __f = __Ipnul / __Inul; +# 155 +_Tp __Kmu, __Knu1; +# 156 +if (__x < __x_min) +# 157 +{ +# 158 +const _Tp __x2 = __x / ((_Tp)2); +# 159 +const _Tp __pimu = __numeric_constants< _Tp> ::__pi() * __mu; +# 160 +const _Tp __fact = (std::abs(__pimu) < __eps) ? (_Tp)1 : (__pimu / std::sin(__pimu)); +# 162 +_Tp __d = (-std::log(__x2)); +# 163 +_Tp __e = __mu * __d; +# 164 +const _Tp __fact2 = (std::abs(__e) < __eps) ? (_Tp)1 : (std::sinh(__e) / __e); +# 166 +_Tp __gam1, __gam2, __gampl, __gammi; +# 167 +__gamma_temme(__mu, __gam1, __gam2, __gampl, __gammi); +# 168 +_Tp __ff = __fact * ((__gam1 * std::cosh(__e)) + ((__gam2 * __fact2) * __d)); +# 170 +_Tp __sum = __ff; +# 171 +__e = std::exp(__e); +# 172 +_Tp __p = __e / (((_Tp)2) * __gampl); +# 173 +_Tp __q = ((_Tp)1) / ((((_Tp)2) * __e) * __gammi); +# 174 +_Tp __c = ((_Tp)1); +# 175 +__d = (__x2 * __x2); +# 176 +_Tp __sum1 = __p; +# 177 +int __i; +# 178 +for (__i = 1; __i <= __max_iter; ++__i) +# 179 +{ +# 180 +__ff = ((((__i * __ff) + __p) + __q) / ((__i * __i) - __mu2)); +# 181 +__c *= (__d / __i); +# 182 +__p /= (__i - __mu); +# 183 +__q /= (__i + __mu); +# 184 +const _Tp __del = __c * __ff; +# 185 +__sum += __del; +# 186 +const _Tp __del1 = __c * (__p - (__i * __ff)); +# 187 +__sum1 += __del1; +# 188 +if (std::abs(__del) < (__eps * std::abs(__sum))) { +# 189 +break; } +# 190 +} +# 191 +if (__i > __max_iter) { +# 192 +std::__throw_runtime_error("Bessel k series failed to converge in __bessel_ik."); } +# 194 +__Kmu = __sum; +# 195 +__Knu1 = (__sum1 * __xi2); +# 196 +} else +# 198 +{ +# 199 +_Tp __b = ((_Tp)2) * (((_Tp)1) + __x); +# 200 +_Tp __d = ((_Tp)1) / __b; +# 201 +_Tp __delh = __d; +# 202 +_Tp __h = __delh; +# 203 +_Tp __q1 = ((_Tp)0); +# 204 +_Tp __q2 = ((_Tp)1); +# 205 +_Tp __a1 = ((_Tp)(0.25L)) - __mu2; +# 206 +_Tp __q = __c = __a1; +# 207 +_Tp __a = (-__a1); +# 208 +_Tp __s = ((_Tp)1) + (__q * __delh); +# 209 +int __i; +# 210 +for (__i = 2; __i <= __max_iter; ++__i) +# 211 +{ +# 212 +__a -= (2 * (__i - 1)); +# 213 +__c = (((-__a) * __c) / __i); +# 214 +const _Tp __qnew = (__q1 - (__b * __q2)) / __a; +# 215 +__q1 = __q2; +# 216 +__q2 = __qnew; +# 217 +__q += (__c * __qnew); +# 218 +__b += ((_Tp)2); +# 219 +__d = (((_Tp)1) / (__b + (__a * __d))); +# 220 +__delh = (((__b * __d) - ((_Tp)1)) * __delh); +# 221 +__h += __delh; +# 222 +const _Tp __dels = __q * __delh; +# 223 +__s += __dels; +# 224 +if (std::abs(__dels / __s) < __eps) { +# 225 +break; } +# 226 +} +# 227 +if (__i > __max_iter) { +# 228 +std::__throw_runtime_error("Steed\'s method failed in __bessel_ik."); } +# 230 +__h = (__a1 * __h); +# 231 +__Kmu = ((std::sqrt(__numeric_constants< _Tp> ::__pi() / (((_Tp)2) * __x)) * std::exp(-__x)) / __s); +# 233 +__Knu1 = ((__Kmu * (((__mu + __x) + ((_Tp)(0.5L))) - __h)) * __xi); +# 234 +} +# 236 +_Tp __Kpmu = ((__mu * __xi) * __Kmu) - __Knu1; +# 237 +_Tp __Inumu = __xi / ((__f * __Kmu) - __Kpmu); +# 238 +__Inu = ((__Inumu * __Inul1) / __Inul); +# 239 +__Ipnu = ((__Inumu * __Ipnu1) / __Inul); +# 240 +for (__i = 1; __i <= __nl; ++__i) +# 241 +{ +# 242 +const _Tp __Knutemp = (((__mu + __i) * __xi2) * __Knu1) + __Kmu; +# 243 +__Kmu = __Knu1; +# 244 +__Knu1 = __Knutemp; +# 245 +} +# 246 +__Knu = __Kmu; +# 247 +__Kpnu = (((__nu * __xi) * __Kmu) - __Knu1); +# 250 +} +# 267 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> _Tp +# 269 +__cyl_bessel_i(_Tp __nu, _Tp __x) +# 270 +{ +# 271 +if ((__nu < ((_Tp)0)) || (__x < ((_Tp)0))) { +# 272 +std::__throw_domain_error("Bad argument in __cyl_bessel_i."); } else { +# 274 +if (__isnan(__nu) || __isnan(__x)) { +# 275 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 276 +if ((__x * __x) < (((_Tp)10) * (__nu + ((_Tp)1)))) { +# 277 +return __cyl_bessel_ij_series(__nu, __x, +((_Tp)1), 200); } else +# 279 +{ +# 280 +_Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; +# 281 +__bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 282 +return __I_nu; +# 283 +} } } +# 284 +} +# 303 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> _Tp +# 305 +__cyl_bessel_k(_Tp __nu, _Tp __x) +# 306 +{ +# 307 +if ((__nu < ((_Tp)0)) || (__x < ((_Tp)0))) { +# 308 +std::__throw_domain_error("Bad argument in __cyl_bessel_k."); } else { +# 310 +if (__isnan(__nu) || __isnan(__x)) { +# 311 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else +# 313 +{ +# 314 +_Tp __I_nu, __K_nu, __Ip_nu, __Kp_nu; +# 315 +__bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 316 +return __K_nu; +# 317 +} } +# 318 +} +# 337 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> void +# 339 +__sph_bessel_ik(unsigned __n, _Tp __x, _Tp & +# 340 +__i_n, _Tp &__k_n, _Tp &__ip_n, _Tp &__kp_n) +# 341 +{ +# 342 +const _Tp __nu = ((_Tp)__n) + ((_Tp)(0.5L)); +# 344 +_Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; +# 345 +__bessel_ik(__nu, __x, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 347 +const _Tp __factor = __numeric_constants< _Tp> ::__sqrtpio2() / std::sqrt(__x); +# 350 +__i_n = (__factor * __I_nu); +# 351 +__k_n = (__factor * __K_nu); +# 352 +__ip_n = ((__factor * __Ip_nu) - (__i_n / (((_Tp)2) * __x))); +# 353 +__kp_n = ((__factor * __Kp_nu) - (__k_n / (((_Tp)2) * __x))); +# 356 +} +# 373 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/modified_bessel_func.tcc" 3 +template< class _Tp> void +# 375 +__airy(_Tp __x, _Tp &__Ai, _Tp &__Bi, _Tp &__Aip, _Tp &__Bip) +# 376 +{ +# 377 +const _Tp __absx = std::abs(__x); +# 378 +const _Tp __rootx = std::sqrt(__absx); +# 379 +const _Tp __z = ((((_Tp)2) * __absx) * __rootx) / ((_Tp)3); +# 380 +const _Tp _S_inf = std::template numeric_limits< _Tp> ::infinity(); +# 382 +if (__isnan(__x)) { +# 383 +__Bip = (__Aip = (__Bi = (__Ai = std::template numeric_limits< _Tp> ::quiet_NaN()))); } else { +# 384 +if (__z == _S_inf) +# 385 +{ +# 386 +__Aip = (__Ai = ((_Tp)0)); +# 387 +__Bip = (__Bi = _S_inf); +# 388 +} else { +# 389 +if (__z == (-_S_inf)) { +# 390 +__Bip = (__Aip = (__Bi = (__Ai = ((_Tp)0)))); } else { +# 391 +if (__x > ((_Tp)0)) +# 392 +{ +# 393 +_Tp __I_nu, __Ip_nu, __K_nu, __Kp_nu; +# 395 +__bessel_ik(((_Tp)1) / ((_Tp)3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 396 +__Ai = ((__rootx * __K_nu) / (__numeric_constants< _Tp> ::__sqrt3() * __numeric_constants< _Tp> ::__pi())); +# 399 +__Bi = (__rootx * ((__K_nu / __numeric_constants< _Tp> ::__pi()) + ((((_Tp)2) * __I_nu) / __numeric_constants< _Tp> ::__sqrt3()))); +# 402 +__bessel_ik(((_Tp)2) / ((_Tp)3), __z, __I_nu, __K_nu, __Ip_nu, __Kp_nu); +# 403 +__Aip = (((-__x) * __K_nu) / (__numeric_constants< _Tp> ::__sqrt3() * __numeric_constants< _Tp> ::__pi())); +# 406 +__Bip = (__x * ((__K_nu / __numeric_constants< _Tp> ::__pi()) + ((((_Tp)2) * __I_nu) / __numeric_constants< _Tp> ::__sqrt3()))); +# 409 +} else { +# 410 +if (__x < ((_Tp)0)) +# 411 +{ +# 412 +_Tp __J_nu, __Jp_nu, __N_nu, __Np_nu; +# 414 +__bessel_jn(((_Tp)1) / ((_Tp)3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 415 +__Ai = ((__rootx * (__J_nu - (__N_nu / __numeric_constants< _Tp> ::__sqrt3()))) / ((_Tp)2)); +# 417 +__Bi = (((-__rootx) * (__N_nu + (__J_nu / __numeric_constants< _Tp> ::__sqrt3()))) / ((_Tp)2)); +# 420 +__bessel_jn(((_Tp)2) / ((_Tp)3), __z, __J_nu, __N_nu, __Jp_nu, __Np_nu); +# 421 +__Aip = ((__absx * ((__N_nu / __numeric_constants< _Tp> ::__sqrt3()) + __J_nu)) / ((_Tp)2)); +# 423 +__Bip = ((__absx * ((__J_nu / __numeric_constants< _Tp> ::__sqrt3()) - __N_nu)) / ((_Tp)2)); +# 425 +} else +# 427 +{ +# 431 +__Ai = ((_Tp)(0.35502805388781723926L)); +# 432 +__Bi = (__Ai * __numeric_constants< _Tp> ::__sqrt3()); +# 437 +__Aip = (-((_Tp)(0.2588194037928067984L))); +# 438 +__Bip = ((-__Aip) * __numeric_constants< _Tp> ::__sqrt3()); +# 439 +} } } } } +# 442 +} +# 443 +} +# 449 +} +# 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +namespace __detail { +# 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +template< class _Tp> _Tp +# 74 +__poly_hermite_recursion(unsigned __n, _Tp __x) +# 75 +{ +# 77 +_Tp __H_0 = (1); +# 78 +if (__n == (0)) { +# 79 +return __H_0; } +# 82 +_Tp __H_1 = 2 * __x; +# 83 +if (__n == (1)) { +# 84 +return __H_1; } +# 87 +_Tp __H_n, __H_nm1, __H_nm2; +# 88 +unsigned __i; +# 89 +for (((__H_nm2 = __H_0), (__H_nm1 = __H_1)), (__i = (2)); __i <= __n; ++__i) +# 90 +{ +# 91 +__H_n = (2 * ((__x * __H_nm1) - ((__i - (1)) * __H_nm2))); +# 92 +__H_nm2 = __H_nm1; +# 93 +__H_nm1 = __H_n; +# 94 +} +# 96 +return __H_n; +# 97 +} +# 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_hermite.tcc" 3 +template< class _Tp> inline _Tp +# 116 +__poly_hermite(unsigned __n, _Tp __x) +# 117 +{ +# 118 +if (__isnan(__x)) { +# 119 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 121 +return __poly_hermite_recursion(__n, __x); } +# 122 +} +# 123 +} +# 129 +} +# 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +namespace __detail { +# 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tpa, class _Tp> _Tp +# 77 +__poly_laguerre_large_n(unsigned __n, _Tpa __alpha1, _Tp __x) +# 78 +{ +# 79 +const _Tp __a = (-((_Tp)__n)); +# 80 +const _Tp __b = ((_Tp)__alpha1) + ((_Tp)1); +# 81 +const _Tp __eta = (((_Tp)2) * __b) - (((_Tp)4) * __a); +# 82 +const _Tp __cos2th = __x / __eta; +# 83 +const _Tp __sin2th = ((_Tp)1) - __cos2th; +# 84 +const _Tp __th = std::acos(std::sqrt(__cos2th)); +# 85 +const _Tp __pre_h = ((((__numeric_constants< _Tp> ::__pi_2() * __numeric_constants< _Tp> ::__pi_2()) * __eta) * __eta) * __cos2th) * __sin2th; +# 90 +const _Tp __lg_b = std::lgamma(((_Tp)__n) + __b); +# 91 +const _Tp __lnfact = std::lgamma((_Tp)(__n + (1))); +# 97 +_Tp __pre_term1 = (((_Tp)(0.5L)) * (((_Tp)1) - __b)) * std::log((((_Tp)(0.25L)) * __x) * __eta); +# 99 +_Tp __pre_term2 = ((_Tp)(0.25L)) * std::log(__pre_h); +# 100 +_Tp __lnpre = (((__lg_b - __lnfact) + (((_Tp)(0.5L)) * __x)) + __pre_term1) - __pre_term2; +# 102 +_Tp __ser_term1 = std::sin(__a * __numeric_constants< _Tp> ::__pi()); +# 103 +_Tp __ser_term2 = std::sin(((((_Tp)(0.25L)) * __eta) * ((((_Tp)2) * __th) - std::sin(((_Tp)2) * __th))) + __numeric_constants< _Tp> ::__pi_4()); +# 107 +_Tp __ser = __ser_term1 + __ser_term2; +# 109 +return std::exp(__lnpre) * __ser; +# 110 +} +# 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tpa, class _Tp> _Tp +# 131 +__poly_laguerre_hyperg(unsigned __n, _Tpa __alpha1, _Tp __x) +# 132 +{ +# 133 +const _Tp __b = ((_Tp)__alpha1) + ((_Tp)1); +# 134 +const _Tp __mx = (-__x); +# 135 +const _Tp __tc_sgn = (__x < ((_Tp)0)) ? (_Tp)1 : (((__n % (2)) == (1)) ? -((_Tp)1) : ((_Tp)1)); +# 138 +_Tp __tc = ((_Tp)1); +# 139 +const _Tp __ax = std::abs(__x); +# 140 +for (unsigned __k = (1); __k <= __n; ++__k) { +# 141 +__tc *= (__ax / __k); } +# 143 +_Tp __term = __tc * __tc_sgn; +# 144 +_Tp __sum = __term; +# 145 +for (int __k = ((int)__n) - 1; __k >= 0; --__k) +# 146 +{ +# 147 +__term *= ((((__b + ((_Tp)__k)) / ((_Tp)(((int)__n) - __k))) * ((_Tp)(__k + 1))) / __mx); +# 149 +__sum += __term; +# 150 +} +# 152 +return __sum; +# 153 +} +# 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tpa, class _Tp> _Tp +# 187 +__poly_laguerre_recursion(unsigned __n, _Tpa __alpha1, _Tp __x) +# 188 +{ +# 190 +_Tp __l_0 = ((_Tp)1); +# 191 +if (__n == (0)) { +# 192 +return __l_0; } +# 195 +_Tp __l_1 = ((-__x) + ((_Tp)1)) + ((_Tp)__alpha1); +# 196 +if (__n == (1)) { +# 197 +return __l_1; } +# 200 +_Tp __l_n2 = __l_0; +# 201 +_Tp __l_n1 = __l_1; +# 202 +_Tp __l_n = ((_Tp)0); +# 203 +for (unsigned __nn = (2); __nn <= __n; ++__nn) +# 204 +{ +# 205 +__l_n = (((((((_Tp)(((2) * __nn) - (1))) + ((_Tp)__alpha1)) - __x) * __l_n1) / ((_Tp)__nn)) - (((((_Tp)(__nn - (1))) + ((_Tp)__alpha1)) * __l_n2) / ((_Tp)__nn))); +# 208 +__l_n2 = __l_n1; +# 209 +__l_n1 = __l_n; +# 210 +} +# 212 +return __l_n; +# 213 +} +# 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tpa, class _Tp> _Tp +# 246 +__poly_laguerre(unsigned __n, _Tpa __alpha1, _Tp __x) +# 247 +{ +# 248 +if (__x < ((_Tp)0)) { +# 249 +std::__throw_domain_error("Negative argument in __poly_laguerre."); } else { +# 252 +if (__isnan(__x)) { +# 253 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 254 +if (__n == (0)) { +# 255 +return (_Tp)1; } else { +# 256 +if (__n == (1)) { +# 257 +return (((_Tp)1) + ((_Tp)__alpha1)) - __x; } else { +# 258 +if (__x == ((_Tp)0)) +# 259 +{ +# 260 +_Tp __prod = ((_Tp)__alpha1) + ((_Tp)1); +# 261 +for (unsigned __k = (2); __k <= __n; ++__k) { +# 262 +__prod *= ((((_Tp)__alpha1) + ((_Tp)__k)) / ((_Tp)__k)); } +# 263 +return __prod; +# 264 +} else { +# 265 +if ((__n > (10000000)) && (((_Tp)__alpha1) > (-((_Tp)1))) && (__x < ((((_Tp)2) * (((_Tp)__alpha1) + ((_Tp)1))) + ((_Tp)((4) * __n))))) { +# 267 +return __poly_laguerre_large_n(__n, __alpha1, __x); } else { +# 268 +if ((((_Tp)__alpha1) >= ((_Tp)0)) || ((__x > ((_Tp)0)) && (((_Tp)__alpha1) < (-((_Tp)(__n + (1))))))) { +# 270 +return __poly_laguerre_recursion(__n, __alpha1, __x); } else { +# 272 +return __poly_laguerre_hyperg(__n, __alpha1, __x); } } } } } } } +# 273 +} +# 296 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tp> inline _Tp +# 298 +__assoc_laguerre(unsigned __n, unsigned __m, _Tp __x) +# 299 +{ return __poly_laguerre< unsigned, _Tp> (__n, __m, __x); } +# 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/poly_laguerre.tcc" 3 +template< class _Tp> inline _Tp +# 318 +__laguerre(unsigned __n, _Tp __x) +# 319 +{ return __poly_laguerre< unsigned, _Tp> (__n, 0, __x); } +# 320 +} +# 327 +} +# 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +namespace __detail { +# 78 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 80 +__riemann_zeta_sum(_Tp __s) +# 81 +{ +# 83 +if (__s < ((_Tp)1)) { +# 84 +std::__throw_domain_error("Bad argument in zeta sum."); } +# 86 +const unsigned max_iter = (10000); +# 87 +_Tp __zeta = ((_Tp)0); +# 88 +for (unsigned __k = (1); __k < max_iter; ++__k) +# 89 +{ +# 90 +_Tp __term = std::pow(static_cast< _Tp>(__k), -__s); +# 91 +if (__term < std::template numeric_limits< _Tp> ::epsilon()) +# 92 +{ +# 93 +break; +# 94 +} +# 95 +__zeta += __term; +# 96 +} +# 98 +return __zeta; +# 99 +} +# 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 117 +__riemann_zeta_alt(_Tp __s) +# 118 +{ +# 119 +_Tp __sgn = ((_Tp)1); +# 120 +_Tp __zeta = ((_Tp)0); +# 121 +for (unsigned __i = (1); __i < (10000000); ++__i) +# 122 +{ +# 123 +_Tp __term = __sgn / std::pow(__i, __s); +# 124 +if (std::abs(__term) < std::template numeric_limits< _Tp> ::epsilon()) { +# 125 +break; } +# 126 +__zeta += __term; +# 127 +__sgn *= ((_Tp)(-1)); +# 128 +} +# 129 +__zeta /= (((_Tp)1) - std::pow((_Tp)2, ((_Tp)1) - __s)); +# 131 +return __zeta; +# 132 +} +# 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 159 +__riemann_zeta_glob(_Tp __s) +# 160 +{ +# 161 +_Tp __zeta = ((_Tp)0); +# 163 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 165 +const _Tp __max_bincoeff = (std::template numeric_limits< _Tp> ::max_exponent10 * std::log((_Tp)10)) - ((_Tp)1); +# 170 +if (__s < ((_Tp)0)) +# 171 +{ +# 173 +if (std::fmod(__s, (_Tp)2) == ((_Tp)0)) { +# 174 +return (_Tp)0; } else +# 177 +{ +# 178 +_Tp __zeta = __riemann_zeta_glob(((_Tp)1) - __s); +# 179 +__zeta *= (((std::pow(((_Tp)2) * __numeric_constants< _Tp> ::__pi(), __s) * std::sin(__numeric_constants< _Tp> ::__pi_2() * __s)) * std::exp(std::lgamma(((_Tp)1) - __s))) / __numeric_constants< _Tp> ::__pi()); +# 188 +return __zeta; +# 189 +} +# 190 +} +# 192 +_Tp __num = ((_Tp)(0.5L)); +# 193 +const unsigned __maxit = (10000); +# 194 +for (unsigned __i = (0); __i < __maxit; ++__i) +# 195 +{ +# 196 +bool __punt = false; +# 197 +_Tp __sgn = ((_Tp)1); +# 198 +_Tp __term = ((_Tp)0); +# 199 +for (unsigned __j = (0); __j <= __i; ++__j) +# 200 +{ +# 202 +_Tp __bincoeff = (std::lgamma((_Tp)((1) + __i)) - std::lgamma((_Tp)((1) + __j))) - std::lgamma((_Tp)(((1) + __i) - __j)); +# 210 +if (__bincoeff > __max_bincoeff) +# 211 +{ +# 213 +__punt = true; +# 214 +break; +# 215 +} +# 216 +__bincoeff = std::exp(__bincoeff); +# 217 +__term += ((__sgn * __bincoeff) * std::pow((_Tp)((1) + __j), -__s)); +# 218 +__sgn *= ((_Tp)(-1)); +# 219 +} +# 220 +if (__punt) { +# 221 +break; } +# 222 +__term *= __num; +# 223 +__zeta += __term; +# 224 +if (std::abs(__term / __zeta) < __eps) { +# 225 +break; } +# 226 +__num *= ((_Tp)(0.5L)); +# 227 +} +# 229 +__zeta /= (((_Tp)1) - std::pow((_Tp)2, ((_Tp)1) - __s)); +# 231 +return __zeta; +# 232 +} +# 252 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 254 +__riemann_zeta_product(_Tp __s) +# 255 +{ +# 256 +static const _Tp __prime[] = {((_Tp)2), ((_Tp)3), ((_Tp)5), ((_Tp)7), ((_Tp)11), ((_Tp)13), ((_Tp)17), ((_Tp)19), ((_Tp)23), ((_Tp)29), ((_Tp)31), ((_Tp)37), ((_Tp)41), ((_Tp)43), ((_Tp)47), ((_Tp)53), ((_Tp)59), ((_Tp)61), ((_Tp)67), ((_Tp)71), ((_Tp)73), ((_Tp)79), ((_Tp)83), ((_Tp)89), ((_Tp)97), ((_Tp)101), ((_Tp)103), ((_Tp)107), ((_Tp)109)}; +# 262 +static const unsigned __num_primes = (sizeof(__prime) / sizeof(_Tp)); +# 264 +_Tp __zeta = ((_Tp)1); +# 265 +for (unsigned __i = (0); __i < __num_primes; ++__i) +# 266 +{ +# 267 +const _Tp __fact = ((_Tp)1) - std::pow(__prime[__i], -__s); +# 268 +__zeta *= __fact; +# 269 +if ((((_Tp)1) - __fact) < std::template numeric_limits< _Tp> ::epsilon()) { +# 270 +break; } +# 271 +} +# 273 +__zeta = (((_Tp)1) / __zeta); +# 275 +return __zeta; +# 276 +} +# 293 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 295 +__riemann_zeta(_Tp __s) +# 296 +{ +# 297 +if (__isnan(__s)) { +# 298 +return std::template numeric_limits< _Tp> ::quiet_NaN(); } else { +# 299 +if (__s == ((_Tp)1)) { +# 300 +return std::template numeric_limits< _Tp> ::infinity(); } else { +# 301 +if (__s < (-((_Tp)19))) +# 302 +{ +# 303 +_Tp __zeta = __riemann_zeta_product(((_Tp)1) - __s); +# 304 +__zeta *= (((std::pow(((_Tp)2) * __numeric_constants< _Tp> ::__pi(), __s) * std::sin(__numeric_constants< _Tp> ::__pi_2() * __s)) * std::exp(std::lgamma(((_Tp)1) - __s))) / __numeric_constants< _Tp> ::__pi()); +# 312 +return __zeta; +# 313 +} else { +# 314 +if (__s < ((_Tp)20)) +# 315 +{ +# 317 +bool __glob = true; +# 318 +if (__glob) { +# 319 +return __riemann_zeta_glob(__s); } else +# 321 +{ +# 322 +if (__s > ((_Tp)1)) { +# 323 +return __riemann_zeta_sum(__s); } else +# 325 +{ +# 326 +_Tp __zeta = ((std::pow(((_Tp)2) * __numeric_constants< _Tp> ::__pi(), __s) * std::sin(__numeric_constants< _Tp> ::__pi_2() * __s)) * std::tgamma(((_Tp)1) - __s)) * __riemann_zeta_sum(((_Tp)1) - __s); +# 335 +return __zeta; +# 336 +} +# 337 +} +# 338 +} else { +# 340 +return __riemann_zeta_product(__s); } } } } +# 341 +} +# 365 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> _Tp +# 367 +__hurwitz_zeta_glob(_Tp __a, _Tp __s) +# 368 +{ +# 369 +_Tp __zeta = ((_Tp)0); +# 371 +const _Tp __eps = std::template numeric_limits< _Tp> ::epsilon(); +# 373 +const _Tp __max_bincoeff = (std::template numeric_limits< _Tp> ::max_exponent10 * std::log((_Tp)10)) - ((_Tp)1); +# 376 +const unsigned __maxit = (10000); +# 377 +for (unsigned __i = (0); __i < __maxit; ++__i) +# 378 +{ +# 379 +bool __punt = false; +# 380 +_Tp __sgn = ((_Tp)1); +# 381 +_Tp __term = ((_Tp)0); +# 382 +for (unsigned __j = (0); __j <= __i; ++__j) +# 383 +{ +# 385 +_Tp __bincoeff = (std::lgamma((_Tp)((1) + __i)) - std::lgamma((_Tp)((1) + __j))) - std::lgamma((_Tp)(((1) + __i) - __j)); +# 393 +if (__bincoeff > __max_bincoeff) +# 394 +{ +# 396 +__punt = true; +# 397 +break; +# 398 +} +# 399 +__bincoeff = std::exp(__bincoeff); +# 400 +__term += ((__sgn * __bincoeff) * std::pow((_Tp)(__a + __j), -__s)); +# 401 +__sgn *= ((_Tp)(-1)); +# 402 +} +# 403 +if (__punt) { +# 404 +break; } +# 405 +__term /= ((_Tp)(__i + (1))); +# 406 +if (std::abs(__term / __zeta) < __eps) { +# 407 +break; } +# 408 +__zeta += __term; +# 409 +} +# 411 +__zeta /= (__s - ((_Tp)1)); +# 413 +return __zeta; +# 414 +} +# 430 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/tr1/riemann_zeta.tcc" 3 +template< class _Tp> inline _Tp +# 432 +__hurwitz_zeta(_Tp __a, _Tp __s) +# 433 +{ return __hurwitz_zeta_glob(__a, __s); } +# 434 +} +# 441 +} +# 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 204 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float assoc_laguerref(unsigned __n, unsigned __m, float __x) +# 205 +{ return __detail::__assoc_laguerre< float> (__n, __m, __x); } +# 214 +inline long double assoc_laguerrel(unsigned __n, unsigned __m, long double __x) +# 215 +{ return __detail::__assoc_laguerre< long double> (__n, __m, __x); } +# 248 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 250 +assoc_laguerre(unsigned __n, unsigned __m, _Tp __x) +# 251 +{ +# 252 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 253 +return __detail::__assoc_laguerre< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __m, __x); +# 254 +} +# 265 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float assoc_legendref(unsigned __l, unsigned __m, float __x) +# 266 +{ return __detail::__assoc_legendre_p< float> (__l, __m, __x); } +# 274 +inline long double assoc_legendrel(unsigned __l, unsigned __m, long double __x) +# 275 +{ return __detail::__assoc_legendre_p< long double> (__l, __m, __x); } +# 294 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 296 +assoc_legendre(unsigned __l, unsigned __m, _Tp __x) +# 297 +{ +# 298 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 299 +return __detail::__assoc_legendre_p< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __m, __x); +# 300 +} +# 310 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float betaf(float __a, float __b) +# 311 +{ return __detail::__beta< float> (__a, __b); } +# 320 +inline long double betal(long double __a, long double __b) +# 321 +{ return __detail::__beta< long double> (__a, __b); } +# 339 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpa, class _Tpb> inline typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type +# 341 +beta(_Tpa __a, _Tpb __b) +# 342 +{ +# 343 +typedef typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type __type; +# 344 +return __detail::__beta< typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type> (__a, __b); +# 345 +} +# 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float comp_ellint_1f(float __k) +# 357 +{ return __detail::__comp_ellint_1< float> (__k); } +# 366 +inline long double comp_ellint_1l(long double __k) +# 367 +{ return __detail::__comp_ellint_1< long double> (__k); } +# 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 389 +comp_ellint_1(_Tp __k) +# 390 +{ +# 391 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 392 +return __detail::__comp_ellint_1< typename __gnu_cxx::__promote< _Tp> ::__type> (__k); +# 393 +} +# 404 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float comp_ellint_2f(float __k) +# 405 +{ return __detail::__comp_ellint_2< float> (__k); } +# 414 +inline long double comp_ellint_2l(long double __k) +# 415 +{ return __detail::__comp_ellint_2< long double> (__k); } +# 434 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 436 +comp_ellint_2(_Tp __k) +# 437 +{ +# 438 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 439 +return __detail::__comp_ellint_2< typename __gnu_cxx::__promote< _Tp> ::__type> (__k); +# 440 +} +# 451 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float comp_ellint_3f(float __k, float __nu) +# 452 +{ return __detail::__comp_ellint_3< float> (__k, __nu); } +# 461 +inline long double comp_ellint_3l(long double __k, long double __nu) +# 462 +{ return __detail::__comp_ellint_3< long double> (__k, __nu); } +# 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp, class _Tpn> inline typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type +# 487 +comp_ellint_3(_Tp __k, _Tpn __nu) +# 488 +{ +# 489 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type __type; +# 490 +return __detail::__comp_ellint_3< typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type> (__k, __nu); +# 491 +} +# 502 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float cyl_bessel_if(float __nu, float __x) +# 503 +{ return __detail::__cyl_bessel_i< float> (__nu, __x); } +# 512 +inline long double cyl_bessel_il(long double __nu, long double __x) +# 513 +{ return __detail::__cyl_bessel_i< long double> (__nu, __x); } +# 531 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 533 +cyl_bessel_i(_Tpnu __nu, _Tp __x) +# 534 +{ +# 535 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 536 +return __detail::__cyl_bessel_i< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 537 +} +# 548 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float cyl_bessel_jf(float __nu, float __x) +# 549 +{ return __detail::__cyl_bessel_j< float> (__nu, __x); } +# 558 +inline long double cyl_bessel_jl(long double __nu, long double __x) +# 559 +{ return __detail::__cyl_bessel_j< long double> (__nu, __x); } +# 577 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 579 +cyl_bessel_j(_Tpnu __nu, _Tp __x) +# 580 +{ +# 581 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 582 +return __detail::__cyl_bessel_j< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 583 +} +# 594 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float cyl_bessel_kf(float __nu, float __x) +# 595 +{ return __detail::__cyl_bessel_k< float> (__nu, __x); } +# 604 +inline long double cyl_bessel_kl(long double __nu, long double __x) +# 605 +{ return __detail::__cyl_bessel_k< long double> (__nu, __x); } +# 629 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 631 +cyl_bessel_k(_Tpnu __nu, _Tp __x) +# 632 +{ +# 633 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 634 +return __detail::__cyl_bessel_k< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 635 +} +# 646 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float cyl_neumannf(float __nu, float __x) +# 647 +{ return __detail::__cyl_neumann_n< float> (__nu, __x); } +# 656 +inline long double cyl_neumannl(long double __nu, long double __x) +# 657 +{ return __detail::__cyl_neumann_n< long double> (__nu, __x); } +# 677 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 679 +cyl_neumann(_Tpnu __nu, _Tp __x) +# 680 +{ +# 681 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 682 +return __detail::__cyl_neumann_n< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 683 +} +# 694 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float ellint_1f(float __k, float __phi) +# 695 +{ return __detail::__ellint_1< float> (__k, __phi); } +# 704 +inline long double ellint_1l(long double __k, long double __phi) +# 705 +{ return __detail::__ellint_1< long double> (__k, __phi); } +# 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp, class _Tpp> inline typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type +# 727 +ellint_1(_Tp __k, _Tpp __phi) +# 728 +{ +# 729 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type __type; +# 730 +return __detail::__ellint_1< typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type> (__k, __phi); +# 731 +} +# 742 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float ellint_2f(float __k, float __phi) +# 743 +{ return __detail::__ellint_2< float> (__k, __phi); } +# 752 +inline long double ellint_2l(long double __k, long double __phi) +# 753 +{ return __detail::__ellint_2< long double> (__k, __phi); } +# 773 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp, class _Tpp> inline typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type +# 775 +ellint_2(_Tp __k, _Tpp __phi) +# 776 +{ +# 777 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type __type; +# 778 +return __detail::__ellint_2< typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type> (__k, __phi); +# 779 +} +# 790 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float ellint_3f(float __k, float __nu, float __phi) +# 791 +{ return __detail::__ellint_3< float> (__k, __nu, __phi); } +# 800 +inline long double ellint_3l(long double __k, long double __nu, long double __phi) +# 801 +{ return __detail::__ellint_3< long double> (__k, __nu, __phi); } +# 826 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp, class _Tpn, class _Tpp> inline typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type +# 828 +ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) +# 829 +{ +# 830 +typedef typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type __type; +# 831 +return __detail::__ellint_3< typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type> (__k, __nu, __phi); +# 832 +} +# 842 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float expintf(float __x) +# 843 +{ return __detail::__expint< float> (__x); } +# 852 +inline long double expintl(long double __x) +# 853 +{ return __detail::__expint< long double> (__x); } +# 866 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 868 +expint(_Tp __x) +# 869 +{ +# 870 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 871 +return __detail::__expint< typename __gnu_cxx::__promote< _Tp> ::__type> (__x); +# 872 +} +# 883 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float hermitef(unsigned __n, float __x) +# 884 +{ return __detail::__poly_hermite< float> (__n, __x); } +# 893 +inline long double hermitel(unsigned __n, long double __x) +# 894 +{ return __detail::__poly_hermite< long double> (__n, __x); } +# 914 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 916 +hermite(unsigned __n, _Tp __x) +# 917 +{ +# 918 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 919 +return __detail::__poly_hermite< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 920 +} +# 931 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float laguerref(unsigned __n, float __x) +# 932 +{ return __detail::__laguerre< float> (__n, __x); } +# 941 +inline long double laguerrel(unsigned __n, long double __x) +# 942 +{ return __detail::__laguerre< long double> (__n, __x); } +# 958 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 960 +laguerre(unsigned __n, _Tp __x) +# 961 +{ +# 962 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 963 +return __detail::__laguerre< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 964 +} +# 975 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float legendref(unsigned __l, float __x) +# 976 +{ return __detail::__poly_legendre_p< float> (__l, __x); } +# 985 +inline long double legendrel(unsigned __l, long double __x) +# 986 +{ return __detail::__poly_legendre_p< long double> (__l, __x); } +# 1003 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1005 +legendre(unsigned __l, _Tp __x) +# 1006 +{ +# 1007 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1008 +return __detail::__poly_legendre_p< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __x); +# 1009 +} +# 1020 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float riemann_zetaf(float __s) +# 1021 +{ return __detail::__riemann_zeta< float> (__s); } +# 1030 +inline long double riemann_zetal(long double __s) +# 1031 +{ return __detail::__riemann_zeta< long double> (__s); } +# 1054 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1056 +riemann_zeta(_Tp __s) +# 1057 +{ +# 1058 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1059 +return __detail::__riemann_zeta< typename __gnu_cxx::__promote< _Tp> ::__type> (__s); +# 1060 +} +# 1071 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float sph_besself(unsigned __n, float __x) +# 1072 +{ return __detail::__sph_bessel< float> (__n, __x); } +# 1081 +inline long double sph_bessell(unsigned __n, long double __x) +# 1082 +{ return __detail::__sph_bessel< long double> (__n, __x); } +# 1098 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1100 +sph_bessel(unsigned __n, _Tp __x) +# 1101 +{ +# 1102 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1103 +return __detail::__sph_bessel< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 1104 +} +# 1115 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float sph_legendref(unsigned __l, unsigned __m, float __theta) +# 1116 +{ return __detail::__sph_legendre< float> (__l, __m, __theta); } +# 1126 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline long double sph_legendrel(unsigned __l, unsigned __m, long double __theta) +# 1127 +{ return __detail::__sph_legendre< long double> (__l, __m, __theta); } +# 1145 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1147 +sph_legendre(unsigned __l, unsigned __m, _Tp __theta) +# 1148 +{ +# 1149 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1150 +return __detail::__sph_legendre< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __m, __theta); +# 1151 +} +# 1162 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float sph_neumannf(unsigned __n, float __x) +# 1163 +{ return __detail::__sph_neumann< float> (__n, __x); } +# 1172 +inline long double sph_neumannl(unsigned __n, long double __x) +# 1173 +{ return __detail::__sph_neumann< long double> (__n, __x); } +# 1189 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1191 +sph_neumann(unsigned __n, _Tp __x) +# 1192 +{ +# 1193 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1194 +return __detail::__sph_neumann< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 1195 +} +# 1200 +} +# 1203 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 1217 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float airy_aif(float __x) +# 1218 +{ +# 1219 +float __Ai, __Bi, __Aip, __Bip; +# 1220 +std::__detail::__airy< float> (__x, __Ai, __Bi, __Aip, __Bip); +# 1221 +return __Ai; +# 1222 +} +# 1228 +inline long double airy_ail(long double __x) +# 1229 +{ +# 1230 +long double __Ai, __Bi, __Aip, __Bip; +# 1231 +std::__detail::__airy< long double> (__x, __Ai, __Bi, __Aip, __Bip); +# 1232 +return __Ai; +# 1233 +} +# 1238 +template< class _Tp> inline typename __promote< _Tp> ::__type +# 1240 +airy_ai(_Tp __x) +# 1241 +{ +# 1242 +typedef typename __promote< _Tp> ::__type __type; +# 1243 +__type __Ai, __Bi, __Aip, __Bip; +# 1244 +std::__detail::__airy< typename __promote< _Tp> ::__type> (__x, __Ai, __Bi, __Aip, __Bip); +# 1245 +return __Ai; +# 1246 +} +# 1252 +inline float airy_bif(float __x) +# 1253 +{ +# 1254 +float __Ai, __Bi, __Aip, __Bip; +# 1255 +std::__detail::__airy< float> (__x, __Ai, __Bi, __Aip, __Bip); +# 1256 +return __Bi; +# 1257 +} +# 1263 +inline long double airy_bil(long double __x) +# 1264 +{ +# 1265 +long double __Ai, __Bi, __Aip, __Bip; +# 1266 +std::__detail::__airy< long double> (__x, __Ai, __Bi, __Aip, __Bip); +# 1267 +return __Bi; +# 1268 +} +# 1273 +template< class _Tp> inline typename __promote< _Tp> ::__type +# 1275 +airy_bi(_Tp __x) +# 1276 +{ +# 1277 +typedef typename __promote< _Tp> ::__type __type; +# 1278 +__type __Ai, __Bi, __Aip, __Bip; +# 1279 +std::__detail::__airy< typename __promote< _Tp> ::__type> (__x, __Ai, __Bi, __Aip, __Bip); +# 1280 +return __Bi; +# 1281 +} +# 1293 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float conf_hypergf(float __a, float __c, float __x) +# 1294 +{ return std::__detail::__conf_hyperg< float> (__a, __c, __x); } +# 1304 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline long double conf_hypergl(long double __a, long double __c, long double __x) +# 1305 +{ return std::__detail::__conf_hyperg< long double> (__a, __c, __x); } +# 1323 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpa, class _Tpc, class _Tp> inline typename __promote_3< _Tpa, _Tpc, _Tp> ::__type +# 1325 +conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x) +# 1326 +{ +# 1327 +typedef typename __promote_3< _Tpa, _Tpc, _Tp> ::__type __type; +# 1328 +return std::__detail::__conf_hyperg< typename __promote_3< _Tpa, _Tpc, _Tp> ::__type> (__a, __c, __x); +# 1329 +} +# 1341 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline float hypergf(float __a, float __b, float __c, float __x) +# 1342 +{ return std::__detail::__hyperg< float> (__a, __b, __c, __x); } +# 1352 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +inline long double hypergl(long double __a, long double __b, long double __c, long double __x) +# 1353 +{ return std::__detail::__hyperg< long double> (__a, __b, __c, __x); } +# 1372 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/specfun.h" 3 +template< class _Tpa, class _Tpb, class _Tpc, class _Tp> inline typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type +# 1374 +hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) +# 1375 +{ +# 1377 +typedef typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type __type; +# 1378 +return std::__detail::__hyperg< typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type> (__a, __b, __c, __x); +# 1379 +} +# 1383 +} +# 3909 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/cmath" 3 +} +# 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/math.h" 3 +using std::abs; +# 39 +using std::acos; +# 40 +using std::asin; +# 41 +using std::atan; +# 42 +using std::atan2; +# 43 +using std::cos; +# 44 +using std::sin; +# 45 +using std::tan; +# 46 +using std::cosh; +# 47 +using std::sinh; +# 48 +using std::tanh; +# 49 +using std::exp; +# 50 +using std::frexp; +# 51 +using std::ldexp; +# 52 +using std::log; +# 53 +using std::log10; +# 54 +using std::modf; +# 55 +using std::pow; +# 56 +using std::sqrt; +# 57 +using std::ceil; +# 58 +using std::fabs; +# 59 +using std::floor; +# 60 +using std::fmod; +# 63 +using std::fpclassify; +# 64 +using std::isfinite; +# 65 +using std::isinf; +# 66 +using std::isnan; +# 67 +using std::isnormal; +# 68 +using std::signbit; +# 69 +using std::isgreater; +# 70 +using std::isgreaterequal; +# 71 +using std::isless; +# 72 +using std::islessequal; +# 73 +using std::islessgreater; +# 74 +using std::isunordered; +# 78 +using std::acosh; +# 79 +using std::asinh; +# 80 +using std::atanh; +# 81 +using std::cbrt; +# 82 +using std::copysign; +# 83 +using std::erf; +# 84 +using std::erfc; +# 85 +using std::exp2; +# 86 +using std::expm1; +# 87 +using std::fdim; +# 88 +using std::fma; +# 89 +using std::fmax; +# 90 +using std::fmin; +# 91 +using std::hypot; +# 92 +using std::ilogb; +# 93 +using std::lgamma; +# 94 +using std::llrint; +# 95 +using std::llround; +# 96 +using std::log1p; +# 97 +using std::log2; +# 98 +using std::logb; +# 99 +using std::lrint; +# 100 +using std::lround; +# 101 +using std::nearbyint; +# 102 +using std::nextafter; +# 103 +using std::nexttoward; +# 104 +using std::remainder; +# 105 +using std::remquo; +# 106 +using std::rint; +# 107 +using std::round; +# 108 +using std::scalbln; +# 109 +using std::scalbn; +# 110 +using std::tgamma; +# 111 +using std::trunc; +# 4653 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 4654 +constexpr bool signbit(float x); +# 4655 +constexpr bool signbit(double x); +# 4656 +constexpr bool signbit(long double x); +# 4657 +constexpr bool isfinite(float x); +# 4658 +constexpr bool isfinite(double x); +# 4659 +constexpr bool isfinite(long double x); +# 4660 +constexpr bool isnan(float x); +# 4665 +constexpr bool isnan(double x); +# 4667 +constexpr bool isnan(long double x); +# 4668 +constexpr bool isinf(float x); +# 4673 +constexpr bool isinf(double x); +# 4675 +constexpr bool isinf(long double x); +# 4676 +} +# 4832 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 4834 +template< class T> extern T __pow_helper(T, int); +# 4835 +template< class T> extern T __cmath_power(T, unsigned); +# 4836 +} +# 4838 +using std::abs; +# 4839 +using std::fabs; +# 4840 +using std::ceil; +# 4841 +using std::floor; +# 4842 +using std::sqrt; +# 4844 +using std::pow; +# 4846 +using std::log; +# 4847 +using std::log10; +# 4848 +using std::fmod; +# 4849 +using std::modf; +# 4850 +using std::exp; +# 4851 +using std::frexp; +# 4852 +using std::ldexp; +# 4853 +using std::asin; +# 4854 +using std::sin; +# 4855 +using std::sinh; +# 4856 +using std::acos; +# 4857 +using std::cos; +# 4858 +using std::cosh; +# 4859 +using std::atan; +# 4860 +using std::atan2; +# 4861 +using std::tan; +# 4862 +using std::tanh; +# 5243 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 5252 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern inline long long abs(long long); +# 5272 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern inline long abs(long a); +# 5273 +extern constexpr float abs(float); +# 5274 +extern constexpr double abs(double); +# 5275 +extern constexpr float fabs(float); +# 5276 +extern constexpr float ceil(float); +# 5277 +extern constexpr float floor(float); +# 5278 +extern constexpr float sqrt(float); +# 5279 +extern constexpr float pow(float, float); +# 5284 +template< class _Tp, class _Up> extern constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type pow(_Tp, _Up); +# 5294 +extern constexpr float log(float); +# 5295 +extern constexpr float log10(float); +# 5296 +extern constexpr float fmod(float, float); +# 5297 +extern inline float modf(float, float *); +# 5298 +extern constexpr float exp(float); +# 5299 +extern inline float frexp(float, int *); +# 5300 +extern constexpr float ldexp(float, int); +# 5301 +extern constexpr float asin(float); +# 5302 +extern constexpr float sin(float); +# 5303 +extern constexpr float sinh(float); +# 5304 +extern constexpr float acos(float); +# 5305 +extern constexpr float cos(float); +# 5306 +extern constexpr float cosh(float); +# 5307 +extern constexpr float atan(float); +# 5308 +extern constexpr float atan2(float, float); +# 5309 +extern constexpr float tan(float); +# 5310 +extern constexpr float tanh(float); +# 5399 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 5505 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +namespace std { +# 5506 +constexpr float logb(float a); +# 5507 +constexpr int ilogb(float a); +# 5508 +constexpr float scalbn(float a, int b); +# 5509 +constexpr float scalbln(float a, long b); +# 5510 +constexpr float exp2(float a); +# 5511 +constexpr float expm1(float a); +# 5512 +constexpr float log2(float a); +# 5513 +constexpr float log1p(float a); +# 5514 +constexpr float acosh(float a); +# 5515 +constexpr float asinh(float a); +# 5516 +constexpr float atanh(float a); +# 5517 +constexpr float hypot(float a, float b); +# 5518 +constexpr float cbrt(float a); +# 5519 +constexpr float erf(float a); +# 5520 +constexpr float erfc(float a); +# 5521 +constexpr float lgamma(float a); +# 5522 +constexpr float tgamma(float a); +# 5523 +constexpr float copysign(float a, float b); +# 5524 +constexpr float nextafter(float a, float b); +# 5525 +constexpr float remainder(float a, float b); +# 5526 +inline float remquo(float a, float b, int * quo); +# 5527 +constexpr float round(float a); +# 5528 +constexpr long lround(float a); +# 5529 +constexpr long long llround(float a); +# 5530 +constexpr float trunc(float a); +# 5531 +constexpr float rint(float a); +# 5532 +constexpr long lrint(float a); +# 5533 +constexpr long long llrint(float a); +# 5534 +constexpr float nearbyint(float a); +# 5535 +constexpr float fdim(float a, float b); +# 5536 +constexpr float fma(float a, float b, float c); +# 5537 +constexpr float fmax(float a, float b); +# 5538 +constexpr float fmin(float a, float b); +# 5539 +} +# 5644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline float exp10(const float a); +# 5646 +static inline float rsqrt(const float a); +# 5648 +static inline float rcbrt(const float a); +# 5650 +static inline float sinpi(const float a); +# 5652 +static inline float cospi(const float a); +# 5654 +static inline void sincospi(const float a, float *const sptr, float *const cptr); +# 5656 +static inline void sincos(const float a, float *const sptr, float *const cptr); +# 5658 +static inline float j0(const float a); +# 5660 +static inline float j1(const float a); +# 5662 +static inline float jn(const int n, const float a); +# 5664 +static inline float y0(const float a); +# 5666 +static inline float y1(const float a); +# 5668 +static inline float yn(const int n, const float a); +# 5670 +__attribute__((unused)) static inline float cyl_bessel_i0(const float a); +# 5672 +__attribute__((unused)) static inline float cyl_bessel_i1(const float a); +# 5674 +static inline float erfinv(const float a); +# 5676 +static inline float erfcinv(const float a); +# 5678 +static inline float normcdfinv(const float a); +# 5680 +static inline float normcdf(const float a); +# 5682 +static inline float erfcx(const float a); +# 5684 +static inline double copysign(const double a, const float b); +# 5686 +static inline double copysign(const float a, const double b); +# 5694 +static inline unsigned min(const unsigned a, const unsigned b); +# 5702 +static inline unsigned min(const int a, const unsigned b); +# 5710 +static inline unsigned min(const unsigned a, const int b); +# 5718 +static inline long min(const long a, const long b); +# 5726 +static inline unsigned long min(const unsigned long a, const unsigned long b); +# 5734 +static inline unsigned long min(const long a, const unsigned long b); +# 5742 +static inline unsigned long min(const unsigned long a, const long b); +# 5750 +static inline long long min(const long long a, const long long b); +# 5758 +static inline unsigned long long min(const unsigned long long a, const unsigned long long b); +# 5766 +static inline unsigned long long min(const long long a, const unsigned long long b); +# 5774 +static inline unsigned long long min(const unsigned long long a, const long long b); +# 5785 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline float min(const float a, const float b); +# 5796 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double min(const double a, const double b); +# 5806 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double min(const float a, const double b); +# 5816 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double min(const double a, const float b); +# 5824 +static inline unsigned max(const unsigned a, const unsigned b); +# 5832 +static inline unsigned max(const int a, const unsigned b); +# 5840 +static inline unsigned max(const unsigned a, const int b); +# 5848 +static inline long max(const long a, const long b); +# 5856 +static inline unsigned long max(const unsigned long a, const unsigned long b); +# 5864 +static inline unsigned long max(const long a, const unsigned long b); +# 5872 +static inline unsigned long max(const unsigned long a, const long b); +# 5880 +static inline long long max(const long long a, const long long b); +# 5888 +static inline unsigned long long max(const unsigned long long a, const unsigned long long b); +# 5896 +static inline unsigned long long max(const long long a, const unsigned long long b); +# 5904 +static inline unsigned long long max(const unsigned long long a, const long long b); +# 5915 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline float max(const float a, const float b); +# 5926 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double max(const double a, const double b); +# 5936 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double max(const float a, const double b); +# 5946 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +static inline double max(const double a, const float b); +# 5958 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +extern "C" { +# 5959 +__attribute__((unused)) inline void *__nv_aligned_device_malloc(size_t size, size_t align) +# 5960 +{int volatile ___ = 1;(void)size;(void)align; +# 5963 +::exit(___);} +#if 0 +# 5960 +{ +# 5961 +__attribute__((unused)) void *__nv_aligned_device_malloc_impl(size_t, size_t); +# 5962 +return __nv_aligned_device_malloc_impl(size, align); +# 5963 +} +#endif +# 5964 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h" +} +# 758 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +static inline float exp10(const float a) +# 759 +{ +# 760 +return exp10f(a); +# 761 +} +# 763 +static inline float rsqrt(const float a) +# 764 +{ +# 765 +return rsqrtf(a); +# 766 +} +# 768 +static inline float rcbrt(const float a) +# 769 +{ +# 770 +return rcbrtf(a); +# 771 +} +# 773 +static inline float sinpi(const float a) +# 774 +{ +# 775 +return sinpif(a); +# 776 +} +# 778 +static inline float cospi(const float a) +# 779 +{ +# 780 +return cospif(a); +# 781 +} +# 783 +static inline void sincospi(const float a, float *const sptr, float *const cptr) +# 784 +{ +# 785 +sincospif(a, sptr, cptr); +# 786 +} +# 788 +static inline void sincos(const float a, float *const sptr, float *const cptr) +# 789 +{ +# 790 +sincosf(a, sptr, cptr); +# 791 +} +# 793 +static inline float j0(const float a) +# 794 +{ +# 795 +return j0f(a); +# 796 +} +# 798 +static inline float j1(const float a) +# 799 +{ +# 800 +return j1f(a); +# 801 +} +# 803 +static inline float jn(const int n, const float a) +# 804 +{ +# 805 +return jnf(n, a); +# 806 +} +# 808 +static inline float y0(const float a) +# 809 +{ +# 810 +return y0f(a); +# 811 +} +# 813 +static inline float y1(const float a) +# 814 +{ +# 815 +return y1f(a); +# 816 +} +# 818 +static inline float yn(const int n, const float a) +# 819 +{ +# 820 +return ynf(n, a); +# 821 +} +# 823 +__attribute__((unused)) static inline float cyl_bessel_i0(const float a) +# 824 +{int volatile ___ = 1;(void)a; +# 826 +::exit(___);} +#if 0 +# 824 +{ +# 825 +return cyl_bessel_i0f(a); +# 826 +} +#endif +# 828 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +__attribute__((unused)) static inline float cyl_bessel_i1(const float a) +# 829 +{int volatile ___ = 1;(void)a; +# 831 +::exit(___);} +#if 0 +# 829 +{ +# 830 +return cyl_bessel_i1f(a); +# 831 +} +#endif +# 833 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +static inline float erfinv(const float a) +# 834 +{ +# 835 +return erfinvf(a); +# 836 +} +# 838 +static inline float erfcinv(const float a) +# 839 +{ +# 840 +return erfcinvf(a); +# 841 +} +# 843 +static inline float normcdfinv(const float a) +# 844 +{ +# 845 +return normcdfinvf(a); +# 846 +} +# 848 +static inline float normcdf(const float a) +# 849 +{ +# 850 +return normcdff(a); +# 851 +} +# 853 +static inline float erfcx(const float a) +# 854 +{ +# 855 +return erfcxf(a); +# 856 +} +# 858 +static inline double copysign(const double a, const float b) +# 859 +{ +# 860 +return copysign(a, static_cast< double>(b)); +# 861 +} +# 863 +static inline double copysign(const float a, const double b) +# 864 +{ +# 865 +return copysign(static_cast< double>(a), b); +# 866 +} +# 868 +static inline unsigned min(const unsigned a, const unsigned b) +# 869 +{ +# 870 +return umin(a, b); +# 871 +} +# 873 +static inline unsigned min(const int a, const unsigned b) +# 874 +{ +# 875 +return umin(static_cast< unsigned>(a), b); +# 876 +} +# 878 +static inline unsigned min(const unsigned a, const int b) +# 879 +{ +# 880 +return umin(a, static_cast< unsigned>(b)); +# 881 +} +# 883 +static inline long min(const long a, const long b) +# 884 +{ +# 885 +long retval; +# 892 +if (sizeof(long) == sizeof(int)) { +# 896 +retval = (static_cast< long>(min(static_cast< int>(a), static_cast< int>(b)))); +# 897 +} else { +# 898 +retval = (static_cast< long>(llmin(static_cast< long long>(a), static_cast< long long>(b)))); +# 899 +} +# 900 +return retval; +# 901 +} +# 903 +static inline unsigned long min(const unsigned long a, const unsigned long b) +# 904 +{ +# 905 +unsigned long retval; +# 910 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 914 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 915 +} else { +# 916 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 917 +} +# 918 +return retval; +# 919 +} +# 921 +static inline unsigned long min(const long a, const unsigned long b) +# 922 +{ +# 923 +unsigned long retval; +# 928 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 932 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 933 +} else { +# 934 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 935 +} +# 936 +return retval; +# 937 +} +# 939 +static inline unsigned long min(const unsigned long a, const long b) +# 940 +{ +# 941 +unsigned long retval; +# 946 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 950 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 951 +} else { +# 952 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 953 +} +# 954 +return retval; +# 955 +} +# 957 +static inline long long min(const long long a, const long long b) +# 958 +{ +# 959 +return llmin(a, b); +# 960 +} +# 962 +static inline unsigned long long min(const unsigned long long a, const unsigned long long b) +# 963 +{ +# 964 +return ullmin(a, b); +# 965 +} +# 967 +static inline unsigned long long min(const long long a, const unsigned long long b) +# 968 +{ +# 969 +return ullmin(static_cast< unsigned long long>(a), b); +# 970 +} +# 972 +static inline unsigned long long min(const unsigned long long a, const long long b) +# 973 +{ +# 974 +return ullmin(a, static_cast< unsigned long long>(b)); +# 975 +} +# 977 +static inline float min(const float a, const float b) +# 978 +{ +# 979 +return fminf(a, b); +# 980 +} +# 982 +static inline double min(const double a, const double b) +# 983 +{ +# 984 +return fmin(a, b); +# 985 +} +# 987 +static inline double min(const float a, const double b) +# 988 +{ +# 989 +return fmin(static_cast< double>(a), b); +# 990 +} +# 992 +static inline double min(const double a, const float b) +# 993 +{ +# 994 +return fmin(a, static_cast< double>(b)); +# 995 +} +# 997 +static inline unsigned max(const unsigned a, const unsigned b) +# 998 +{ +# 999 +return umax(a, b); +# 1000 +} +# 1002 +static inline unsigned max(const int a, const unsigned b) +# 1003 +{ +# 1004 +return umax(static_cast< unsigned>(a), b); +# 1005 +} +# 1007 +static inline unsigned max(const unsigned a, const int b) +# 1008 +{ +# 1009 +return umax(a, static_cast< unsigned>(b)); +# 1010 +} +# 1012 +static inline long max(const long a, const long b) +# 1013 +{ +# 1014 +long retval; +# 1020 +if (sizeof(long) == sizeof(int)) { +# 1024 +retval = (static_cast< long>(max(static_cast< int>(a), static_cast< int>(b)))); +# 1025 +} else { +# 1026 +retval = (static_cast< long>(llmax(static_cast< long long>(a), static_cast< long long>(b)))); +# 1027 +} +# 1028 +return retval; +# 1029 +} +# 1031 +static inline unsigned long max(const unsigned long a, const unsigned long b) +# 1032 +{ +# 1033 +unsigned long retval; +# 1038 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1042 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1043 +} else { +# 1044 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1045 +} +# 1046 +return retval; +# 1047 +} +# 1049 +static inline unsigned long max(const long a, const unsigned long b) +# 1050 +{ +# 1051 +unsigned long retval; +# 1056 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1060 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1061 +} else { +# 1062 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1063 +} +# 1064 +return retval; +# 1065 +} +# 1067 +static inline unsigned long max(const unsigned long a, const long b) +# 1068 +{ +# 1069 +unsigned long retval; +# 1074 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1078 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1079 +} else { +# 1080 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1081 +} +# 1082 +return retval; +# 1083 +} +# 1085 +static inline long long max(const long long a, const long long b) +# 1086 +{ +# 1087 +return llmax(a, b); +# 1088 +} +# 1090 +static inline unsigned long long max(const unsigned long long a, const unsigned long long b) +# 1091 +{ +# 1092 +return ullmax(a, b); +# 1093 +} +# 1095 +static inline unsigned long long max(const long long a, const unsigned long long b) +# 1096 +{ +# 1097 +return ullmax(static_cast< unsigned long long>(a), b); +# 1098 +} +# 1100 +static inline unsigned long long max(const unsigned long long a, const long long b) +# 1101 +{ +# 1102 +return ullmax(a, static_cast< unsigned long long>(b)); +# 1103 +} +# 1105 +static inline float max(const float a, const float b) +# 1106 +{ +# 1107 +return fmaxf(a, b); +# 1108 +} +# 1110 +static inline double max(const double a, const double b) +# 1111 +{ +# 1112 +return fmax(a, b); +# 1113 +} +# 1115 +static inline double max(const float a, const double b) +# 1116 +{ +# 1117 +return fmax(static_cast< double>(a), b); +# 1118 +} +# 1120 +static inline double max(const double a, const float b) +# 1121 +{ +# 1122 +return fmax(a, static_cast< double>(b)); +# 1123 +} +# 1135 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.hpp" +inline int min(const int a, const int b) +# 1136 +{ +# 1137 +return (a < b) ? a : b; +# 1138 +} +# 1140 +inline unsigned umin(const unsigned a, const unsigned b) +# 1141 +{ +# 1142 +return (a < b) ? a : b; +# 1143 +} +# 1145 +inline long long llmin(const long long a, const long long b) +# 1146 +{ +# 1147 +return (a < b) ? a : b; +# 1148 +} +# 1150 +inline unsigned long long ullmin(const unsigned long long a, const unsigned long long +# 1151 +b) +# 1152 +{ +# 1153 +return (a < b) ? a : b; +# 1154 +} +# 1156 +inline int max(const int a, const int b) +# 1157 +{ +# 1158 +return (a > b) ? a : b; +# 1159 +} +# 1161 +inline unsigned umax(const unsigned a, const unsigned b) +# 1162 +{ +# 1163 +return (a > b) ? a : b; +# 1164 +} +# 1166 +inline long long llmax(const long long a, const long long b) +# 1167 +{ +# 1168 +return (a > b) ? a : b; +# 1169 +} +# 1171 +inline unsigned long long ullmax(const unsigned long long a, const unsigned long long +# 1172 +b) +# 1173 +{ +# 1174 +return (a > b) ? a : b; +# 1175 +} +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +extern "C" { +# 2497 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimax_s32_relu(const int a, const int b); +# 2509 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax_s16x2_relu(const unsigned a, const unsigned b); +# 2518 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimin_s32_relu(const int a, const int b); +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin_s16x2_relu(const unsigned a, const unsigned b); +# 2539 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimax3_s32(const int a, const int b, const int c); +# 2551 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax3_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax3_u32(const unsigned a, const unsigned b, const unsigned c); +# 2572 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax3_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 2581 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimin3_s32(const int a, const int b, const int c); +# 2593 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin3_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 2602 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin3_u32(const unsigned a, const unsigned b, const unsigned c); +# 2614 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin3_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 2623 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimax3_s32_relu(const int a, const int b, const int c); +# 2635 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimax3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 2644 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vimin3_s32_relu(const int a, const int b, const int c); +# 2656 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vimin3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 2665 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __viaddmax_s32(const int a, const int b, const int c); +# 2677 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmax_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 2686 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmax_u32(const unsigned a, const unsigned b, const unsigned c); +# 2698 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmax_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 2707 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __viaddmin_s32(const int a, const int b, const int c); +# 2719 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmin_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 2728 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmin_u32(const unsigned a, const unsigned b, const unsigned c); +# 2740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmin_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 2750 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __viaddmax_s32_relu(const int a, const int b, const int c); +# 2762 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmax_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 2772 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __viaddmin_s32_relu(const int a, const int b, const int c); +# 2784 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __viaddmin_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 2793 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vibmax_s32(const int a, const int b, bool *const pred); +# 2802 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmax_u32(const unsigned a, const unsigned b, bool *const pred); +# 2811 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline int __vibmin_s32(const int a, const int b, bool *const pred); +# 2820 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmin_u32(const unsigned a, const unsigned b, bool *const pred); +# 2834 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmax_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 2848 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmax_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 2862 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmin_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 2876 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +static inline unsigned __vibmin_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 2883 +} +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +static short __internal_cast_u2s(unsigned short x) +# 117 +{ +# 118 +short res; +# 120 +(void)memcpy(&res, &x, sizeof x); +# 124 +return res; +# 125 +} +# 127 +static inline int __vimax_s32_relu(const int a, const int b) { +# 134 +int ans = max(a, b); +# 136 +return (ans > 0) ? ans : 0; +# 138 +} +# 140 +static inline unsigned __vimax_s16x2_relu(const unsigned a, const unsigned b) { +# 141 +unsigned res; +# 149 +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 150 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 152 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 153 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 156 +short aS_lo = __internal_cast_u2s(aU_lo); +# 157 +short aS_hi = __internal_cast_u2s(aU_hi); +# 159 +short bS_lo = __internal_cast_u2s(bU_lo); +# 160 +short bS_hi = __internal_cast_u2s(bU_hi); +# 163 +int ansI_lo = max(aS_lo, bS_lo); +# 164 +int ansI_hi = max(aS_hi, bS_hi); +# 167 +if (ansI_lo < 0) { ansI_lo = 0; } +# 168 +if (ansI_hi < 0) { ansI_hi = 0; } +# 171 +unsigned ansU_lo = (unsigned)ansI_lo; +# 172 +unsigned ansU_hi = (unsigned)ansI_hi; +# 175 +res = (ansU_lo | (ansU_hi << 16)); +# 178 +return res; +# 179 +} +# 181 +static inline int __vimin_s32_relu(const int a, const int b) { +# 188 +int ans = min(a, b); +# 190 +return (ans > 0) ? ans : 0; +# 192 +} +# 194 +static inline unsigned __vimin_s16x2_relu(const unsigned a, const unsigned b) { +# 195 +unsigned res; +# 203 +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 204 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 206 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 207 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 210 +short aS_lo = __internal_cast_u2s(aU_lo); +# 211 +short aS_hi = __internal_cast_u2s(aU_hi); +# 213 +short bS_lo = __internal_cast_u2s(bU_lo); +# 214 +short bS_hi = __internal_cast_u2s(bU_hi); +# 217 +int ansI_lo = min(aS_lo, bS_lo); +# 218 +int ansI_hi = min(aS_hi, bS_hi); +# 221 +if (ansI_lo < 0) { ansI_lo = 0; } +# 222 +if (ansI_hi < 0) { ansI_hi = 0; } +# 225 +unsigned ansU_lo = (unsigned)ansI_lo; +# 226 +unsigned ansU_hi = (unsigned)ansI_hi; +# 229 +res = (ansU_lo | (ansU_hi << 16)); +# 232 +return res; +# 233 +} +# 235 +static inline int __vimax3_s32(const int a, const int b, const int c) { +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return max(max(a, b), c); +# 247 +} +# 249 +static inline unsigned __vimax3_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 250 +unsigned res; +# 262 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 263 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 265 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 266 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 268 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 269 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 272 +short aS_lo = __internal_cast_u2s(aU_lo); +# 273 +short aS_hi = __internal_cast_u2s(aU_hi); +# 275 +short bS_lo = __internal_cast_u2s(bU_lo); +# 276 +short bS_hi = __internal_cast_u2s(bU_hi); +# 278 +short cS_lo = __internal_cast_u2s(cU_lo); +# 279 +short cS_hi = __internal_cast_u2s(cU_hi); +# 282 +unsigned ansU_lo = (unsigned)max(max(aS_lo, bS_lo), cS_lo); +# 283 +unsigned ansU_hi = (unsigned)max(max(aS_hi, bS_hi), cS_hi); +# 286 +res = ((ansU_lo & 65535U) | (ansU_hi << 16)); +# 288 +return res; +# 289 +} +# 291 +static inline unsigned __vimax3_u32(const unsigned a, const unsigned b, const unsigned c) { +# 301 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return max(max(a, b), c); +# 303 +} +# 305 +static inline unsigned __vimax3_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 306 +unsigned res; +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 318 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 320 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 321 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 323 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 324 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 327 +unsigned short ansU_lo = (unsigned short)max(max(aU_lo, bU_lo), cU_lo); +# 328 +unsigned short ansU_hi = (unsigned short)max(max(aU_hi, bU_hi), cU_hi); +# 331 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 334 +return res; +# 335 +} +# 337 +static inline int __vimin3_s32(const int a, const int b, const int c) { +# 347 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return min(min(a, b), c); +# 349 +} +# 351 +static inline unsigned __vimin3_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 352 +unsigned res; +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 364 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 366 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 367 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 369 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 370 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 373 +short aS_lo = __internal_cast_u2s(aU_lo); +# 374 +short aS_hi = __internal_cast_u2s(aU_hi); +# 376 +short bS_lo = __internal_cast_u2s(bU_lo); +# 377 +short bS_hi = __internal_cast_u2s(bU_hi); +# 379 +short cS_lo = __internal_cast_u2s(cU_lo); +# 380 +short cS_hi = __internal_cast_u2s(cU_hi); +# 383 +unsigned ansU_lo = (unsigned)min(min(aS_lo, bS_lo), cS_lo); +# 384 +unsigned ansU_hi = (unsigned)min(min(aS_hi, bS_hi), cS_hi); +# 387 +res = ((ansU_lo & 65535U) | (ansU_hi << 16)); +# 390 +return res; +# 391 +} +# 393 +static inline unsigned __vimin3_u32(const unsigned a, const unsigned b, const unsigned c) { +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return min(min(a, b), c); +# 405 +} +# 407 +static inline unsigned __vimin3_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 408 +unsigned res; +# 419 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 420 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 422 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 423 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 425 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 426 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 429 +unsigned short ansU_lo = (unsigned short)min(min(aU_lo, bU_lo), cU_lo); +# 430 +unsigned short ansU_hi = (unsigned short)min(min(aU_hi, bU_hi), cU_hi); +# 433 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 436 +return res; +# 437 +} +# 439 +static inline int __vimax3_s32_relu(const int a, const int b, const int c) { +# 449 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = max(max(a, b), c); +# 451 +return (ans > 0) ? ans : 0; +# 453 +} +# 455 +static inline unsigned __vimax3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 456 +unsigned res; +# 467 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 468 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 470 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 471 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 473 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 474 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 477 +short aS_lo = __internal_cast_u2s(aU_lo); +# 478 +short aS_hi = __internal_cast_u2s(aU_hi); +# 480 +short bS_lo = __internal_cast_u2s(bU_lo); +# 481 +short bS_hi = __internal_cast_u2s(bU_hi); +# 483 +short cS_lo = __internal_cast_u2s(cU_lo); +# 484 +short cS_hi = __internal_cast_u2s(cU_hi); +# 487 +unsigned ansU_lo = (unsigned)max(0, max(max(aS_lo, bS_lo), cS_lo)); +# 488 +unsigned ansU_hi = (unsigned)max(0, max(max(aS_hi, bS_hi), cS_hi)); +# 491 +res = (ansU_lo | (ansU_hi << 16)); +# 494 +return res; +# 495 +} +# 497 +static inline int __vimin3_s32_relu(const int a, const int b, const int c) { +# 507 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = min(min(a, b), c); +# 509 +return (ans > 0) ? ans : 0; +# 511 +} +# 513 +static inline unsigned __vimin3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 514 +unsigned res; +# 525 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 526 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 528 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 529 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 531 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 532 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 535 +short aS_lo = __internal_cast_u2s(aU_lo); +# 536 +short aS_hi = __internal_cast_u2s(aU_hi); +# 538 +short bS_lo = __internal_cast_u2s(bU_lo); +# 539 +short bS_hi = __internal_cast_u2s(bU_hi); +# 541 +short cS_lo = __internal_cast_u2s(cU_lo); +# 542 +short cS_hi = __internal_cast_u2s(cU_hi); +# 545 +unsigned ansU_lo = (unsigned)max(0, min(min(aS_lo, bS_lo), cS_lo)); +# 546 +unsigned ansU_hi = (unsigned)max(0, min(min(aS_hi, bS_hi), cS_hi)); +# 549 +res = (ansU_lo | (ansU_hi << 16)); +# 553 +return res; +# 554 +} +# 556 +static inline int __viaddmax_s32(const int a, const int b, const int c) { +# 566 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return max(a + b, c); +# 568 +} +# 570 +static inline unsigned __viaddmax_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 571 +unsigned res; +# 582 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 583 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 585 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 586 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 588 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 589 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 591 +aU_lo += bU_lo; +# 592 +aU_hi += bU_hi; +# 595 +short sS_lo = __internal_cast_u2s(aU_lo); +# 596 +short sS_hi = __internal_cast_u2s(aU_hi); +# 598 +short cS_lo = __internal_cast_u2s(cU_lo); +# 599 +short cS_hi = __internal_cast_u2s(cU_hi); +# 602 +unsigned ansU_lo = (unsigned)max(sS_lo, cS_lo); +# 603 +unsigned ansU_hi = (unsigned)max(sS_hi, cS_hi); +# 606 +res = ((ansU_lo & 65535U) | (ansU_hi << 16)); +# 609 +return res; +# 610 +} +# 612 +static inline unsigned __viaddmax_u32(const unsigned a, const unsigned b, const unsigned c) { +# 622 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return max(a + b, c); +# 624 +} +# 626 +static inline unsigned __viaddmax_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 627 +unsigned res; +# 638 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 639 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 641 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 642 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 644 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 645 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 648 +unsigned short ansU_lo = (unsigned short)max((unsigned short)(aU_lo + bU_lo), cU_lo); +# 649 +unsigned short ansU_hi = (unsigned short)max((unsigned short)(aU_hi + bU_hi), cU_hi); +# 652 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 655 +return res; +# 656 +} +# 658 +static inline int __viaddmin_s32(const int a, const int b, const int c) { +# 668 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return min(a + b, c); +# 670 +} +# 672 +static inline unsigned __viaddmin_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 673 +unsigned res; +# 684 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 685 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 687 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 688 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 690 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 691 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 693 +aU_lo += bU_lo; +# 694 +aU_hi += bU_hi; +# 697 +short sS_lo = __internal_cast_u2s(aU_lo); +# 698 +short sS_hi = __internal_cast_u2s(aU_hi); +# 700 +short cS_lo = __internal_cast_u2s(cU_lo); +# 701 +short cS_hi = __internal_cast_u2s(cU_hi); +# 704 +unsigned ansU_lo = (unsigned)min(sS_lo, cS_lo); +# 705 +unsigned ansU_hi = (unsigned)min(sS_hi, cS_hi); +# 708 +res = ((ansU_lo & 65535U) | (ansU_hi << 16)); +# 711 +return res; +# 712 +} +# 714 +static inline unsigned __viaddmin_u32(const unsigned a, const unsigned b, const unsigned c) { +# 724 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +return min(a + b, c); +# 726 +} +# 728 +static inline unsigned __viaddmin_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 729 +unsigned res; +# 740 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 741 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 743 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 744 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 746 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 747 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 750 +unsigned short ansU_lo = (unsigned short)min((unsigned short)(aU_lo + bU_lo), cU_lo); +# 751 +unsigned short ansU_hi = (unsigned short)min((unsigned short)(aU_hi + bU_hi), cU_hi); +# 754 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 757 +return res; +# 758 +} +# 760 +static inline int __viaddmax_s32_relu(const int a, const int b, const int c) { +# 770 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = max(a + b, c); +# 772 +return (ans > 0) ? ans : 0; +# 774 +} +# 776 +static inline unsigned __viaddmax_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 777 +unsigned res; +# 788 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 789 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 791 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 792 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 794 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 795 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 797 +aU_lo += bU_lo; +# 798 +aU_hi += bU_hi; +# 801 +short sS_lo = __internal_cast_u2s(aU_lo); +# 802 +short sS_hi = __internal_cast_u2s(aU_hi); +# 804 +short cS_lo = __internal_cast_u2s(cU_lo); +# 805 +short cS_hi = __internal_cast_u2s(cU_hi); +# 808 +unsigned ansU_lo = (unsigned)max(0, max(sS_lo, cS_lo)); +# 809 +unsigned ansU_hi = (unsigned)max(0, max(sS_hi, cS_hi)); +# 812 +res = (ansU_lo | (ansU_hi << 16)); +# 815 +return res; +# 816 +} +# 818 +static inline int __viaddmin_s32_relu(const int a, const int b, const int c) { +# 828 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = min(a + b, c); +# 830 +return (ans > 0) ? ans : 0; +# 832 +} +# 834 +static inline unsigned __viaddmin_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 835 +unsigned res; +# 846 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 847 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 849 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 850 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 852 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 853 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 855 +aU_lo += bU_lo; +# 856 +aU_hi += bU_hi; +# 859 +short sS_lo = __internal_cast_u2s(aU_lo); +# 860 +short sS_hi = __internal_cast_u2s(aU_hi); +# 862 +short cS_lo = __internal_cast_u2s(cU_lo); +# 863 +short cS_hi = __internal_cast_u2s(cU_hi); +# 866 +unsigned ansU_lo = (unsigned)max(0, min(sS_lo, cS_lo)); +# 867 +unsigned ansU_hi = (unsigned)max(0, min(sS_hi, cS_hi)); +# 870 +res = (ansU_lo | (ansU_hi << 16)); +# 873 +return res; +# 874 +} +# 878 +static inline int __vibmax_s32(const int a, const int b, bool *const pred) { +# 892 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = max(a, b); +# 894 +(*pred) = (a >= b); +# 895 +return ans; +# 897 +} +# 899 +static inline unsigned __vibmax_u32(const unsigned a, const unsigned b, bool *const pred) { +# 913 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned ans = max(a, b); +# 915 +(*pred) = (a >= b); +# 916 +return ans; +# 918 +} +# 921 +static inline int __vibmin_s32(const int a, const int b, bool *const pred) { +# 935 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +int ans = min(a, b); +# 937 +(*pred) = (a <= b); +# 938 +return ans; +# 940 +} +# 943 +static inline unsigned __vibmin_u32(const unsigned a, const unsigned b, bool *const pred) { +# 957 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned ans = min(a, b); +# 959 +(*pred) = (a <= b); +# 960 +return ans; +# 962 +} +# 964 +static inline unsigned __vibmax_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 986 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 987 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 989 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 990 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 993 +short aS_lo = __internal_cast_u2s(aU_lo); +# 994 +short aS_hi = __internal_cast_u2s(aU_hi); +# 996 +short bS_lo = __internal_cast_u2s(bU_lo); +# 997 +short bS_hi = __internal_cast_u2s(bU_hi); +# 1000 +unsigned ansU_lo = (unsigned)max(aS_lo, bS_lo); +# 1001 +unsigned ansU_hi = (unsigned)max(aS_hi, bS_hi); +# 1003 +(*pred_hi) = (aS_hi >= bS_hi); +# 1004 +(*pred_lo) = (aS_lo >= bS_lo); +# 1007 +unsigned ans = (ansU_lo & 65535U) | (ansU_hi << 16); +# 1009 +return ans; +# 1011 +} +# 1013 +static inline unsigned __vibmax_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1035 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1036 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1038 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1039 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1042 +unsigned short ansU_lo = (unsigned short)max(aU_lo, bU_lo); +# 1043 +unsigned short ansU_hi = (unsigned short)max(aU_hi, bU_hi); +# 1045 +(*pred_hi) = (aU_hi >= bU_hi); +# 1046 +(*pred_lo) = (aU_lo >= bU_lo); +# 1049 +unsigned ans = ((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16); +# 1051 +return ans; +# 1053 +} +# 1055 +static inline unsigned __vibmin_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1077 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1078 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1080 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1081 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1084 +short aS_lo = __internal_cast_u2s(aU_lo); +# 1085 +short aS_hi = __internal_cast_u2s(aU_hi); +# 1087 +short bS_lo = __internal_cast_u2s(bU_lo); +# 1088 +short bS_hi = __internal_cast_u2s(bU_hi); +# 1091 +unsigned ansU_lo = (unsigned)min(aS_lo, bS_lo); +# 1092 +unsigned ansU_hi = (unsigned)min(aS_hi, bS_hi); +# 1094 +(*pred_hi) = (aS_hi <= bS_hi); +# 1095 +(*pred_lo) = (aS_lo <= bS_lo); +# 1098 +unsigned ans = (ansU_lo & 65535U) | (ansU_hi << 16); +# 1100 +return ans; +# 1102 +} +# 1104 +static inline unsigned __vibmin_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1126 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1127 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1129 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1130 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1133 +unsigned short ansU_lo = (unsigned short)min(aU_lo, bU_lo); +# 1134 +unsigned short ansU_hi = (unsigned short)min(aU_hi, bU_hi); +# 1136 +(*pred_hi) = (aU_hi <= bU_hi); +# 1137 +(*pred_lo) = (aU_lo <= bU_lo); +# 1140 +unsigned ans = ((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16); +# 1142 +return ans; +# 1144 +} +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicAdd(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 89 +{ } +#endif +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAdd(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 91 +{ } +#endif +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicSub(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicSub(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicExch(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicExch(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline float atomicExch(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicMin(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMin(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicMax(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMax(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicInc(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicDec(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicAnd(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 115 +{ } +#endif +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAnd(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 117 +{ } +#endif +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicOr(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 119 +{ } +#endif +# 121 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicOr(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 121 +{ } +#endif +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicXor(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicXor(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 125 +{ } +#endif +# 127 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline int atomicCAS(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 127 +{ } +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicCAS(unsigned *address, unsigned compare, unsigned val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +extern "C" { +# 160 +} +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAdd(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 169 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicExch(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicCAS(unsigned long long *address, unsigned long long compare, unsigned long long val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute((deprecated("__any() is deprecated in favor of __any_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppr" "ess this warning)."))) __attribute__((unused)) static inline bool any(bool cond) {int volatile ___ = 1;(void)cond;::exit(___);} +#if 0 +# 175 +{ } +#endif +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/device_atomic_functions.h" +__attribute((deprecated("__all() is deprecated in favor of __all_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppr" "ess this warning)."))) __attribute__((unused)) static inline bool all(bool cond) {int volatile ___ = 1;(void)cond;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 90 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +extern "C" { +# 1142 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.h" +} +# 1150 +__attribute__((unused)) static inline double fma(double a, double b, double c, cudaRoundMode mode); +# 1154 +__attribute__((unused)) static inline double dmul(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1156 +__attribute__((unused)) static inline double dadd(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1158 +__attribute__((unused)) static inline double dsub(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1160 +__attribute__((unused)) static inline int double2int(double a, cudaRoundMode mode = cudaRoundZero); +# 1162 +__attribute__((unused)) static inline unsigned double2uint(double a, cudaRoundMode mode = cudaRoundZero); +# 1164 +__attribute__((unused)) static inline long long double2ll(double a, cudaRoundMode mode = cudaRoundZero); +# 1166 +__attribute__((unused)) static inline unsigned long long double2ull(double a, cudaRoundMode mode = cudaRoundZero); +# 1168 +__attribute__((unused)) static inline double ll2double(long long a, cudaRoundMode mode = cudaRoundNearest); +# 1170 +__attribute__((unused)) static inline double ull2double(unsigned long long a, cudaRoundMode mode = cudaRoundNearest); +# 1172 +__attribute__((unused)) static inline double int2double(int a, cudaRoundMode mode = cudaRoundNearest); +# 1174 +__attribute__((unused)) static inline double uint2double(unsigned a, cudaRoundMode mode = cudaRoundNearest); +# 1176 +__attribute__((unused)) static inline double float2double(float a, cudaRoundMode mode = cudaRoundNearest); +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double fma(double a, double b, double c, cudaRoundMode mode) +# 94 +{int volatile ___ = 1;(void)a;(void)b;(void)c;(void)mode; +# 99 +::exit(___);} +#if 0 +# 94 +{ +# 95 +return (mode == (cudaRoundZero)) ? __fma_rz(a, b, c) : ((mode == (cudaRoundPosInf)) ? __fma_ru(a, b, c) : ((mode == (cudaRoundMinInf)) ? __fma_rd(a, b, c) : __fma_rn(a, b, c))); +# 99 +} +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double dmul(double a, double b, cudaRoundMode mode) +# 102 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 107 +::exit(___);} +#if 0 +# 102 +{ +# 103 +return (mode == (cudaRoundZero)) ? __dmul_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dmul_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dmul_rd(a, b) : __dmul_rn(a, b))); +# 107 +} +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double dadd(double a, double b, cudaRoundMode mode) +# 110 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 115 +::exit(___);} +#if 0 +# 110 +{ +# 111 +return (mode == (cudaRoundZero)) ? __dadd_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dadd_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dadd_rd(a, b) : __dadd_rn(a, b))); +# 115 +} +#endif +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double dsub(double a, double b, cudaRoundMode mode) +# 118 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 123 +::exit(___);} +#if 0 +# 118 +{ +# 119 +return (mode == (cudaRoundZero)) ? __dsub_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dsub_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dsub_rd(a, b) : __dsub_rn(a, b))); +# 123 +} +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline int double2int(double a, cudaRoundMode mode) +# 126 +{int volatile ___ = 1;(void)a;(void)mode; +# 131 +::exit(___);} +#if 0 +# 126 +{ +# 127 +return (mode == (cudaRoundNearest)) ? __double2int_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2int_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2int_rd(a) : __double2int_rz(a))); +# 131 +} +#endif +# 133 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline unsigned double2uint(double a, cudaRoundMode mode) +# 134 +{int volatile ___ = 1;(void)a;(void)mode; +# 139 +::exit(___);} +#if 0 +# 134 +{ +# 135 +return (mode == (cudaRoundNearest)) ? __double2uint_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2uint_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2uint_rd(a) : __double2uint_rz(a))); +# 139 +} +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline long long double2ll(double a, cudaRoundMode mode) +# 142 +{int volatile ___ = 1;(void)a;(void)mode; +# 147 +::exit(___);} +#if 0 +# 142 +{ +# 143 +return (mode == (cudaRoundNearest)) ? __double2ll_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2ll_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2ll_rd(a) : __double2ll_rz(a))); +# 147 +} +#endif +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline unsigned long long double2ull(double a, cudaRoundMode mode) +# 150 +{int volatile ___ = 1;(void)a;(void)mode; +# 155 +::exit(___);} +#if 0 +# 150 +{ +# 151 +return (mode == (cudaRoundNearest)) ? __double2ull_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2ull_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2ull_rd(a) : __double2ull_rz(a))); +# 155 +} +#endif +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double ll2double(long long a, cudaRoundMode mode) +# 158 +{int volatile ___ = 1;(void)a;(void)mode; +# 163 +::exit(___);} +#if 0 +# 158 +{ +# 159 +return (mode == (cudaRoundZero)) ? __ll2double_rz(a) : ((mode == (cudaRoundPosInf)) ? __ll2double_ru(a) : ((mode == (cudaRoundMinInf)) ? __ll2double_rd(a) : __ll2double_rn(a))); +# 163 +} +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double ull2double(unsigned long long a, cudaRoundMode mode) +# 166 +{int volatile ___ = 1;(void)a;(void)mode; +# 171 +::exit(___);} +#if 0 +# 166 +{ +# 167 +return (mode == (cudaRoundZero)) ? __ull2double_rz(a) : ((mode == (cudaRoundPosInf)) ? __ull2double_ru(a) : ((mode == (cudaRoundMinInf)) ? __ull2double_rd(a) : __ull2double_rn(a))); +# 171 +} +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double int2double(int a, cudaRoundMode mode) +# 174 +{int volatile ___ = 1;(void)a;(void)mode; +# 176 +::exit(___);} +#if 0 +# 174 +{ +# 175 +return (double)a; +# 176 +} +#endif +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double uint2double(unsigned a, cudaRoundMode mode) +# 179 +{int volatile ___ = 1;(void)a;(void)mode; +# 181 +::exit(___);} +#if 0 +# 179 +{ +# 180 +return (double)a; +# 181 +} +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_double_functions.hpp" +__attribute__((unused)) static inline double float2double(float a, cudaRoundMode mode) +# 184 +{int volatile ___ = 1;(void)a;(void)mode; +# 186 +::exit(___);} +#if 0 +# 184 +{ +# 185 +return (double)a; +# 186 +} +#endif +# 88 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_atomic_functions.h" +__attribute__((unused)) static inline float atomicAdd(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 88 +{ } +#endif +# 89 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMin(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 89 +{ } +#endif +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMax(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 91 +{ } +#endif +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicAnd(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicOr(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline long long atomicXor(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMin(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMax(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicOr(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicXor(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline double atomicAdd(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicAdd_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicAdd_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAdd_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAdd_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 108 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAdd_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAdd_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline float atomicAdd_block(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline float atomicAdd_system(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 117 +{ } +#endif +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline double atomicAdd_block(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 120 +{ } +#endif +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline double atomicAdd_system(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicSub_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 126 +{ } +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicSub_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicSub_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 132 +{ } +#endif +# 135 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicSub_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 135 +{ } +#endif +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicExch_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 138 +{ } +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicExch_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 141 +{ } +#endif +# 144 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicExch_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicExch_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 147 +{ } +#endif +# 150 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicExch_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 150 +{ } +#endif +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicExch_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 153 +{ } +#endif +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline float atomicExch_block(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 156 +{ } +#endif +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline float atomicExch_system(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 162 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicMin_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 162 +{ } +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicMin_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 165 +{ } +#endif +# 168 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMin_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 168 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMin_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMin_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 174 +{ } +#endif +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMin_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 180 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMin_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 180 +{ } +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMin_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 183 +{ } +#endif +# 186 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicMax_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 186 +{ } +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicMax_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 192 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMax_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 192 +{ } +#endif +# 195 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicMax_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 195 +{ } +#endif +# 198 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMax_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 198 +{ } +#endif +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicMax_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 201 +{ } +#endif +# 204 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMax_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 204 +{ } +#endif +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicMax_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 207 +{ } +#endif +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicInc_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 210 +{ } +#endif +# 213 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicInc_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 213 +{ } +#endif +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicDec_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 216 +{ } +#endif +# 219 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicDec_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 219 +{ } +#endif +# 222 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicCAS_block(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 222 +{ } +#endif +# 225 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicCAS_system(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 225 +{ } +#endif +# 228 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicCAS_block(unsigned *address, unsigned compare, unsigned +# 229 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 229 +{ } +#endif +# 232 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicCAS_system(unsigned *address, unsigned compare, unsigned +# 233 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 233 +{ } +#endif +# 236 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicCAS_block(unsigned long long *address, unsigned long long +# 237 +compare, unsigned long long +# 238 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 238 +{ } +#endif +# 241 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicCAS_system(unsigned long long *address, unsigned long long +# 242 +compare, unsigned long long +# 243 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 243 +{ } +#endif +# 246 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicAnd_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 246 +{ } +#endif +# 249 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicAnd_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 249 +{ } +#endif +# 252 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicAnd_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 252 +{ } +#endif +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicAnd_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 255 +{ } +#endif +# 258 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAnd_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 258 +{ } +#endif +# 261 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicAnd_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 261 +{ } +#endif +# 264 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAnd_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 264 +{ } +#endif +# 267 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicAnd_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 267 +{ } +#endif +# 270 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicOr_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 270 +{ } +#endif +# 273 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicOr_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 273 +{ } +#endif +# 276 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicOr_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 276 +{ } +#endif +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicOr_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 279 +{ } +#endif +# 282 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicOr_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 282 +{ } +#endif +# 285 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicOr_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 285 +{ } +#endif +# 288 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicOr_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 288 +{ } +#endif +# 291 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicOr_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 291 +{ } +#endif +# 294 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicXor_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 294 +{ } +#endif +# 297 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline int atomicXor_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 297 +{ } +#endif +# 300 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicXor_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 300 +{ } +#endif +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline long long atomicXor_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 303 +{ } +#endif +# 306 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicXor_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 306 +{ } +#endif +# 309 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned atomicXor_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 309 +{ } +#endif +# 312 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicXor_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 312 +{ } +#endif +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_60_atomic_functions.h" +__attribute__((unused)) static inline unsigned long long atomicXor_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 315 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +extern "C" { +# 1038 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +} +# 1045 +__attribute((deprecated("__ballot() is deprecated in favor of __ballot_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to" " suppress this warning)."))) __attribute__((unused)) static inline unsigned ballot(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1045 +{ } +#endif +# 1047 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline int syncthreads_count(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1047 +{ } +#endif +# 1049 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline bool syncthreads_and(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1049 +{ } +#endif +# 1051 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline bool syncthreads_or(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1051 +{ } +#endif +# 1056 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isGlobal(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1056 +{ } +#endif +# 1057 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1057 +{ } +#endif +# 1058 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isConstant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1058 +{ } +#endif +# 1059 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isLocal(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1059 +{ } +#endif +# 1061 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isGridConstant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1061 +{ } +#endif +# 1063 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_global(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1063 +{ } +#endif +# 1064 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_shared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1064 +{ } +#endif +# 1065 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_constant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1065 +{ } +#endif +# 1066 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_local(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1066 +{ } +#endif +# 1068 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline size_t __cvta_generic_to_grid_constant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1068 +{ } +#endif +# 1071 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_global_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1071 +{ } +#endif +# 1072 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_shared_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1072 +{ } +#endif +# 1073 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_constant_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1073 +{ } +#endif +# 1074 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_local_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1074 +{ } +#endif +# 1076 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +__attribute__((unused)) static inline void *__cvta_grid_constant_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1076 +{ } +#endif +# 1090 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static inline unsigned short __nv_bswap16(unsigned short x) { +# 1092 +return __builtin_bswap16(x); +# 1098 +} +# 1109 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static inline unsigned __nv_bswap32(unsigned x) { +# 1111 +return __builtin_bswap32(x); +# 1118 +} +# 1129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_20_intrinsics.h" +static inline unsigned long long __nv_bswap64(unsigned long long x) { +# 1131 +return __builtin_bswap64(x); +# 1138 +} +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __fns(unsigned mask, unsigned base, int offset) {int volatile ___ = 1;(void)mask;(void)base;(void)offset;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 124 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline void __barrier_sync(unsigned id) {int volatile ___ = 1;(void)id;::exit(___);} +#if 0 +# 124 +{ } +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline void __barrier_sync_count(unsigned id, unsigned cnt) {int volatile ___ = 1;(void)id;(void)cnt;::exit(___);} +#if 0 +# 125 +{ } +#endif +# 126 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline void __syncwarp(unsigned mask = 4294967295U) {int volatile ___ = 1;(void)mask;::exit(___);} +#if 0 +# 126 +{ } +#endif +# 127 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __all_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 127 +{ } +#endif +# 128 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __any_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 128 +{ } +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __uni_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 130 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __ballot_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 130 +{ } +#endif +# 131 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __activemask() {int volatile ___ = 1;::exit(___);} +#if 0 +# 131 +{ } +#endif +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline int __shfl(int var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 140 +{ } +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned __shfl(unsigned var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 141 +{ } +#endif +# 142 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_up(int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 142 +{ } +#endif +# 143 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_up(unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 143 +{ } +#endif +# 144 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_down(int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_down(unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 145 +{ } +#endif +# 146 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_xor(int var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 146 +{ } +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_xor(unsigned var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 147 +{ } +#endif +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline float __shfl(float var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 148 +{ } +#endif +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_up(float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 149 +{ } +#endif +# 150 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_down(float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 150 +{ } +#endif +# 151 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_xor(float var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 151 +{ } +#endif +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __shfl_sync(unsigned mask, int var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 154 +{ } +#endif +# 155 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __shfl_sync(unsigned mask, unsigned var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 155 +{ } +#endif +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __shfl_up_sync(unsigned mask, int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 156 +{ } +#endif +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __shfl_up_sync(unsigned mask, unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 157 +{ } +#endif +# 158 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __shfl_down_sync(unsigned mask, int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 158 +{ } +#endif +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __shfl_down_sync(unsigned mask, unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 160 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 160 +{ } +#endif +# 161 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __shfl_xor_sync(unsigned mask, unsigned var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 161 +{ } +#endif +# 162 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline float __shfl_sync(unsigned mask, float var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 162 +{ } +#endif +# 163 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline float __shfl_up_sync(unsigned mask, float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 163 +{ } +#endif +# 164 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline float __shfl_down_sync(unsigned mask, float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 164 +{ } +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 165 +{ } +#endif +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl(unsigned long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 169 +{ } +#endif +# 170 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline long long __shfl(long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 170 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_up(long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 172 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_up(unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 172 +{ } +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_down(long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_down(unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 174 +{ } +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_xor(long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 175 +{ } +#endif +# 176 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 176 +{ } +#endif +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline double __shfl(double var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_up(double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 178 +{ } +#endif +# 179 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_down(double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 179 +{ } +#endif +# 180 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_xor(double var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 180 +{ } +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long long __shfl_sync(unsigned mask, long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 183 +{ } +#endif +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 184 +{ } +#endif +# 185 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long long __shfl_up_sync(unsigned mask, long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 185 +{ } +#endif +# 186 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 186 +{ } +#endif +# 187 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long long __shfl_down_sync(unsigned mask, long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 187 +{ } +#endif +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 188 +{ } +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 190 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 190 +{ } +#endif +# 191 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline double __shfl_sync(unsigned mask, double var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 191 +{ } +#endif +# 192 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline double __shfl_up_sync(unsigned mask, double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 192 +{ } +#endif +# 193 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline double __shfl_down_sync(unsigned mask, double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 193 +{ } +#endif +# 194 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 194 +{ } +#endif +# 198 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline long __shfl(long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 198 +{ } +#endif +# 199 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned long __shfl(unsigned long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 199 +{ } +#endif +# 200 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_up(long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 200 +{ } +#endif +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_up(unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 201 +{ } +#endif +# 202 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_down(long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 202 +{ } +#endif +# 203 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_down(unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 203 +{ } +#endif +# 204 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_xor(long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 204 +{ } +#endif +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_xor(unsigned long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 205 +{ } +#endif +# 208 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long __shfl_sync(unsigned mask, long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 208 +{ } +#endif +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 209 +{ } +#endif +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long __shfl_up_sync(unsigned mask, long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 210 +{ } +#endif +# 211 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 211 +{ } +#endif +# 212 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long __shfl_down_sync(unsigned mask, long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 212 +{ } +#endif +# 213 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 213 +{ } +#endif +# 214 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 214 +{ } +#endif +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 215 +{ } +#endif +# 91 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldg(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 91 +{ } +#endif +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldg(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 92 +{ } +#endif +# 94 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldg(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 94 +{ } +#endif +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldg(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldg(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldg(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldg(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldg(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldg(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldg(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldg(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldg(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldg(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldg(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldg(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 108 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldg(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldg(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldg(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldg(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldg(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldg(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldg(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 115 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldg(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 115 +{ } +#endif +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldg(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 116 +{ } +#endif +# 117 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldg(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 117 +{ } +#endif +# 119 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldg(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 119 +{ } +#endif +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldg(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 120 +{ } +#endif +# 121 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldg(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 121 +{ } +#endif +# 122 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldg(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 122 +{ } +#endif +# 123 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldg(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 128 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldcg(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 128 +{ } +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldcg(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 131 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldcg(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 131 +{ } +#endif +# 132 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldcg(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 132 +{ } +#endif +# 133 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldcg(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 133 +{ } +#endif +# 134 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldcg(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 134 +{ } +#endif +# 135 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldcg(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 135 +{ } +#endif +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldcg(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 137 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldcg(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 137 +{ } +#endif +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldcg(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 138 +{ } +#endif +# 139 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldcg(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 139 +{ } +#endif +# 140 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldcg(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 140 +{ } +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldcg(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 141 +{ } +#endif +# 142 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldcg(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 142 +{ } +#endif +# 144 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldcg(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 145 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldcg(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 145 +{ } +#endif +# 146 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldcg(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 146 +{ } +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldcg(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 147 +{ } +#endif +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldcg(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 148 +{ } +#endif +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldcg(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 149 +{ } +#endif +# 150 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldcg(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 150 +{ } +#endif +# 151 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldcg(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 151 +{ } +#endif +# 152 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldcg(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 152 +{ } +#endif +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldcg(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 153 +{ } +#endif +# 154 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldcg(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 154 +{ } +#endif +# 156 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldcg(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 156 +{ } +#endif +# 157 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldcg(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 157 +{ } +#endif +# 158 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldcg(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 158 +{ } +#endif +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldcg(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 160 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldcg(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 160 +{ } +#endif +# 164 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldca(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 164 +{ } +#endif +# 165 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldca(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 165 +{ } +#endif +# 167 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldca(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 167 +{ } +#endif +# 168 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldca(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 168 +{ } +#endif +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldca(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 169 +{ } +#endif +# 170 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldca(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 170 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldca(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 172 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldca(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 172 +{ } +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldca(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 174 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldca(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 174 +{ } +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldca(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 175 +{ } +#endif +# 176 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldca(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 176 +{ } +#endif +# 177 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldca(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 178 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldca(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 178 +{ } +#endif +# 180 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldca(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 180 +{ } +#endif +# 181 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldca(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 181 +{ } +#endif +# 182 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldca(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 182 +{ } +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldca(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 183 +{ } +#endif +# 184 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldca(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 184 +{ } +#endif +# 185 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldca(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 185 +{ } +#endif +# 186 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldca(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 186 +{ } +#endif +# 187 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldca(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 187 +{ } +#endif +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldca(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 188 +{ } +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldca(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 190 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldca(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 190 +{ } +#endif +# 192 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldca(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 192 +{ } +#endif +# 193 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldca(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 193 +{ } +#endif +# 194 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldca(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 194 +{ } +#endif +# 195 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldca(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 195 +{ } +#endif +# 196 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldca(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 196 +{ } +#endif +# 200 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldcs(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 200 +{ } +#endif +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldcs(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 201 +{ } +#endif +# 203 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldcs(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 203 +{ } +#endif +# 204 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldcs(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 204 +{ } +#endif +# 205 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldcs(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 205 +{ } +#endif +# 206 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldcs(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 206 +{ } +#endif +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldcs(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 207 +{ } +#endif +# 208 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldcs(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 208 +{ } +#endif +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldcs(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 209 +{ } +#endif +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldcs(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 210 +{ } +#endif +# 211 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldcs(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 211 +{ } +#endif +# 212 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldcs(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 212 +{ } +#endif +# 213 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldcs(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 213 +{ } +#endif +# 214 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldcs(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 214 +{ } +#endif +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldcs(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 216 +{ } +#endif +# 217 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldcs(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 217 +{ } +#endif +# 218 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldcs(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 218 +{ } +#endif +# 219 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldcs(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 219 +{ } +#endif +# 220 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldcs(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 220 +{ } +#endif +# 221 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldcs(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 221 +{ } +#endif +# 222 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldcs(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 222 +{ } +#endif +# 223 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldcs(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 223 +{ } +#endif +# 224 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldcs(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 224 +{ } +#endif +# 225 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldcs(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 225 +{ } +#endif +# 226 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldcs(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 226 +{ } +#endif +# 228 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldcs(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 228 +{ } +#endif +# 229 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldcs(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 229 +{ } +#endif +# 230 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldcs(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 230 +{ } +#endif +# 231 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldcs(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 231 +{ } +#endif +# 232 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldcs(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 232 +{ } +#endif +# 236 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldlu(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 236 +{ } +#endif +# 237 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldlu(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 237 +{ } +#endif +# 239 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldlu(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 239 +{ } +#endif +# 240 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldlu(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 240 +{ } +#endif +# 241 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldlu(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 241 +{ } +#endif +# 242 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldlu(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 242 +{ } +#endif +# 243 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldlu(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 243 +{ } +#endif +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldlu(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 244 +{ } +#endif +# 245 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldlu(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 245 +{ } +#endif +# 246 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldlu(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 246 +{ } +#endif +# 247 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldlu(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 247 +{ } +#endif +# 248 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldlu(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 248 +{ } +#endif +# 249 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldlu(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 249 +{ } +#endif +# 250 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldlu(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 250 +{ } +#endif +# 252 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldlu(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 252 +{ } +#endif +# 253 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldlu(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 253 +{ } +#endif +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldlu(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 254 +{ } +#endif +# 255 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldlu(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 255 +{ } +#endif +# 256 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldlu(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 256 +{ } +#endif +# 257 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldlu(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 257 +{ } +#endif +# 258 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldlu(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 258 +{ } +#endif +# 259 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldlu(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 259 +{ } +#endif +# 260 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldlu(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 260 +{ } +#endif +# 261 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldlu(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 261 +{ } +#endif +# 262 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldlu(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 262 +{ } +#endif +# 264 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldlu(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 264 +{ } +#endif +# 265 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldlu(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 265 +{ } +#endif +# 266 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldlu(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 266 +{ } +#endif +# 267 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldlu(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 267 +{ } +#endif +# 268 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldlu(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 268 +{ } +#endif +# 272 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long __ldcv(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 272 +{ } +#endif +# 273 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long __ldcv(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 273 +{ } +#endif +# 275 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char __ldcv(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 275 +{ } +#endif +# 276 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline signed char __ldcv(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 276 +{ } +#endif +# 277 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short __ldcv(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 277 +{ } +#endif +# 278 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int __ldcv(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 278 +{ } +#endif +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline long long __ldcv(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 279 +{ } +#endif +# 280 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char2 __ldcv(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 280 +{ } +#endif +# 281 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline char4 __ldcv(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 281 +{ } +#endif +# 282 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short2 __ldcv(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 282 +{ } +#endif +# 283 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline short4 __ldcv(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 283 +{ } +#endif +# 284 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int2 __ldcv(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 284 +{ } +#endif +# 285 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline int4 __ldcv(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 285 +{ } +#endif +# 286 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline longlong2 __ldcv(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 286 +{ } +#endif +# 288 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned char __ldcv(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 288 +{ } +#endif +# 289 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned short __ldcv(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 289 +{ } +#endif +# 290 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __ldcv(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 290 +{ } +#endif +# 291 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned long long __ldcv(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 291 +{ } +#endif +# 292 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar2 __ldcv(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 292 +{ } +#endif +# 293 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uchar4 __ldcv(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 293 +{ } +#endif +# 294 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort2 __ldcv(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 294 +{ } +#endif +# 295 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ushort4 __ldcv(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 295 +{ } +#endif +# 296 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint2 __ldcv(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 296 +{ } +#endif +# 297 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline uint4 __ldcv(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 297 +{ } +#endif +# 298 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline ulonglong2 __ldcv(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 298 +{ } +#endif +# 300 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float __ldcv(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 300 +{ } +#endif +# 301 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double __ldcv(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 301 +{ } +#endif +# 302 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float2 __ldcv(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 302 +{ } +#endif +# 303 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline float4 __ldcv(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 303 +{ } +#endif +# 304 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline double2 __ldcv(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 304 +{ } +#endif +# 308 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 308 +{ } +#endif +# 309 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 309 +{ } +#endif +# 311 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 311 +{ } +#endif +# 312 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 312 +{ } +#endif +# 313 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 313 +{ } +#endif +# 314 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 314 +{ } +#endif +# 315 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 315 +{ } +#endif +# 316 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 316 +{ } +#endif +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 317 +{ } +#endif +# 318 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 318 +{ } +#endif +# 319 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 319 +{ } +#endif +# 320 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 320 +{ } +#endif +# 321 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 321 +{ } +#endif +# 322 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 322 +{ } +#endif +# 324 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 324 +{ } +#endif +# 325 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 325 +{ } +#endif +# 326 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 326 +{ } +#endif +# 327 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 327 +{ } +#endif +# 328 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 328 +{ } +#endif +# 329 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 329 +{ } +#endif +# 330 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 330 +{ } +#endif +# 331 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 331 +{ } +#endif +# 332 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 332 +{ } +#endif +# 333 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 333 +{ } +#endif +# 334 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 334 +{ } +#endif +# 336 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 336 +{ } +#endif +# 337 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 337 +{ } +#endif +# 338 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 338 +{ } +#endif +# 339 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 339 +{ } +#endif +# 340 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwb(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 340 +{ } +#endif +# 344 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 344 +{ } +#endif +# 345 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 345 +{ } +#endif +# 347 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 347 +{ } +#endif +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 348 +{ } +#endif +# 349 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 349 +{ } +#endif +# 350 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 350 +{ } +#endif +# 351 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 351 +{ } +#endif +# 352 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 352 +{ } +#endif +# 353 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 353 +{ } +#endif +# 354 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 354 +{ } +#endif +# 355 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 355 +{ } +#endif +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 356 +{ } +#endif +# 357 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 357 +{ } +#endif +# 358 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 358 +{ } +#endif +# 360 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 360 +{ } +#endif +# 361 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 361 +{ } +#endif +# 362 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 362 +{ } +#endif +# 363 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 363 +{ } +#endif +# 364 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 364 +{ } +#endif +# 365 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 365 +{ } +#endif +# 366 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 366 +{ } +#endif +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 367 +{ } +#endif +# 368 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 368 +{ } +#endif +# 369 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 369 +{ } +#endif +# 370 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 370 +{ } +#endif +# 372 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 372 +{ } +#endif +# 373 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 373 +{ } +#endif +# 374 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 374 +{ } +#endif +# 375 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 375 +{ } +#endif +# 376 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcg(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 376 +{ } +#endif +# 380 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 380 +{ } +#endif +# 381 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 381 +{ } +#endif +# 383 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 383 +{ } +#endif +# 384 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 384 +{ } +#endif +# 385 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 385 +{ } +#endif +# 386 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 386 +{ } +#endif +# 387 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 387 +{ } +#endif +# 388 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 388 +{ } +#endif +# 389 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 389 +{ } +#endif +# 390 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 390 +{ } +#endif +# 391 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 391 +{ } +#endif +# 392 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 392 +{ } +#endif +# 393 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 393 +{ } +#endif +# 394 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 394 +{ } +#endif +# 396 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 396 +{ } +#endif +# 397 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 397 +{ } +#endif +# 398 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 398 +{ } +#endif +# 399 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 399 +{ } +#endif +# 400 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 400 +{ } +#endif +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 401 +{ } +#endif +# 402 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 402 +{ } +#endif +# 403 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 403 +{ } +#endif +# 404 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 404 +{ } +#endif +# 405 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 405 +{ } +#endif +# 406 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 406 +{ } +#endif +# 408 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 408 +{ } +#endif +# 409 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 409 +{ } +#endif +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 410 +{ } +#endif +# 411 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 411 +{ } +#endif +# 412 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stcs(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 412 +{ } +#endif +# 416 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 416 +{ } +#endif +# 417 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 417 +{ } +#endif +# 419 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 419 +{ } +#endif +# 420 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 420 +{ } +#endif +# 421 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 421 +{ } +#endif +# 422 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 422 +{ } +#endif +# 423 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 423 +{ } +#endif +# 424 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 424 +{ } +#endif +# 425 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 425 +{ } +#endif +# 426 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 426 +{ } +#endif +# 427 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 427 +{ } +#endif +# 428 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 428 +{ } +#endif +# 429 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 429 +{ } +#endif +# 430 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 430 +{ } +#endif +# 432 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 432 +{ } +#endif +# 433 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 433 +{ } +#endif +# 434 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 434 +{ } +#endif +# 435 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 435 +{ } +#endif +# 436 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 436 +{ } +#endif +# 437 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 437 +{ } +#endif +# 438 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 438 +{ } +#endif +# 439 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 439 +{ } +#endif +# 440 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 440 +{ } +#endif +# 441 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 441 +{ } +#endif +# 442 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 442 +{ } +#endif +# 444 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 444 +{ } +#endif +# 445 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 445 +{ } +#endif +# 446 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 446 +{ } +#endif +# 447 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 447 +{ } +#endif +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline void __stwt(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 448 +{ } +#endif +# 465 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __funnelshift_l(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 465 +{ } +#endif +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __funnelshift_lc(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 477 +{ } +#endif +# 490 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __funnelshift_r(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 490 +{ } +#endif +# 502 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_32_intrinsics.h" +__attribute__((unused)) static inline unsigned __funnelshift_rc(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 502 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp2a_lo(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp2a_lo(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp2a_lo(short2 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 125 +{ } +#endif +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp2a_lo(ushort2 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 148 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp2a_hi(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 148 +{ } +#endif +# 159 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp2a_hi(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 171 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp2a_hi(short2 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 182 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp2a_hi(ushort2 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 182 +{ } +#endif +# 197 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp4a(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 197 +{ } +#endif +# 206 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp4a(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 206 +{ } +#endif +# 216 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline int __dp4a(char4 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 216 +{ } +#endif +# 225 "/opt/cuda/bin/../targets/x86_64-linux/include/sm_61_intrinsics.h" +__attribute__((unused)) static inline unsigned __dp4a(uchar4 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 225 +{ } +#endif +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned long long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, long long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, float value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, double value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 108 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, int value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned long long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, long long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, float value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, double value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 116 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline void __nanosleep(unsigned ns) {int volatile ___ = 1;(void)ns;::exit(___);} +#if 0 +# 116 +{ } +#endif +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_70_rt.h" +__attribute__((unused)) static inline unsigned short atomicCAS(unsigned short *address, unsigned short compare, unsigned short val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 118 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_add_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_min_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_max_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline int __reduce_add_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline int __reduce_min_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline int __reduce_max_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_and_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_or_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) static inline unsigned __reduce_xor_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +extern "C" { +# 113 +__attribute__((unused)) inline void *__nv_associate_access_property(const void *ptr, unsigned long long +# 114 +property) {int volatile ___ = 1;(void)ptr;(void)property; +# 118 +::exit(___);} +#if 0 +# 114 +{ +# 115 +__attribute__((unused)) extern void *__nv_associate_access_property_impl(const void *, unsigned long long); +# 117 +return __nv_associate_access_property_impl(ptr, property); +# 118 +} +#endif +# 120 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_4(void *dst, const void * +# 121 +src, unsigned +# 122 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 127 +::exit(___);} +#if 0 +# 122 +{ +# 123 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_4_impl(void *, const void *, unsigned); +# 126 +__nv_memcpy_async_shared_global_4_impl(dst, src, src_size); +# 127 +} +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_8(void *dst, const void * +# 130 +src, unsigned +# 131 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 136 +::exit(___);} +#if 0 +# 131 +{ +# 132 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_8_impl(void *, const void *, unsigned); +# 135 +__nv_memcpy_async_shared_global_8_impl(dst, src, src_size); +# 136 +} +#endif +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_16(void *dst, const void * +# 139 +src, unsigned +# 140 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 145 +::exit(___);} +#if 0 +# 140 +{ +# 141 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_16_impl(void *, const void *, unsigned); +# 144 +__nv_memcpy_async_shared_global_16_impl(dst, src, src_size); +# 145 +} +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_80_rt.h" +} +# 92 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __isCtaShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 92 +{ } +#endif +# 93 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __isClusterShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 94 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void *__cluster_map_shared_rank(const void *ptr, unsigned target_block_rank) {int volatile ___ = 1;(void)ptr;(void)target_block_rank;::exit(___);} +#if 0 +# 94 +{ } +#endif +# 95 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __cluster_query_shared_rank(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 96 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline uint2 __cluster_map_shared_multicast(const void *ptr, unsigned cluster_cta_mask) {int volatile ___ = 1;(void)ptr;(void)cluster_cta_mask;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 97 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterDimIsSpecified() {int volatile ___ = 1;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterDim() {int volatile ___ = 1;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterRelativeBlockIdx() {int volatile ___ = 1;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterGridDimInClusters() {int volatile ___ = 1;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterIdx() {int volatile ___ = 1;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterRelativeBlockRank() {int volatile ___ = 1;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterSizeInBlocks() {int volatile ___ = 1;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_arrive() {int volatile ___ = 1;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_arrive_relaxed() {int volatile ___ = 1;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 106 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_wait() {int volatile ___ = 1;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __threadfence_cluster() {int volatile ___ = 1;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 109 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float2 atomicAdd(float2 *__address, float2 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float2 atomicAdd_block(float2 *__address, float2 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 111 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float2 atomicAdd_system(float2 *__address, float2 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float4 atomicAdd(float4 *__address, float4 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 113 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float4 atomicAdd_block(float4 *__address, float4 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +__attribute__((unused)) static inline float4 atomicAdd_system(float4 *__address, float4 val) {int volatile ___ = 1;(void)__address;(void)val;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 125 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +extern "C" { +# 132 +} +# 139 +template< bool __b, class _T> +# 140 +struct __nv_atomic_enable_if { }; +# 142 +template< class _T> +# 143 +struct __nv_atomic_enable_if< true, _T> { typedef _T __type; }; +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> +# 154 +struct __nv_atomic_triv_cp_helper { +# 161 +static const bool __val = __is_trivially_copyable(_T); +# 166 +}; +# 201 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 203 +atomicCAS(_T *__address, _T __compare, _T __val) {int volatile ___ = 1;(void)__address;(void)__compare;(void)__val; +# 210 +::exit(___);} +#if 0 +# 203 +{ +# 204 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 204 +{ } +#endif +# 204 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 205 +__u128AtomicCAS((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__compare)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 209 +return __u.__ret; +# 210 +} +#endif +# 212 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 214 +atomicCAS_block(_T *__address, _T __compare, _T __val) {int volatile ___ = 1;(void)__address;(void)__compare;(void)__val; +# 221 +::exit(___);} +#if 0 +# 214 +{ +# 215 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 215 +{ } +#endif +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 216 +__u128AtomicCAS_block((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__compare)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 220 +return __u.__ret; +# 221 +} +#endif +# 223 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 225 +atomicCAS_system(_T *__address, _T __compare, _T __val) {int volatile ___ = 1;(void)__address;(void)__compare;(void)__val; +# 232 +::exit(___);} +#if 0 +# 225 +{ +# 226 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 226 +{ } +#endif +# 226 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 227 +__u128AtomicCAS_system((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__compare)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 231 +return __u.__ret; +# 232 +} +#endif +# 234 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 236 +atomicExch(_T *__address, _T __val) {int volatile ___ = 1;(void)__address;(void)__val; +# 242 +::exit(___);} +#if 0 +# 236 +{ +# 237 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 237 +{ } +#endif +# 237 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 238 +__u128AtomicExch((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 241 +return __u.__ret; +# 242 +} +#endif +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 246 +atomicExch_block(_T *__address, _T __val) {int volatile ___ = 1;(void)__address;(void)__val; +# 252 +::exit(___);} +#if 0 +# 246 +{ +# 247 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 247 +{ } +#endif +# 247 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 248 +__u128AtomicExch_block((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 251 +return __u.__ret; +# 252 +} +#endif +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +template< class _T> __attribute__((unused)) static inline typename __nv_atomic_enable_if< (sizeof(_T) == (16)) && (__alignof__(_T) >= (16)) && __nv_atomic_triv_cp_helper< _T> ::__val, _T> ::__type +# 256 +atomicExch_system(_T *__address, _T __val) {int volatile ___ = 1;(void)__address;(void)__val; +# 262 +::exit(___);} +#if 0 +# 256 +{ +# 257 +union _U { _T __ret; _U() {int *volatile ___ = 0;::free(___);} +#if 0 +# 257 +{ } +#endif +# 257 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_90_rt.h" +}; _U __u; +# 258 +__u128AtomicExch_system((void *)__address, (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__val)))), (void *)(&(const_cast< char &>(reinterpret_cast< const volatile char &>(__u.__ret))))); +# 261 +return __u.__ret; +# 262 +} +#endif +# 100 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __ffma2_rn(float2 x, float2 y, float2 z) {int volatile ___ = 1;(void)x;(void)y;(void)z;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __ffma2_rz(float2 x, float2 y, float2 z) {int volatile ___ = 1;(void)x;(void)y;(void)z;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 124 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __ffma2_rd(float2 x, float2 y, float2 z) {int volatile ___ = 1;(void)x;(void)y;(void)z;::exit(___);} +#if 0 +# 124 +{ } +#endif +# 136 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __ffma2_ru(float2 x, float2 y, float2 z) {int volatile ___ = 1;(void)x;(void)y;(void)z;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 149 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fadd2_rn(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 149 +{ } +#endif +# 161 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fadd2_rz(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 161 +{ } +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fadd2_rd(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 185 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fadd2_ru(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 185 +{ } +#endif +# 198 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fmul2_rn(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 198 +{ } +#endif +# 210 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fmul2_rz(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 210 +{ } +#endif +# 222 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fmul2_rd(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 222 +{ } +#endif +# 234 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/sm_100_rt.h" +__attribute__((unused)) static inline float2 __fmul2_ru(float2 x, float2 y) {int volatile ___ = 1;(void)x;(void)y;::exit(___);} +#if 0 +# 234 +{ } +#endif +# 65 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> struct __nv_itex_trait { }; +# 66 +template<> struct __nv_itex_trait< char> { typedef void type; }; +# 67 +template<> struct __nv_itex_trait< signed char> { typedef void type; }; +# 68 +template<> struct __nv_itex_trait< char1> { typedef void type; }; +# 69 +template<> struct __nv_itex_trait< char2> { typedef void type; }; +# 70 +template<> struct __nv_itex_trait< char4> { typedef void type; }; +# 71 +template<> struct __nv_itex_trait< unsigned char> { typedef void type; }; +# 72 +template<> struct __nv_itex_trait< uchar1> { typedef void type; }; +# 73 +template<> struct __nv_itex_trait< uchar2> { typedef void type; }; +# 74 +template<> struct __nv_itex_trait< uchar4> { typedef void type; }; +# 75 +template<> struct __nv_itex_trait< short> { typedef void type; }; +# 76 +template<> struct __nv_itex_trait< short1> { typedef void type; }; +# 77 +template<> struct __nv_itex_trait< short2> { typedef void type; }; +# 78 +template<> struct __nv_itex_trait< short4> { typedef void type; }; +# 79 +template<> struct __nv_itex_trait< unsigned short> { typedef void type; }; +# 80 +template<> struct __nv_itex_trait< ushort1> { typedef void type; }; +# 81 +template<> struct __nv_itex_trait< ushort2> { typedef void type; }; +# 82 +template<> struct __nv_itex_trait< ushort4> { typedef void type; }; +# 83 +template<> struct __nv_itex_trait< int> { typedef void type; }; +# 84 +template<> struct __nv_itex_trait< int1> { typedef void type; }; +# 85 +template<> struct __nv_itex_trait< int2> { typedef void type; }; +# 86 +template<> struct __nv_itex_trait< int4> { typedef void type; }; +# 87 +template<> struct __nv_itex_trait< unsigned> { typedef void type; }; +# 88 +template<> struct __nv_itex_trait< uint1> { typedef void type; }; +# 89 +template<> struct __nv_itex_trait< uint2> { typedef void type; }; +# 90 +template<> struct __nv_itex_trait< uint4> { typedef void type; }; +# 101 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template<> struct __nv_itex_trait< float> { typedef void type; }; +# 102 +template<> struct __nv_itex_trait< float1> { typedef void type; }; +# 103 +template<> struct __nv_itex_trait< float2> { typedef void type; }; +# 104 +template<> struct __nv_itex_trait< float4> { typedef void type; }; +# 108 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 109 +tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +# 110 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x; +# 112 +::exit(___);} +#if 0 +# 110 +{ +# 111 +__nv_tex_surf_handler("__itex1Dfetch", ptr, obj, x); +# 112 +} +#endif +# 114 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 115 +tex1Dfetch(cudaTextureObject_t texObject, int x) +# 116 +{int volatile ___ = 1;(void)texObject;(void)x; +# 120 +::exit(___);} +#if 0 +# 116 +{ +# 117 +T ret; +# 118 +tex1Dfetch(&ret, texObject, x); +# 119 +return ret; +# 120 +} +#endif +# 122 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 123 +tex1D(T *ptr, cudaTextureObject_t obj, float x) +# 124 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x; +# 126 +::exit(___);} +#if 0 +# 124 +{ +# 125 +__nv_tex_surf_handler("__itex1D", ptr, obj, x); +# 126 +} +#endif +# 129 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 130 +tex1D(cudaTextureObject_t texObject, float x) +# 131 +{int volatile ___ = 1;(void)texObject;(void)x; +# 135 +::exit(___);} +#if 0 +# 131 +{ +# 132 +T ret; +# 133 +tex1D(&ret, texObject, x); +# 134 +return ret; +# 135 +} +#endif +# 138 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 139 +tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +# 140 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y; +# 142 +::exit(___);} +#if 0 +# 140 +{ +# 141 +__nv_tex_surf_handler("__itex2D", ptr, obj, x, y); +# 142 +} +#endif +# 144 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 145 +tex2D(cudaTextureObject_t texObject, float x, float y) +# 146 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y; +# 150 +::exit(___);} +#if 0 +# 146 +{ +# 147 +T ret; +# 148 +tex2D(&ret, texObject, x, y); +# 149 +return ret; +# 150 +} +#endif +# 153 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 154 +tex2D(T *ptr, cudaTextureObject_t obj, float x, float y, bool * +# 155 +isResident) +# 156 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)isResident; +# 160 +::exit(___);} +#if 0 +# 156 +{ +# 157 +unsigned char res; +# 158 +__nv_tex_surf_handler("__itex2D_sparse", ptr, obj, x, y, &res); +# 159 +(*isResident) = (res != 0); +# 160 +} +#endif +# 162 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 163 +tex2D(cudaTextureObject_t texObject, float x, float y, bool *isResident) +# 164 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)isResident; +# 168 +::exit(___);} +#if 0 +# 164 +{ +# 165 +T ret; +# 166 +tex2D(&ret, texObject, x, y, isResident); +# 167 +return ret; +# 168 +} +#endif +# 173 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 174 +tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +# 175 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z; +# 177 +::exit(___);} +#if 0 +# 175 +{ +# 176 +__nv_tex_surf_handler("__itex3D", ptr, obj, x, y, z); +# 177 +} +#endif +# 179 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 180 +tex3D(cudaTextureObject_t texObject, float x, float y, float z) +# 181 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z; +# 185 +::exit(___);} +#if 0 +# 181 +{ +# 182 +T ret; +# 183 +tex3D(&ret, texObject, x, y, z); +# 184 +return ret; +# 185 +} +#endif +# 188 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 189 +tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z, bool * +# 190 +isResident) +# 191 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)isResident; +# 195 +::exit(___);} +#if 0 +# 191 +{ +# 192 +unsigned char res; +# 193 +__nv_tex_surf_handler("__itex3D_sparse", ptr, obj, x, y, z, &res); +# 194 +(*isResident) = (res != 0); +# 195 +} +#endif +# 197 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 198 +tex3D(cudaTextureObject_t texObject, float x, float y, float z, bool *isResident) +# 199 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)isResident; +# 203 +::exit(___);} +#if 0 +# 199 +{ +# 200 +T ret; +# 201 +tex3D(&ret, texObject, x, y, z, isResident); +# 202 +return ret; +# 203 +} +#endif +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 208 +tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +# 209 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer; +# 211 +::exit(___);} +#if 0 +# 209 +{ +# 210 +__nv_tex_surf_handler("__itex1DLayered", ptr, obj, x, layer); +# 211 +} +#endif +# 213 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 214 +tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +# 215 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer; +# 219 +::exit(___);} +#if 0 +# 215 +{ +# 216 +T ret; +# 217 +tex1DLayered(&ret, texObject, x, layer); +# 218 +return ret; +# 219 +} +#endif +# 221 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 222 +tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +# 223 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer; +# 225 +::exit(___);} +#if 0 +# 223 +{ +# 224 +__nv_tex_surf_handler("__itex2DLayered", ptr, obj, x, y, layer); +# 225 +} +#endif +# 227 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 228 +tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +# 229 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer; +# 233 +::exit(___);} +#if 0 +# 229 +{ +# 230 +T ret; +# 231 +tex2DLayered(&ret, texObject, x, y, layer); +# 232 +return ret; +# 233 +} +#endif +# 236 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 237 +tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, bool *isResident) +# 238 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)isResident; +# 242 +::exit(___);} +#if 0 +# 238 +{ +# 239 +unsigned char res; +# 240 +__nv_tex_surf_handler("__itex2DLayered_sparse", ptr, obj, x, y, layer, &res); +# 241 +(*isResident) = (res != 0); +# 242 +} +#endif +# 244 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 245 +tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer, bool *isResident) +# 246 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)isResident; +# 250 +::exit(___);} +#if 0 +# 246 +{ +# 247 +T ret; +# 248 +tex2DLayered(&ret, texObject, x, y, layer, isResident); +# 249 +return ret; +# 250 +} +#endif +# 254 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 255 +texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +# 256 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z; +# 258 +::exit(___);} +#if 0 +# 256 +{ +# 257 +__nv_tex_surf_handler("__itexCubemap", ptr, obj, x, y, z); +# 258 +} +#endif +# 261 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 262 +texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +# 263 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z; +# 267 +::exit(___);} +#if 0 +# 263 +{ +# 264 +T ret; +# 265 +texCubemap(&ret, texObject, x, y, z); +# 266 +return ret; +# 267 +} +#endif +# 270 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 271 +texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +# 272 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer; +# 274 +::exit(___);} +#if 0 +# 272 +{ +# 273 +__nv_tex_surf_handler("__itexCubemapLayered", ptr, obj, x, y, z, layer); +# 274 +} +#endif +# 276 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 277 +texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +# 278 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer; +# 282 +::exit(___);} +#if 0 +# 278 +{ +# 279 +T ret; +# 280 +texCubemapLayered(&ret, texObject, x, y, z, layer); +# 281 +return ret; +# 282 +} +#endif +# 284 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 285 +tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +# 286 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)comp; +# 288 +::exit(___);} +#if 0 +# 286 +{ +# 287 +__nv_tex_surf_handler("__itex2Dgather", ptr, obj, x, y, comp); +# 288 +} +#endif +# 290 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 291 +tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +# 292 +{int volatile ___ = 1;(void)to;(void)x;(void)y;(void)comp; +# 296 +::exit(___);} +#if 0 +# 292 +{ +# 293 +T ret; +# 294 +tex2Dgather(&ret, to, x, y, comp); +# 295 +return ret; +# 296 +} +#endif +# 299 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 300 +tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, bool *isResident, int comp = 0) +# 301 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)isResident;(void)comp; +# 305 +::exit(___);} +#if 0 +# 301 +{ +# 302 +unsigned char res; +# 303 +__nv_tex_surf_handler("__itex2Dgather_sparse", ptr, obj, x, y, comp, &res); +# 304 +(*isResident) = (res != 0); +# 305 +} +#endif +# 307 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 308 +tex2Dgather(cudaTextureObject_t to, float x, float y, bool *isResident, int comp = 0) +# 309 +{int volatile ___ = 1;(void)to;(void)x;(void)y;(void)isResident;(void)comp; +# 313 +::exit(___);} +#if 0 +# 309 +{ +# 310 +T ret; +# 311 +tex2Dgather(&ret, to, x, y, isResident, comp); +# 312 +return ret; +# 313 +} +#endif +# 317 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 318 +tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +# 319 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)level; +# 321 +::exit(___);} +#if 0 +# 319 +{ +# 320 +__nv_tex_surf_handler("__itex1DLod", ptr, obj, x, level); +# 321 +} +#endif +# 323 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 324 +tex1DLod(cudaTextureObject_t texObject, float x, float level) +# 325 +{int volatile ___ = 1;(void)texObject;(void)x;(void)level; +# 329 +::exit(___);} +#if 0 +# 325 +{ +# 326 +T ret; +# 327 +tex1DLod(&ret, texObject, x, level); +# 328 +return ret; +# 329 +} +#endif +# 332 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 333 +tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +# 334 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)level; +# 336 +::exit(___);} +#if 0 +# 334 +{ +# 335 +__nv_tex_surf_handler("__itex2DLod", ptr, obj, x, y, level); +# 336 +} +#endif +# 338 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 339 +tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +# 340 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)level; +# 344 +::exit(___);} +#if 0 +# 340 +{ +# 341 +T ret; +# 342 +tex2DLod(&ret, texObject, x, y, level); +# 343 +return ret; +# 344 +} +#endif +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 349 +tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level, bool *isResident) +# 350 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)level;(void)isResident; +# 354 +::exit(___);} +#if 0 +# 350 +{ +# 351 +unsigned char res; +# 352 +__nv_tex_surf_handler("__itex2DLod_sparse", ptr, obj, x, y, level, &res); +# 353 +(*isResident) = (res != 0); +# 354 +} +#endif +# 356 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 357 +tex2DLod(cudaTextureObject_t texObject, float x, float y, float level, bool *isResident) +# 358 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)level;(void)isResident; +# 362 +::exit(___);} +#if 0 +# 358 +{ +# 359 +T ret; +# 360 +tex2DLod(&ret, texObject, x, y, level, isResident); +# 361 +return ret; +# 362 +} +#endif +# 367 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 368 +tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +# 369 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level; +# 371 +::exit(___);} +#if 0 +# 369 +{ +# 370 +__nv_tex_surf_handler("__itex3DLod", ptr, obj, x, y, z, level); +# 371 +} +#endif +# 373 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 374 +tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +# 375 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level; +# 379 +::exit(___);} +#if 0 +# 375 +{ +# 376 +T ret; +# 377 +tex3DLod(&ret, texObject, x, y, z, level); +# 378 +return ret; +# 379 +} +#endif +# 382 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 383 +tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level, bool *isResident) +# 384 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level;(void)isResident; +# 388 +::exit(___);} +#if 0 +# 384 +{ +# 385 +unsigned char res; +# 386 +__nv_tex_surf_handler("__itex3DLod_sparse", ptr, obj, x, y, z, level, &res); +# 387 +(*isResident) = (res != 0); +# 388 +} +#endif +# 390 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 391 +tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level, bool *isResident) +# 392 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level;(void)isResident; +# 396 +::exit(___);} +#if 0 +# 392 +{ +# 393 +T ret; +# 394 +tex3DLod(&ret, texObject, x, y, z, level, isResident); +# 395 +return ret; +# 396 +} +#endif +# 401 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 402 +tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +# 403 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)level; +# 405 +::exit(___);} +#if 0 +# 403 +{ +# 404 +__nv_tex_surf_handler("__itex1DLayeredLod", ptr, obj, x, layer, level); +# 405 +} +#endif +# 407 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 408 +tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +# 409 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer;(void)level; +# 413 +::exit(___);} +#if 0 +# 409 +{ +# 410 +T ret; +# 411 +tex1DLayeredLod(&ret, texObject, x, layer, level); +# 412 +return ret; +# 413 +} +#endif +# 416 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 417 +tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +# 418 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)level; +# 420 +::exit(___);} +#if 0 +# 418 +{ +# 419 +__nv_tex_surf_handler("__itex2DLayeredLod", ptr, obj, x, y, layer, level); +# 420 +} +#endif +# 422 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 423 +tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +# 424 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)level; +# 428 +::exit(___);} +#if 0 +# 424 +{ +# 425 +T ret; +# 426 +tex2DLayeredLod(&ret, texObject, x, y, layer, level); +# 427 +return ret; +# 428 +} +#endif +# 431 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 432 +tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level, bool *isResident) +# 433 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)level;(void)isResident; +# 437 +::exit(___);} +#if 0 +# 433 +{ +# 434 +unsigned char res; +# 435 +__nv_tex_surf_handler("__itex2DLayeredLod_sparse", ptr, obj, x, y, layer, level, &res); +# 436 +(*isResident) = (res != 0); +# 437 +} +#endif +# 439 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 440 +tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level, bool *isResident) +# 441 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)level;(void)isResident; +# 445 +::exit(___);} +#if 0 +# 441 +{ +# 442 +T ret; +# 443 +tex2DLayeredLod(&ret, texObject, x, y, layer, level, isResident); +# 444 +return ret; +# 445 +} +#endif +# 448 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 449 +texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +# 450 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level; +# 452 +::exit(___);} +#if 0 +# 450 +{ +# 451 +__nv_tex_surf_handler("__itexCubemapLod", ptr, obj, x, y, z, level); +# 452 +} +#endif +# 454 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 455 +texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +# 456 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level; +# 460 +::exit(___);} +#if 0 +# 456 +{ +# 457 +T ret; +# 458 +texCubemapLod(&ret, texObject, x, y, z, level); +# 459 +return ret; +# 460 +} +#endif +# 463 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 464 +texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +# 465 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 467 +::exit(___);} +#if 0 +# 465 +{ +# 466 +__nv_tex_surf_handler("__itexCubemapGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +# 467 +} +#endif +# 469 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 470 +texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +# 471 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 475 +::exit(___);} +#if 0 +# 471 +{ +# 472 +T ret; +# 473 +texCubemapGrad(&ret, texObject, x, y, z, dPdx, dPdy); +# 474 +return ret; +# 475 +} +#endif +# 477 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 478 +texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +# 479 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer;(void)level; +# 481 +::exit(___);} +#if 0 +# 479 +{ +# 480 +__nv_tex_surf_handler("__itexCubemapLayeredLod", ptr, obj, x, y, z, layer, level); +# 481 +} +#endif +# 483 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 484 +texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +# 485 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer;(void)level; +# 489 +::exit(___);} +#if 0 +# 485 +{ +# 486 +T ret; +# 487 +texCubemapLayeredLod(&ret, texObject, x, y, z, layer, level); +# 488 +return ret; +# 489 +} +#endif +# 491 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 492 +tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +# 493 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)dPdx;(void)dPdy; +# 495 +::exit(___);} +#if 0 +# 493 +{ +# 494 +__nv_tex_surf_handler("__itex1DGrad", ptr, obj, x, dPdx, dPdy); +# 495 +} +#endif +# 497 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 498 +tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +# 499 +{int volatile ___ = 1;(void)texObject;(void)x;(void)dPdx;(void)dPdy; +# 503 +::exit(___);} +#if 0 +# 499 +{ +# 500 +T ret; +# 501 +tex1DGrad(&ret, texObject, x, dPdx, dPdy); +# 502 +return ret; +# 503 +} +#endif +# 506 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 507 +tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +# 508 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)dPdx;(void)dPdy; +# 510 +::exit(___);} +#if 0 +# 508 +{ +# 509 +__nv_tex_surf_handler("__itex2DGrad_v2", ptr, obj, x, y, &dPdx, &dPdy); +# 510 +} +#endif +# 512 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 513 +tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +# 514 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)dPdx;(void)dPdy; +# 518 +::exit(___);} +#if 0 +# 514 +{ +# 515 +T ret; +# 516 +tex2DGrad(&ret, texObject, x, y, dPdx, dPdy); +# 517 +return ret; +# 518 +} +#endif +# 521 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 522 +tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy, bool *isResident) +# 523 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)dPdx;(void)dPdy;(void)isResident; +# 527 +::exit(___);} +#if 0 +# 523 +{ +# 524 +unsigned char res; +# 525 +__nv_tex_surf_handler("__itex2DGrad_sparse", ptr, obj, x, y, &dPdx, &dPdy, &res); +# 526 +(*isResident) = (res != 0); +# 527 +} +#endif +# 529 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 530 +tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy, bool *isResident) +# 531 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)dPdx;(void)dPdy;(void)isResident; +# 535 +::exit(___);} +#if 0 +# 531 +{ +# 532 +T ret; +# 533 +tex2DGrad(&ret, texObject, x, y, dPdx, dPdy, isResident); +# 534 +return ret; +# 535 +} +#endif +# 539 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 540 +tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +# 541 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 543 +::exit(___);} +#if 0 +# 541 +{ +# 542 +__nv_tex_surf_handler("__itex3DGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); +# 543 +} +#endif +# 545 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 546 +tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +# 547 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 551 +::exit(___);} +#if 0 +# 547 +{ +# 548 +T ret; +# 549 +tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy); +# 550 +return ret; +# 551 +} +#endif +# 554 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 555 +tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy, bool *isResident) +# 556 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy;(void)isResident; +# 560 +::exit(___);} +#if 0 +# 556 +{ +# 557 +unsigned char res; +# 558 +__nv_tex_surf_handler("__itex3DGrad_sparse", ptr, obj, x, y, z, &dPdx, &dPdy, &res); +# 559 +(*isResident) = (res != 0); +# 560 +} +#endif +# 562 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 563 +tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy, bool *isResident) +# 564 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy;(void)isResident; +# 568 +::exit(___);} +#if 0 +# 564 +{ +# 565 +T ret; +# 566 +tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy, isResident); +# 567 +return ret; +# 568 +} +#endif +# 573 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 574 +tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +# 575 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)dPdx;(void)dPdy; +# 577 +::exit(___);} +#if 0 +# 575 +{ +# 576 +__nv_tex_surf_handler("__itex1DLayeredGrad", ptr, obj, x, layer, dPdx, dPdy); +# 577 +} +#endif +# 579 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 580 +tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +# 581 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer;(void)dPdx;(void)dPdy; +# 585 +::exit(___);} +#if 0 +# 581 +{ +# 582 +T ret; +# 583 +tex1DLayeredGrad(&ret, texObject, x, layer, dPdx, dPdy); +# 584 +return ret; +# 585 +} +#endif +# 588 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 589 +tex2DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +# 590 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy; +# 592 +::exit(___);} +#if 0 +# 590 +{ +# 591 +__nv_tex_surf_handler("__itex2DLayeredGrad_v2", ptr, obj, x, y, layer, &dPdx, &dPdy); +# 592 +} +#endif +# 594 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 595 +tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +# 596 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy; +# 600 +::exit(___);} +#if 0 +# 596 +{ +# 597 +T ret; +# 598 +tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy); +# 599 +return ret; +# 600 +} +#endif +# 603 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 604 +tex2DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy, bool *isResident) +# 605 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy;(void)isResident; +# 609 +::exit(___);} +#if 0 +# 605 +{ +# 606 +unsigned char res; +# 607 +__nv_tex_surf_handler("__itex2DLayeredGrad_sparse", ptr, obj, x, y, layer, &dPdx, &dPdy, &res); +# 608 +(*isResident) = (res != 0); +# 609 +} +#endif +# 611 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 612 +tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy, bool *isResident) +# 613 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy;(void)isResident; +# 617 +::exit(___);} +#if 0 +# 613 +{ +# 614 +T ret; +# 615 +tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy, isResident); +# 616 +return ret; +# 617 +} +#endif +# 621 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 622 +texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +# 623 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer;(void)dPdx;(void)dPdy; +# 625 +::exit(___);} +#if 0 +# 623 +{ +# 624 +__nv_tex_surf_handler("__itexCubemapLayeredGrad_v2", ptr, obj, x, y, z, layer, &dPdx, &dPdy); +# 625 +} +#endif +# 627 "/opt/cuda/bin/../targets/x86_64-linux/include/texture_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 628 +texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +# 629 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer;(void)dPdx;(void)dPdy; +# 633 +::exit(___);} +#if 0 +# 629 +{ +# 630 +T ret; +# 631 +texCubemapLayeredGrad(&ret, texObject, x, y, z, layer, dPdx, dPdy); +# 632 +return ret; +# 633 +} +#endif +# 58 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> struct __nv_isurf_trait { }; +# 59 +template<> struct __nv_isurf_trait< char> { typedef void type; }; +# 60 +template<> struct __nv_isurf_trait< signed char> { typedef void type; }; +# 61 +template<> struct __nv_isurf_trait< char1> { typedef void type; }; +# 62 +template<> struct __nv_isurf_trait< unsigned char> { typedef void type; }; +# 63 +template<> struct __nv_isurf_trait< uchar1> { typedef void type; }; +# 64 +template<> struct __nv_isurf_trait< short> { typedef void type; }; +# 65 +template<> struct __nv_isurf_trait< short1> { typedef void type; }; +# 66 +template<> struct __nv_isurf_trait< unsigned short> { typedef void type; }; +# 67 +template<> struct __nv_isurf_trait< ushort1> { typedef void type; }; +# 68 +template<> struct __nv_isurf_trait< int> { typedef void type; }; +# 69 +template<> struct __nv_isurf_trait< int1> { typedef void type; }; +# 70 +template<> struct __nv_isurf_trait< unsigned> { typedef void type; }; +# 71 +template<> struct __nv_isurf_trait< uint1> { typedef void type; }; +# 72 +template<> struct __nv_isurf_trait< long long> { typedef void type; }; +# 73 +template<> struct __nv_isurf_trait< longlong1> { typedef void type; }; +# 74 +template<> struct __nv_isurf_trait< unsigned long long> { typedef void type; }; +# 75 +template<> struct __nv_isurf_trait< ulonglong1> { typedef void type; }; +# 76 +template<> struct __nv_isurf_trait< float> { typedef void type; }; +# 77 +template<> struct __nv_isurf_trait< float1> { typedef void type; }; +# 79 +template<> struct __nv_isurf_trait< char2> { typedef void type; }; +# 80 +template<> struct __nv_isurf_trait< uchar2> { typedef void type; }; +# 81 +template<> struct __nv_isurf_trait< short2> { typedef void type; }; +# 82 +template<> struct __nv_isurf_trait< ushort2> { typedef void type; }; +# 83 +template<> struct __nv_isurf_trait< int2> { typedef void type; }; +# 84 +template<> struct __nv_isurf_trait< uint2> { typedef void type; }; +# 85 +template<> struct __nv_isurf_trait< longlong2> { typedef void type; }; +# 86 +template<> struct __nv_isurf_trait< ulonglong2> { typedef void type; }; +# 87 +template<> struct __nv_isurf_trait< float2> { typedef void type; }; +# 89 +template<> struct __nv_isurf_trait< char4> { typedef void type; }; +# 90 +template<> struct __nv_isurf_trait< uchar4> { typedef void type; }; +# 91 +template<> struct __nv_isurf_trait< short4> { typedef void type; }; +# 92 +template<> struct __nv_isurf_trait< ushort4> { typedef void type; }; +# 93 +template<> struct __nv_isurf_trait< int4> { typedef void type; }; +# 94 +template<> struct __nv_isurf_trait< uint4> { typedef void type; }; +# 95 +template<> struct __nv_isurf_trait< float4> { typedef void type; }; +# 98 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 99 +surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 100 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)mode; +# 102 +::exit(___);} +#if 0 +# 100 +{ +# 101 +__nv_tex_surf_handler("__isurf1Dread", ptr, obj, x, mode); +# 102 +} +#endif +# 104 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 105 +surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 106 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)boundaryMode; +# 110 +::exit(___);} +#if 0 +# 106 +{ +# 107 +T ret; +# 108 +surf1Dread(&ret, surfObject, x, boundaryMode); +# 109 +return ret; +# 110 +} +#endif +# 112 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 113 +surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 114 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)mode; +# 116 +::exit(___);} +#if 0 +# 114 +{ +# 115 +__nv_tex_surf_handler("__isurf2Dread", ptr, obj, x, y, mode); +# 116 +} +#endif +# 118 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 119 +surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 120 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)boundaryMode; +# 124 +::exit(___);} +#if 0 +# 120 +{ +# 121 +T ret; +# 122 +surf2Dread(&ret, surfObject, x, y, boundaryMode); +# 123 +return ret; +# 124 +} +#endif +# 127 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 128 +surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 129 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)mode; +# 131 +::exit(___);} +#if 0 +# 129 +{ +# 130 +__nv_tex_surf_handler("__isurf3Dread", ptr, obj, x, y, z, mode); +# 131 +} +#endif +# 133 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 134 +surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 135 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)z;(void)boundaryMode; +# 139 +::exit(___);} +#if 0 +# 135 +{ +# 136 +T ret; +# 137 +surf3Dread(&ret, surfObject, x, y, z, boundaryMode); +# 138 +return ret; +# 139 +} +#endif +# 141 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 142 +surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 143 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)mode; +# 145 +::exit(___);} +#if 0 +# 143 +{ +# 144 +__nv_tex_surf_handler("__isurf1DLayeredread", ptr, obj, x, layer, mode); +# 145 +} +#endif +# 147 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 148 +surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 149 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)layer;(void)boundaryMode; +# 153 +::exit(___);} +#if 0 +# 149 +{ +# 150 +T ret; +# 151 +surf1DLayeredread(&ret, surfObject, x, layer, boundaryMode); +# 152 +return ret; +# 153 +} +#endif +# 155 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 156 +surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 157 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)mode; +# 159 +::exit(___);} +#if 0 +# 157 +{ +# 158 +__nv_tex_surf_handler("__isurf2DLayeredread", ptr, obj, x, y, layer, mode); +# 159 +} +#endif +# 161 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 162 +surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 163 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)layer;(void)boundaryMode; +# 167 +::exit(___);} +#if 0 +# 163 +{ +# 164 +T ret; +# 165 +surf2DLayeredread(&ret, surfObject, x, y, layer, boundaryMode); +# 166 +return ret; +# 167 +} +#endif +# 169 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 170 +surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 171 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)face;(void)mode; +# 173 +::exit(___);} +#if 0 +# 171 +{ +# 172 +__nv_tex_surf_handler("__isurfCubemapread", ptr, obj, x, y, face, mode); +# 173 +} +#endif +# 175 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 176 +surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 177 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)face;(void)boundaryMode; +# 181 +::exit(___);} +#if 0 +# 177 +{ +# 178 +T ret; +# 179 +surfCubemapread(&ret, surfObject, x, y, face, boundaryMode); +# 180 +return ret; +# 181 +} +#endif +# 183 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 184 +surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 185 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layerface;(void)mode; +# 187 +::exit(___);} +#if 0 +# 185 +{ +# 186 +__nv_tex_surf_handler("__isurfCubemapLayeredread", ptr, obj, x, y, layerface, mode); +# 187 +} +#endif +# 189 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static T +# 190 +surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 191 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)layerface;(void)boundaryMode; +# 195 +::exit(___);} +#if 0 +# 191 +{ +# 192 +T ret; +# 193 +surfCubemapLayeredread(&ret, surfObject, x, y, layerface, boundaryMode); +# 194 +return ret; +# 195 +} +#endif +# 197 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 198 +surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 199 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)mode; +# 201 +::exit(___);} +#if 0 +# 199 +{ +# 200 +__nv_tex_surf_handler("__isurf1Dwrite_v2", &val, obj, x, mode); +# 201 +} +#endif +# 203 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 204 +surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 205 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)mode; +# 207 +::exit(___);} +#if 0 +# 205 +{ +# 206 +__nv_tex_surf_handler("__isurf2Dwrite_v2", &val, obj, x, y, mode); +# 207 +} +#endif +# 209 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 210 +surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 211 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)z;(void)mode; +# 213 +::exit(___);} +#if 0 +# 211 +{ +# 212 +__nv_tex_surf_handler("__isurf3Dwrite_v2", &val, obj, x, y, z, mode); +# 213 +} +#endif +# 215 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 216 +surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 217 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)layer;(void)mode; +# 219 +::exit(___);} +#if 0 +# 217 +{ +# 218 +__nv_tex_surf_handler("__isurf1DLayeredwrite_v2", &val, obj, x, layer, mode); +# 219 +} +#endif +# 221 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 222 +surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 223 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)layer;(void)mode; +# 225 +::exit(___);} +#if 0 +# 223 +{ +# 224 +__nv_tex_surf_handler("__isurf2DLayeredwrite_v2", &val, obj, x, y, layer, mode); +# 225 +} +#endif +# 227 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 228 +surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 229 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)face;(void)mode; +# 231 +::exit(___);} +#if 0 +# 229 +{ +# 230 +__nv_tex_surf_handler("__isurfCubemapwrite_v2", &val, obj, x, y, face, mode); +# 231 +} +#endif +# 233 "/opt/cuda/bin/../targets/x86_64-linux/include/surface_indirect_functions.h" +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 234 +surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 235 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)layerface;(void)mode; +# 237 +::exit(___);} +#if 0 +# 235 +{ +# 236 +__nv_tex_surf_handler("__isurfCubemapLayeredwrite_v2", &val, obj, x, y, layerface, mode); +# 237 +} +#endif +# 2924 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +extern "C" unsigned __cudaPushCallConfiguration(dim3 gridDim, dim3 blockDim, size_t sharedMem = 0, CUstream_st * stream = 0); +# 2969 "/opt/cuda/bin/../targets/x86_64-linux/include/crt/device_functions.h" +enum { +# 2970 +__NV_ATOMIC_RELAXED, +# 2971 +__NV_ATOMIC_CONSUME, +# 2972 +__NV_ATOMIC_ACQUIRE, +# 2973 +__NV_ATOMIC_RELEASE, +# 2974 +__NV_ATOMIC_ACQ_REL, +# 2975 +__NV_ATOMIC_SEQ_CST +# 2976 +}; +# 2978 +enum { +# 2979 +__NV_THREAD_SCOPE_THREAD, +# 2980 +__NV_THREAD_SCOPE_BLOCK, +# 2981 +__NV_THREAD_SCOPE_CLUSTER, +# 2982 +__NV_THREAD_SCOPE_DEVICE, +# 2983 +__NV_THREAD_SCOPE_SYSTEM +# 2984 +}; +# 68 "/opt/cuda/bin/../targets/x86_64-linux/include/device_launch_parameters.h" +extern "C" { +# 71 +extern const uint3 __device_builtin_variable_threadIdx; +# 72 +extern const uint3 __device_builtin_variable_blockIdx; +# 73 +extern const dim3 __device_builtin_variable_blockDim; +# 74 +extern const dim3 __device_builtin_variable_gridDim; +# 75 +extern const int __device_builtin_variable_warpSize; +# 80 +} +# 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 66 +namespace rel_ops { +# 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 88 +operator!=(const _Tp &__x, const _Tp &__y) +# 89 +{ return !(__x == __y); } +# 99 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 101 +operator>(const _Tp &__x, const _Tp &__y) +# 102 +{ return __y < __x; } +# 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 114 +operator<=(const _Tp &__x, const _Tp &__y) +# 115 +{ return !(__y < __x); } +# 125 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 127 +operator>=(const _Tp &__x, const _Tp &__y) +# 128 +{ return !(__x < __y); } +# 129 +} +# 132 +} +# 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/initializer_list" 3 +namespace std __attribute((__visibility__("default"))) { +# 44 +template< class _E> +# 45 +class initializer_list { +# 48 +public: typedef _E value_type; +# 49 +typedef const _E &reference; +# 50 +typedef const _E &const_reference; +# 51 +typedef size_t size_type; +# 52 +typedef const _E *iterator; +# 53 +typedef const _E *const_iterator; +# 56 +private: iterator _M_array; +# 57 +size_type _M_len; +# 60 +constexpr initializer_list(const_iterator __a, size_type __l) : _M_array(__a), _M_len(__l) +# 61 +{ } +# 64 +public: constexpr initializer_list() noexcept : _M_array((0)), _M_len((0)) +# 65 +{ } +# 69 +constexpr size_type size() const noexcept { return _M_len; } +# 73 +constexpr const_iterator begin() const noexcept { return _M_array; } +# 77 +constexpr const_iterator end() const noexcept { return begin() + size(); } +# 78 +}; +# 86 +template< class _Tp> constexpr const _Tp * +# 88 +begin(initializer_list< _Tp> __ils) noexcept +# 89 +{ return __ils.begin(); } +# 97 +template< class _Tp> constexpr const _Tp * +# 99 +end(initializer_list< _Tp> __ils) noexcept +# 100 +{ return __ils.end(); } +# 101 +} +# 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +namespace std __attribute((__visibility__("default"))) { +# 104 +template< class _Tp, class _Up = _Tp> inline _Tp +# 107 +exchange(_Tp &__obj, _Up &&__new_val) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_assignable< _Tp &, _Up> > ::value) +# 110 +{ return std::__exchange(__obj, std::forward< _Up> (__new_val)); } +# 114 +template< class _Tp> +# 115 +[[nodiscard]] constexpr add_const_t< _Tp> & +# 117 +as_const(_Tp &__t) noexcept +# 118 +{ return __t; } +# 120 +template < typename _Tp > + void as_const ( const _Tp && ) = delete; +# 231 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/utility" 3 +} +# 207 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 208 +cudaLaunchKernel(T * +# 209 +func, dim3 +# 210 +gridDim, dim3 +# 211 +blockDim, void ** +# 212 +args, size_t +# 213 +sharedMem = 0, cudaStream_t +# 214 +stream = 0) +# 216 +{ +# 217 +return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +# 218 +} +# 279 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class ...ExpTypes, class ...ActTypes> static inline cudaError_t +# 280 +cudaLaunchKernelEx(const cudaLaunchConfig_t * +# 281 +config, void (* +# 282 +kernel)(ExpTypes ...), ActTypes &&... +# 283 +args) +# 285 +{ +# 286 +return [&](ExpTypes ...coercedArgs) { +# 287 +void *pArgs[] = {(&coercedArgs)...}; +# 288 +return ::cudaLaunchKernelExC(config, (const void *)(kernel), pArgs); +# 289 +} (std::forward< ActTypes> (args)...); +# 290 +} +# 348 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class ...ActTypes> static inline cudaError_t +# 349 +cudaLaunchKernelEx(const cudaLaunchConfig_t * +# 350 +config, const cudaKernel_t +# 351 +kernel, ActTypes &&... +# 352 +args) +# 354 +{ +# 355 +void *pArgs[] = {(&args)...}; +# 356 +return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); +# 357 +} +# 410 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 411 +cudaLaunchCooperativeKernel(T * +# 412 +func, dim3 +# 413 +gridDim, dim3 +# 414 +blockDim, void ** +# 415 +args, size_t +# 416 +sharedMem = 0, cudaStream_t +# 417 +stream = 0) +# 419 +{ +# 420 +return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +# 421 +} +# 454 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static inline cudaError_t cudaEventCreate(cudaEvent_t * +# 455 +event, unsigned +# 456 +flags) +# 458 +{ +# 459 +return ::cudaEventCreateWithFlags(event, flags); +# 460 +} +# 498 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static inline cudaError_t cudaGraphInstantiate(cudaGraphExec_t * +# 499 +pGraphExec, cudaGraph_t +# 500 +graph, cudaGraphNode_t * +# 501 +pErrorNode, char * +# 502 +pLogBuffer, size_t +# 503 +bufferSize) +# 505 +{ +# 506 +(void)pErrorNode; +# 507 +(void)pLogBuffer; +# 508 +(void)bufferSize; +# 509 +return ::cudaGraphInstantiate(pGraphExec, graph, 0); +# 510 +} +# 569 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static inline cudaError_t cudaMallocHost(void ** +# 570 +ptr, size_t +# 571 +size, unsigned +# 572 +flags) +# 574 +{ +# 575 +return ::cudaHostAlloc(ptr, size, flags); +# 576 +} +# 578 +template< class T> static inline cudaError_t +# 579 +cudaHostAlloc(T ** +# 580 +ptr, size_t +# 581 +size, unsigned +# 582 +flags) +# 584 +{ +# 585 +return ::cudaHostAlloc((void **)((void *)ptr), size, flags); +# 586 +} +# 588 +template< class T> static inline cudaError_t +# 589 +cudaHostGetDevicePointer(T ** +# 590 +pDevice, void * +# 591 +pHost, unsigned +# 592 +flags) +# 594 +{ +# 595 +return ::cudaHostGetDevicePointer((void **)((void *)pDevice), pHost, flags); +# 596 +} +# 698 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 699 +cudaMallocManaged(T ** +# 700 +devPtr, size_t +# 701 +size, unsigned +# 702 +flags = 1) +# 704 +{ +# 705 +return ::cudaMallocManaged((void **)((void *)devPtr), size, flags); +# 706 +} +# 716 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> cudaError_t +# 717 +cudaMemAdvise(T * +# 718 +devPtr, size_t +# 719 +count, cudaMemoryAdvise +# 720 +advice, cudaMemLocation +# 721 +location) +# 723 +{ +# 724 +return ::cudaMemAdvise_v2((const void *)devPtr, count, advice, location); +# 725 +} +# 727 +template< class T> static inline cudaError_t +# 728 +cudaMemPrefetchAsync(T * +# 729 +devPtr, size_t +# 730 +count, cudaMemLocation +# 731 +location, unsigned +# 732 +flags, cudaStream_t +# 733 +stream = 0) +# 735 +{ +# 736 +return ::cudaMemPrefetchAsync_v2((const void *)devPtr, count, location, flags, stream); +# 737 +} +# 819 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 820 +cudaStreamAttachMemAsync(cudaStream_t +# 821 +stream, T * +# 822 +devPtr, size_t +# 823 +length = 0, unsigned +# 824 +flags = 4) +# 826 +{ +# 827 +return ::cudaStreamAttachMemAsync(stream, (void *)devPtr, length, flags); +# 828 +} +# 830 +template< class T> inline cudaError_t +# 831 +cudaMalloc(T ** +# 832 +devPtr, size_t +# 833 +size) +# 835 +{ +# 836 +return ::cudaMalloc((void **)((void *)devPtr), size); +# 837 +} +# 839 +template< class T> static inline cudaError_t +# 840 +cudaMallocHost(T ** +# 841 +ptr, size_t +# 842 +size, unsigned +# 843 +flags = 0) +# 845 +{ +# 846 +return cudaMallocHost((void **)((void *)ptr), size, flags); +# 847 +} +# 849 +template< class T> static inline cudaError_t +# 850 +cudaMallocPitch(T ** +# 851 +devPtr, size_t * +# 852 +pitch, size_t +# 853 +width, size_t +# 854 +height) +# 856 +{ +# 857 +return ::cudaMallocPitch((void **)((void *)devPtr), pitch, width, height); +# 858 +} +# 869 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +static inline cudaError_t cudaMallocAsync(void ** +# 870 +ptr, size_t +# 871 +size, cudaMemPool_t +# 872 +memPool, cudaStream_t +# 873 +stream) +# 875 +{ +# 876 +return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +# 877 +} +# 879 +template< class T> static inline cudaError_t +# 880 +cudaMallocAsync(T ** +# 881 +ptr, size_t +# 882 +size, cudaMemPool_t +# 883 +memPool, cudaStream_t +# 884 +stream) +# 886 +{ +# 887 +return ::cudaMallocFromPoolAsync((void **)((void *)ptr), size, memPool, stream); +# 888 +} +# 890 +template< class T> static inline cudaError_t +# 891 +cudaMallocAsync(T ** +# 892 +ptr, size_t +# 893 +size, cudaStream_t +# 894 +stream) +# 896 +{ +# 897 +return ::cudaMallocAsync((void **)((void *)ptr), size, stream); +# 898 +} +# 900 +template< class T> static inline cudaError_t +# 901 +cudaMallocFromPoolAsync(T ** +# 902 +ptr, size_t +# 903 +size, cudaMemPool_t +# 904 +memPool, cudaStream_t +# 905 +stream) +# 907 +{ +# 908 +return ::cudaMallocFromPoolAsync((void **)((void *)ptr), size, memPool, stream); +# 909 +} +# 919 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T, class U> static inline cudaError_t +# 920 +cudaMemcpyBatchAsync(T ** +# 921 +dsts, U **srcs, size_t *sizes, size_t count, cudaMemcpyAttributes *attrs, size_t * +# 922 +attrsIdxs, size_t numAttrs, size_t *failIdx, cudaStream_t hStream) +# 924 +{ +# 925 +return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, attrs, attrsIdxs, numAttrs, failIdx, hStream); +# 926 +} +# 938 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T, class U> static inline cudaError_t +# 939 +cudaMemcpyBatchAsync(T ** +# 940 +dsts, U **srcs, size_t *sizes, size_t count, cudaMemcpyAttributes attr, size_t *failIdx, cudaStream_t hStream) +# 942 +{ +# 943 +size_t attrsIdxs = (0); +# 944 +return ::cudaMemcpyBatchAsync((void **)dsts, (void **)srcs, sizes, count, &attr, &attrsIdxs, 1, failIdx, hStream); +# 945 +} +# 984 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 985 +cudaMemcpyToSymbol(const T & +# 986 +symbol, const void * +# 987 +src, size_t +# 988 +count, size_t +# 989 +offset = 0, cudaMemcpyKind +# 990 +kind = cudaMemcpyHostToDevice) +# 992 +{ +# 993 +return ::cudaMemcpyToSymbol((const void *)(&symbol), src, count, offset, kind); +# 994 +} +# 1038 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1039 +cudaMemcpyToSymbolAsync(const T & +# 1040 +symbol, const void * +# 1041 +src, size_t +# 1042 +count, size_t +# 1043 +offset = 0, cudaMemcpyKind +# 1044 +kind = cudaMemcpyHostToDevice, cudaStream_t +# 1045 +stream = 0) +# 1047 +{ +# 1048 +return ::cudaMemcpyToSymbolAsync((const void *)(&symbol), src, count, offset, kind, stream); +# 1049 +} +# 1086 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1087 +cudaMemcpyFromSymbol(void * +# 1088 +dst, const T & +# 1089 +symbol, size_t +# 1090 +count, size_t +# 1091 +offset = 0, cudaMemcpyKind +# 1092 +kind = cudaMemcpyDeviceToHost) +# 1094 +{ +# 1095 +return ::cudaMemcpyFromSymbol(dst, (const void *)(&symbol), count, offset, kind); +# 1096 +} +# 1140 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1141 +cudaMemcpyFromSymbolAsync(void * +# 1142 +dst, const T & +# 1143 +symbol, size_t +# 1144 +count, size_t +# 1145 +offset = 0, cudaMemcpyKind +# 1146 +kind = cudaMemcpyDeviceToHost, cudaStream_t +# 1147 +stream = 0) +# 1149 +{ +# 1150 +return ::cudaMemcpyFromSymbolAsync(dst, (const void *)(&symbol), count, offset, kind, stream); +# 1151 +} +# 1209 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1210 +cudaGraphAddMemcpyNodeToSymbol(cudaGraphNode_t * +# 1211 +pGraphNode, cudaGraph_t +# 1212 +graph, const cudaGraphNode_t * +# 1213 +pDependencies, size_t +# 1214 +numDependencies, const T & +# 1215 +symbol, const void * +# 1216 +src, size_t +# 1217 +count, size_t +# 1218 +offset, cudaMemcpyKind +# 1219 +kind) +# 1220 +{ +# 1221 +return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void *)(&symbol), src, count, offset, kind); +# 1222 +} +# 1280 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1281 +cudaGraphAddMemcpyNodeFromSymbol(cudaGraphNode_t * +# 1282 +pGraphNode, cudaGraph_t +# 1283 +graph, const cudaGraphNode_t * +# 1284 +pDependencies, size_t +# 1285 +numDependencies, void * +# 1286 +dst, const T & +# 1287 +symbol, size_t +# 1288 +count, size_t +# 1289 +offset, cudaMemcpyKind +# 1290 +kind) +# 1291 +{ +# 1292 +return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void *)(&symbol), count, offset, kind); +# 1293 +} +# 1331 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1332 +cudaGraphMemcpyNodeSetParamsToSymbol(cudaGraphNode_t +# 1333 +node, const T & +# 1334 +symbol, const void * +# 1335 +src, size_t +# 1336 +count, size_t +# 1337 +offset, cudaMemcpyKind +# 1338 +kind) +# 1339 +{ +# 1340 +return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void *)(&symbol), src, count, offset, kind); +# 1341 +} +# 1379 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1380 +cudaGraphMemcpyNodeSetParamsFromSymbol(cudaGraphNode_t +# 1381 +node, void * +# 1382 +dst, const T & +# 1383 +symbol, size_t +# 1384 +count, size_t +# 1385 +offset, cudaMemcpyKind +# 1386 +kind) +# 1387 +{ +# 1388 +return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void *)(&symbol), count, offset, kind); +# 1389 +} +# 1437 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1438 +cudaGraphExecMemcpyNodeSetParamsToSymbol(cudaGraphExec_t +# 1439 +hGraphExec, cudaGraphNode_t +# 1440 +node, const T & +# 1441 +symbol, const void * +# 1442 +src, size_t +# 1443 +count, size_t +# 1444 +offset, cudaMemcpyKind +# 1445 +kind) +# 1446 +{ +# 1447 +return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void *)(&symbol), src, count, offset, kind); +# 1448 +} +# 1496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1497 +cudaGraphExecMemcpyNodeSetParamsFromSymbol(cudaGraphExec_t +# 1498 +hGraphExec, cudaGraphNode_t +# 1499 +node, void * +# 1500 +dst, const T & +# 1501 +symbol, size_t +# 1502 +count, size_t +# 1503 +offset, cudaMemcpyKind +# 1504 +kind) +# 1505 +{ +# 1506 +return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void *)(&symbol), count, offset, kind); +# 1507 +} +# 1510 +static inline cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, cudaGraphExecUpdateResult *updateResult_out) +# 1511 +{ +# 1512 +cudaGraphExecUpdateResultInfo resultInfo; +# 1513 +cudaError_t status = cudaGraphExecUpdate(hGraphExec, hGraph, &resultInfo); +# 1514 +if (hErrorNode_out) { +# 1515 +(*hErrorNode_out) = (resultInfo.errorNode); +# 1516 +} +# 1517 +if (updateResult_out) { +# 1518 +(*updateResult_out) = (resultInfo.result); +# 1519 +} +# 1520 +return status; +# 1521 +} +# 1549 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1550 +cudaUserObjectCreate(cudaUserObject_t * +# 1551 +object_out, T * +# 1552 +objectToWrap, unsigned +# 1553 +initialRefcount, unsigned +# 1554 +flags) +# 1555 +{ +# 1556 +return ::cudaUserObjectCreate(object_out, objectToWrap, [](void * +# 1559 +vpObj) { delete (reinterpret_cast< T *>(vpObj)); } , initialRefcount, flags); +# 1562 +} +# 1564 +template< class T> static inline cudaError_t +# 1565 +cudaUserObjectCreate(cudaUserObject_t * +# 1566 +object_out, T * +# 1567 +objectToWrap, unsigned +# 1568 +initialRefcount, cudaUserObjectFlags +# 1569 +flags) +# 1570 +{ +# 1571 +return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned)flags); +# 1572 +} +# 1599 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1600 +cudaGetSymbolAddress(void ** +# 1601 +devPtr, const T & +# 1602 +symbol) +# 1604 +{ +# 1605 +return ::cudaGetSymbolAddress(devPtr, (const void *)(&symbol)); +# 1606 +} +# 1631 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1632 +cudaGetSymbolSize(size_t * +# 1633 +size, const T & +# 1634 +symbol) +# 1636 +{ +# 1637 +return ::cudaGetSymbolSize(size, (const void *)(&symbol)); +# 1638 +} +# 1683 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1684 +cudaFuncSetCacheConfig(T * +# 1685 +func, cudaFuncCache +# 1686 +cacheConfig) +# 1688 +{ +# 1689 +return ::cudaFuncSetCacheConfig((const void *)func, cacheConfig); +# 1690 +} +# 1692 +template< class T> +# 1694 +__attribute((deprecated)) static inline cudaError_t +# 1695 +cudaFuncSetSharedMemConfig(T * +# 1696 +func, cudaSharedMemConfig +# 1697 +config) +# 1699 +{ +# 1701 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 1706 +return ::cudaFuncSetSharedMemConfig((const void *)func, config); +# 1708 +#pragma GCC diagnostic pop +# 1710 +} +# 1743 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> inline cudaError_t +# 1744 +cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * +# 1745 +numBlocks, T +# 1746 +func, int +# 1747 +blockSize, size_t +# 1748 +dynamicSMemSize) +# 1749 +{ +# 1750 +return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void *)func, blockSize, dynamicSMemSize, 0); +# 1751 +} +# 1796 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> inline cudaError_t +# 1797 +cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * +# 1798 +numBlocks, T +# 1799 +func, int +# 1800 +blockSize, size_t +# 1801 +dynamicSMemSize, unsigned +# 1802 +flags) +# 1803 +{ +# 1804 +return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void *)func, blockSize, dynamicSMemSize, flags); +# 1805 +} +# 1810 +class __cudaOccupancyB2DHelper { +# 1811 +size_t n; +# 1813 +public: __cudaOccupancyB2DHelper(size_t n_) : n(n_) { } +# 1814 +size_t operator()(int) +# 1815 +{ +# 1816 +return n; +# 1817 +} +# 1818 +}; +# 1866 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class UnaryFunction, class T> static inline cudaError_t +# 1867 +cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(int * +# 1868 +minGridSize, int * +# 1869 +blockSize, T +# 1870 +func, UnaryFunction +# 1871 +blockSizeToDynamicSMemSize, int +# 1872 +blockSizeLimit = 0, unsigned +# 1873 +flags = 0) +# 1874 +{ +# 1875 +cudaError_t status; +# 1878 +int device; +# 1879 +cudaFuncAttributes attr; +# 1882 +int maxThreadsPerMultiProcessor; +# 1883 +int warpSize; +# 1884 +int devMaxThreadsPerBlock; +# 1885 +int multiProcessorCount; +# 1886 +int funcMaxThreadsPerBlock; +# 1887 +int occupancyLimit; +# 1888 +int granularity; +# 1891 +int maxBlockSize = 0; +# 1892 +int numBlocks = 0; +# 1893 +int maxOccupancy = 0; +# 1896 +int blockSizeToTryAligned; +# 1897 +int blockSizeToTry; +# 1898 +int blockSizeLimitAligned; +# 1899 +int occupancyInBlocks; +# 1900 +int occupancyInThreads; +# 1901 +size_t dynamicSMemSize; +# 1907 +if (((!minGridSize) || (!blockSize)) || (!func)) { +# 1908 +return cudaErrorInvalidValue; +# 1909 +} +# 1915 +status = ::cudaGetDevice(&device); +# 1916 +if (status != (cudaSuccess)) { +# 1917 +return status; +# 1918 +} +# 1920 +status = cudaDeviceGetAttribute(&maxThreadsPerMultiProcessor, cudaDevAttrMaxThreadsPerMultiProcessor, device); +# 1924 +if (status != (cudaSuccess)) { +# 1925 +return status; +# 1926 +} +# 1928 +status = cudaDeviceGetAttribute(&warpSize, cudaDevAttrWarpSize, device); +# 1932 +if (status != (cudaSuccess)) { +# 1933 +return status; +# 1934 +} +# 1936 +status = cudaDeviceGetAttribute(&devMaxThreadsPerBlock, cudaDevAttrMaxThreadsPerBlock, device); +# 1940 +if (status != (cudaSuccess)) { +# 1941 +return status; +# 1942 +} +# 1944 +status = cudaDeviceGetAttribute(&multiProcessorCount, cudaDevAttrMultiProcessorCount, device); +# 1948 +if (status != (cudaSuccess)) { +# 1949 +return status; +# 1950 +} +# 1952 +status = cudaFuncGetAttributes(&attr, func); +# 1953 +if (status != (cudaSuccess)) { +# 1954 +return status; +# 1955 +} +# 1957 +funcMaxThreadsPerBlock = (attr.maxThreadsPerBlock); +# 1963 +occupancyLimit = maxThreadsPerMultiProcessor; +# 1964 +granularity = warpSize; +# 1966 +if (blockSizeLimit == 0) { +# 1967 +blockSizeLimit = devMaxThreadsPerBlock; +# 1968 +} +# 1970 +if (devMaxThreadsPerBlock < blockSizeLimit) { +# 1971 +blockSizeLimit = devMaxThreadsPerBlock; +# 1972 +} +# 1974 +if (funcMaxThreadsPerBlock < blockSizeLimit) { +# 1975 +blockSizeLimit = funcMaxThreadsPerBlock; +# 1976 +} +# 1978 +blockSizeLimitAligned = (((blockSizeLimit + (granularity - 1)) / granularity) * granularity); +# 1980 +for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { +# 1984 +if (blockSizeLimit < blockSizeToTryAligned) { +# 1985 +blockSizeToTry = blockSizeLimit; +# 1986 +} else { +# 1987 +blockSizeToTry = blockSizeToTryAligned; +# 1988 +} +# 1990 +dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); +# 1992 +status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(&occupancyInBlocks, func, blockSizeToTry, dynamicSMemSize, flags); +# 1999 +if (status != (cudaSuccess)) { +# 2000 +return status; +# 2001 +} +# 2003 +occupancyInThreads = (blockSizeToTry * occupancyInBlocks); +# 2005 +if (occupancyInThreads > maxOccupancy) { +# 2006 +maxBlockSize = blockSizeToTry; +# 2007 +numBlocks = occupancyInBlocks; +# 2008 +maxOccupancy = occupancyInThreads; +# 2009 +} +# 2013 +if (occupancyLimit == maxOccupancy) { +# 2014 +break; +# 2015 +} +# 2016 +} +# 2024 +(*minGridSize) = (numBlocks * multiProcessorCount); +# 2025 +(*blockSize) = maxBlockSize; +# 2027 +return status; +# 2028 +} +# 2062 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class UnaryFunction, class T> static inline cudaError_t +# 2063 +cudaOccupancyMaxPotentialBlockSizeVariableSMem(int * +# 2064 +minGridSize, int * +# 2065 +blockSize, T +# 2066 +func, UnaryFunction +# 2067 +blockSizeToDynamicSMemSize, int +# 2068 +blockSizeLimit = 0) +# 2069 +{ +# 2070 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0); +# 2071 +} +# 2108 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2109 +cudaOccupancyMaxPotentialBlockSize(int * +# 2110 +minGridSize, int * +# 2111 +blockSize, T +# 2112 +func, size_t +# 2113 +dynamicSMemSize = 0, int +# 2114 +blockSizeLimit = 0) +# 2115 +{ +# 2116 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, ((__cudaOccupancyB2DHelper)(dynamicSMemSize)), blockSizeLimit, 0); +# 2117 +} +# 2147 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2148 +cudaOccupancyAvailableDynamicSMemPerBlock(size_t * +# 2149 +dynamicSmemSize, T * +# 2150 +func, int +# 2151 +numBlocks, int +# 2152 +blockSize) +# 2153 +{ +# 2154 +return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void *)func, numBlocks, blockSize); +# 2155 +} +# 2206 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2207 +cudaOccupancyMaxPotentialBlockSizeWithFlags(int * +# 2208 +minGridSize, int * +# 2209 +blockSize, T +# 2210 +func, size_t +# 2211 +dynamicSMemSize = 0, int +# 2212 +blockSizeLimit = 0, unsigned +# 2213 +flags = 0) +# 2214 +{ +# 2215 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, ((__cudaOccupancyB2DHelper)(dynamicSMemSize)), blockSizeLimit, flags); +# 2216 +} +# 2251 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2252 +cudaOccupancyMaxPotentialClusterSize(int * +# 2253 +clusterSize, T * +# 2254 +func, const cudaLaunchConfig_t * +# 2255 +config) +# 2256 +{ +# 2257 +return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void *)func, config); +# 2258 +} +# 2295 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2296 +cudaOccupancyMaxActiveClusters(int * +# 2297 +numClusters, T * +# 2298 +func, const cudaLaunchConfig_t * +# 2299 +config) +# 2300 +{ +# 2301 +return ::cudaOccupancyMaxActiveClusters(numClusters, (const void *)func, config); +# 2302 +} +# 2336 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> inline cudaError_t +# 2337 +cudaFuncGetAttributes(cudaFuncAttributes * +# 2338 +attr, T * +# 2339 +entry) +# 2341 +{ +# 2342 +return ::cudaFuncGetAttributes(attr, (const void *)entry); +# 2343 +} +# 2402 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2403 +cudaFuncSetAttribute(T * +# 2404 +func, cudaFuncAttribute +# 2405 +attr, int +# 2406 +value) +# 2408 +{ +# 2409 +return ::cudaFuncSetAttribute((const void *)func, attr, value); +# 2410 +} +# 2435 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2436 +cudaFuncGetName(const char ** +# 2437 +name, T * +# 2438 +func) +# 2440 +{ +# 2441 +return ::cudaFuncGetName(name, (const void *)func); +# 2442 +} +# 2458 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2459 +cudaGetKernel(cudaKernel_t * +# 2460 +kernelPtr, T * +# 2461 +func) +# 2463 +{ +# 2464 +return ::cudaGetKernel(kernelPtr, (const void *)func); +# 2465 +} +# 2496 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2497 +cudaLibraryGetGlobal(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +# 2498 +{ +# 2499 +return ::cudaLibraryGetGlobal((void **)((void *)dptr), bytes, library, name); +# 2500 +} +# 2530 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2531 +cudaLibraryGetManaged(T **dptr, size_t *bytes, cudaLibrary_t library, const char *name) +# 2532 +{ +# 2533 +return ::cudaLibraryGetManaged((void **)((void *)dptr), bytes, library, name); +# 2534 +} +# 2560 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2561 +cudaLibraryGetUnifiedFunction(T **fptr, cudaLibrary_t library, const char *symbol) +# 2562 +{ +# 2563 +return ::cudaLibraryGetUnifiedFunction((void **)((void *)fptr), library, symbol); +# 2564 +} +# 2576 "/opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 477 "CMakeCUDACompilerId.cu" +const char *info_compiler = ("INFO:compiler[NVIDIA]"); +# 479 +const char *info_simulate = ("INFO:simulate[GNU]"); +# 790 "CMakeCUDACompilerId.cu" +const char info_version[] = {'I', 'N', 'F', 'O', ':', 'c', 'o', 'm', 'p', 'i', 'l', 'e', 'r', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '[', (('0') + ((12 / 10000000) % 10)), (('0') + ((12 / 1000000) % 10)), (('0') + ((12 / 100000) % 10)), (('0') + ((12 / 10000) % 10)), (('0') + ((12 / 1000) % 10)), (('0') + ((12 / 100) % 10)), (('0') + ((12 / 10) % 10)), (('0') + (12 % 10)), '.', (('0') + ((8 / 10000000) % 10)), (('0') + ((8 / 1000000) % 10)), (('0') + ((8 / 100000) % 10)), (('0') + ((8 / 10000) % 10)), (('0') + ((8 / 1000) % 10)), (('0') + ((8 / 100) % 10)), (('0') + ((8 / 10) % 10)), (('0') + (8 % 10)), '.', (('0') + ((93 / 10000000) % 10)), (('0') + ((93 / 1000000) % 10)), (('0') + ((93 / 100000) % 10)), (('0') + ((93 / 10000) % 10)), (('0') + ((93 / 1000) % 10)), (('0') + ((93 / 100) % 10)), (('0') + ((93 / 10) % 10)), (('0') + (93 % 10)), ']', '\000'}; +# 819 "CMakeCUDACompilerId.cu" +const char info_simulate_version[] = {'I', 'N', 'F', 'O', ':', 's', 'i', 'm', 'u', 'l', 'a', 't', 'e', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '[', (('0') + ((14 / 10000000) % 10)), (('0') + ((14 / 1000000) % 10)), (('0') + ((14 / 100000) % 10)), (('0') + ((14 / 10000) % 10)), (('0') + ((14 / 1000) % 10)), (('0') + ((14 / 100) % 10)), (('0') + ((14 / 10) % 10)), (('0') + (14 % 10)), '.', (('0') + ((2 / 10000000) % 10)), (('0') + ((2 / 1000000) % 10)), (('0') + ((2 / 100000) % 10)), (('0') + ((2 / 10000) % 10)), (('0') + ((2 / 1000) % 10)), (('0') + ((2 / 100) % 10)), (('0') + ((2 / 10) % 10)), (('0') + (2 % 10)), ']', '\000'}; +# 839 +const char *info_platform = ("INFO:platform[Linux]"); +# 840 +const char *info_arch = ("INFO:arch[]"); +# 845 +const char *info_host_compiler = ("INFO:host_compiler[GNU]"); +# 850 +const char info_host_compiler_version[] = {'I', 'N', 'F', 'O', ':', 'h', 'o', 's', 't', '_', 'c', 'o', 'm', 'p', 'i', 'l', 'e', 'r', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '[', (('0') + ((14 / 10000000) % 10)), (('0') + ((14 / 1000000) % 10)), (('0') + ((14 / 100000) % 10)), (('0') + ((14 / 10000) % 10)), (('0') + ((14 / 1000) % 10)), (('0') + ((14 / 100) % 10)), (('0') + ((14 / 10) % 10)), (('0') + (14 % 10)), '.', (('0') + ((2 / 10000000) % 10)), (('0') + ((2 / 1000000) % 10)), (('0') + ((2 / 100000) % 10)), (('0') + ((2 / 10000) % 10)), (('0') + ((2 / 1000) % 10)), (('0') + ((2 / 100) % 10)), (('0') + ((2 / 10) % 10)), (('0') + (2 % 10)), '.', (('0') + ((1 / 10000000) % 10)), (('0') + ((1 / 1000000) % 10)), (('0') + ((1 / 100000) % 10)), (('0') + ((1 / 10000) % 10)), (('0') + ((1 / 1000) % 10)), (('0') + ((1 / 100) % 10)), (('0') + ((1 / 10) % 10)), (('0') + (1 % 10)), ']', '\000'}; +# 882 "CMakeCUDACompilerId.cu" +const char *info_language_standard_default = ("INFO:standard_default[17]"); +# 900 +const char *info_language_extensions_default = ("INFO:extensions_default[ON]"); +# 911 +int main(int argc, char *argv[]) +# 912 +{ +# 913 +int require = 0; +# 914 +require += (info_compiler[argc]); +# 915 +require += (info_platform[argc]); +# 917 +require += (info_version[argc]); +# 920 +require += (info_simulate[argc]); +# 923 +require += (info_simulate_version[argc]); +# 926 +require += (info_host_compiler[argc]); +# 929 +require += (info_host_compiler_version[argc]); +# 931 +require += (info_language_standard_default[argc]); +# 932 +require += (info_language_extensions_default[argc]); +# 933 +(void)argv; +# 934 +return require; +# 935 +} + +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#define _NV_ANON_NAMESPACE _GLOBAL__N__0fb8cd19_22_CMakeCUDACompilerId_cu_bd57c623 +#ifdef _NV_ANON_NAMESPACE +#endif +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#include "CMakeCUDACompilerId.cudafe1.stub.c" +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#undef _NV_ANON_NAMESPACE diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu new file mode 100644 index 0000000..8087332 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu @@ -0,0 +1,467 @@ +typedef char __nv_bool; +# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h" 3 +typedef unsigned long size_t; +#include "crt/device_runtime.h" +# 310 "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu/bits/c++config.h" 3 +typedef unsigned long _ZSt6size_t; +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#include "common_functions.h" +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif +#if !defined(__CUDABE__) +#endif diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c new file mode 100644 index 0000000..2ebe7e6 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c @@ -0,0 +1,15 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-function" +#pragma GCC diagnostic ignored "-Wcast-qual" +#define __NV_CUBIN_HANDLE_STORAGE__ static +#if !defined(__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__) +#define __CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ +#endif +#include "crt/host_runtime.h" +#include "CMakeCUDACompilerId.fatbin.c" +static void __nv_cudaEntityRegisterCallback(void **); +static void __sti____cudaRegisterAll(void) __attribute__((__constructor__)); +static void __nv_cudaEntityRegisterCallback(void **__T0){__nv_dummy_param_ref(__T0);__nv_save_fatbinhandle_for_managed_rt(__T0);} +static void __sti____cudaRegisterAll(void){__cudaRegisterBinary(__nv_cudaEntityRegisterCallback);} + +#pragma GCC diagnostic pop diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin new file mode 100644 index 0000000..943e39f Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin differ diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c new file mode 100644 index 0000000..65e4578 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c @@ -0,0 +1,60 @@ +#ifndef __SKIP_INTERNAL_FATBINARY_HEADERS +#include "fatbinary_section.h" +#endif +#define __CUDAFATBINSECTION ".nvFatBinSegment" +#define __CUDAFATBINDATASECTION ".nv_fatbin" +asm( +".section .nv_fatbin, \"a\"\n" +".align 8\n" +"fatbinData:\n" +".quad 0x00100001ba55ed50,0x0000000000000438,0x0000004001010002,0x0000000000000368\n" +".quad 0x0000000000000000,0x0000003400010007,0x0000000000000000,0x0000000000000011\n" +".quad 0x0000000000000000,0x0000000000000000,0x33010102464c457f,0x0000000000000007\n" +".quad 0x0000008000be0002,0x0000000000000000,0x00000000000002f8,0x0000000000000178\n" +".quad 0x0038004000340534,0x0001000600400002,0x7472747368732e00,0x747274732e006261\n" +".quad 0x746d79732e006261,0x746d79732e006261,0x78646e68735f6261,0x666e692e766e2e00\n" +".quad 0x61632e766e2e006f,0x0068706172676c6c,0x746f72702e766e2e,0x6e2e00657079746f\n" +".quad 0x63612e6c65722e76,0x732e00006e6f6974,0x0062617472747368,0x006261747274732e\n" +".quad 0x006261746d79732e,0x5f6261746d79732e,0x6e2e0078646e6873,0x2e006f666e692e76\n" +".quad 0x676c6c61632e766e,0x766e2e0068706172,0x79746f746f72702e,0x722e766e2e006570\n" +".quad 0x6f697463612e6c65,0x000000000000006e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0004000300000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x000500030000004e,0x0000000000000000,0x0000000000000000,0xffffffff00000000\n" +".quad 0xfffffffe00000000,0xfffffffd00000000,0xfffffffc00000000,0x0000000000000073\n" +".quad 0x3605002511000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000300000001,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000040,0x000000000000005d,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x000000030000000b,0x0000000000000000,0x0000000000000000\n" +".quad 0x000000000000009d,0x000000000000005d,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x0000000200000013,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000100,0x0000000000000048,0x0000000300000002,0x0000000000000008\n" +".quad 0x0000000000000018,0x7000000100000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000148,0x0000000000000020,0x0000000000000003,0x0000000000000004\n" +".quad 0x0000000000000008,0x7000000b0000004e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000168,0x0000000000000010,0x0000000000000000,0x0000000000000008\n" +".quad 0x0000000000000008,0x0000000500000006,0x00000000000002f8,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000070,0x0000000000000070,0x0000000000000008\n" +".quad 0x0000000500000001,0x00000000000002f8,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000070,0x0000000000000070,0x0000000000000008,0x0000005001010001\n" +".quad 0x0000000000000040,0x0000004000000039,0x0000003400080007,0x0000000000000000\n" +".quad 0x0000000000002011,0x0000000000000000,0x0000000000000044,0x0000000000000048\n" +".quad 0x0000000000000000,0x22f000032f2f0a3c,0x6f69737265762e0a,0x742e0a372e38206e\n" +".quad 0x6d73207465677261,0x6464612e0a32355f,0x7a69735f73736572,0x0a0a0a0a34362065\n" +".quad 0x0000000000000000\n" +".text\n"); +#ifdef __cplusplus +extern "C" { +#endif +extern const unsigned long long fatbinData[137]; +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +static const __fatBinC_Wrapper_t __fatDeviceText __attribute__ ((aligned (8))) __attribute__ ((section (__CUDAFATBINSECTION)))= + { 0x466243b1, 1, fatbinData, 0 }; +#ifdef __cplusplus +} +#endif diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id new file mode 100644 index 0000000..67f279d --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id @@ -0,0 +1 @@ +_0fb8cd19_22_CMakeCUDACompilerId_cu_bd57c623 \ No newline at end of file diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o new file mode 100644 index 0000000..b58e715 Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o differ diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx new file mode 100644 index 0000000..eca22bd --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx @@ -0,0 +1,14 @@ +// +// Generated by NVIDIA NVVM Compiler +// +// Compiler Build ID: CL-35583870 +// Cuda compilation tools, release 12.8, V12.8.93 +// Based on NVVM 7.0.1 +// + +.version 8.7 +.target sm_52 +.address_size 64 + + + diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin new file mode 100644 index 0000000..f6416e6 Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin differ diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin new file mode 100644 index 0000000..0f66675 Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin differ diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin.c b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin.c new file mode 100644 index 0000000..667e569 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.fatbin.c @@ -0,0 +1,55 @@ +#ifndef __SKIP_INTERNAL_FATBINARY_HEADERS +#include "fatbinary_section.h" +#endif +#define __CUDAFATBINSECTION ".nvFatBinSegment" +#define __CUDAFATBINDATASECTION ".nv_fatbin" +asm( +".section .nv_fatbin, \"a\"\n" +".align 8\n" +"fatbinData:\n" +".quad 0x00100001ba55ed50,0x00000000000003a8,0x0000004001010002,0x0000000000000368\n" +".quad 0x0000000000000000,0x0000003400010007,0x0000000000000000,0x0000000000000011\n" +".quad 0x0000000000000000,0x0000000000000000,0x33010102464c457f,0x0000000000000007\n" +".quad 0x0000008000be0002,0x0000000000000000,0x00000000000002f8,0x0000000000000178\n" +".quad 0x0038004000340534,0x0001000600400002,0x7472747368732e00,0x747274732e006261\n" +".quad 0x746d79732e006261,0x746d79732e006261,0x78646e68735f6261,0x666e692e766e2e00\n" +".quad 0x61632e766e2e006f,0x0068706172676c6c,0x746f72702e766e2e,0x6e2e00657079746f\n" +".quad 0x63612e6c65722e76,0x732e00006e6f6974,0x0062617472747368,0x006261747274732e\n" +".quad 0x006261746d79732e,0x5f6261746d79732e,0x6e2e0078646e6873,0x2e006f666e692e76\n" +".quad 0x676c6c61632e766e,0x766e2e0068706172,0x79746f746f72702e,0x722e766e2e006570\n" +".quad 0x6f697463612e6c65,0x000000000000006e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0004000300000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x000500030000004e,0x0000000000000000,0x0000000000000000,0xffffffff00000000\n" +".quad 0xfffffffe00000000,0xfffffffd00000000,0xfffffffc00000000,0x0000000000000073\n" +".quad 0x3605002511000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000300000001,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000040,0x000000000000005d,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x000000030000000b,0x0000000000000000,0x0000000000000000\n" +".quad 0x000000000000009d,0x000000000000005d,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x0000000200000013,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000100,0x0000000000000048,0x0000000300000002,0x0000000000000008\n" +".quad 0x0000000000000018,0x7000000100000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000148,0x0000000000000020,0x0000000000000003,0x0000000000000004\n" +".quad 0x0000000000000008,0x7000000b0000004e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000168,0x0000000000000010,0x0000000000000000,0x0000000000000008\n" +".quad 0x0000000000000008,0x0000000500000006,0x00000000000002f8,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000070,0x0000000000000070,0x0000000000000008\n" +".quad 0x0000000500000001,0x00000000000002f8,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000070, 0x0000000000000070, 0x0000000000000008\n" +".text\n"); +#ifdef __cplusplus +extern "C" { +#endif +extern const unsigned long long fatbinData[119]; +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +static const __fatBinC_Wrapper_t __fatDeviceText __attribute__ ((aligned (8))) __attribute__ ((section (__CUDAFATBINSECTION)))= + { 0x466243b1, 2, fatbinData, (void**)__cudaPrelinkedFatbins }; +#ifdef __cplusplus +} +#endif diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.o b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.o new file mode 100644 index 0000000..2be8f4d Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.o differ diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.reg.c b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.reg.c new file mode 100644 index 0000000..af69ecb --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.reg.c @@ -0,0 +1 @@ +#define NUM_PRELINKED_OBJECTS 0 diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin new file mode 100644 index 0000000..f6416e6 Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin differ diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/4.0.2-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..94d4310 --- /dev/null +++ b/build/CMakeFiles/4.0.2-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,920 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) || defined(__CPARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define CXX_STD_98 199711L +#define CXX_STD_11 201103L +#define CXX_STD_14 201402L +#define CXX_STD_17 201703L +#define CXX_STD_20 202002L +#define CXX_STD_23 202302L + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) +# if _MSVC_LANG > CXX_STD_17 +# define CXX_STD _MSVC_LANG +# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 +# define CXX_STD CXX_STD_17 +# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# elif defined(__INTEL_CXX11_MODE__) +# define CXX_STD CXX_STD_11 +# else +# define CXX_STD CXX_STD_98 +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# if _MSVC_LANG > __cplusplus +# define CXX_STD _MSVC_LANG +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__NVCOMPILER) +# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__INTEL_COMPILER) || defined(__PGI) +# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) +# define CXX_STD CXX_STD_17 +# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) +# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) +# define CXX_STD CXX_STD_11 +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > CXX_STD_23 + "26" +#elif CXX_STD > CXX_STD_20 + "23" +#elif CXX_STD > CXX_STD_17 + "20" +#elif CXX_STD > CXX_STD_14 + "17" +#elif CXX_STD > CXX_STD_11 + "14" +#elif CXX_STD >= CXX_STD_11 + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR) + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/4.0.2-dirty/CompilerIdCXX/a.out b/build/CMakeFiles/4.0.2-dirty/CompilerIdCXX/a.out new file mode 100755 index 0000000..1a92c31 Binary files /dev/null and b/build/CMakeFiles/4.0.2-dirty/CompilerIdCXX/a.out differ diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000..e41fd71 --- /dev/null +++ b/build/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,801 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:205 (message)" + - "CMakeLists.txt:2 (project)" + message: | + The system is: Linux - 6.14.7-arch2-1 - x86_64 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + message: | + Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. + Compiler: /usr/bin/clang++ + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + + The CXX compiler identification is Clang, found in: + /home/tobli/abo/pprog/Homework-3/build/CMakeFiles/4.0.2-dirty/CompilerIdCXX/a.out + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:1271 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:75 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)" + - "CMakeLists.txt:2 (project)" + message: | + Checking whether the CUDA compiler is NVIDIA using "" matched "nvcc: NVIDIA \\(R\\) Cuda compiler driver": + nvcc: NVIDIA (R) Cuda compiler driver + Copyright (c) 2005-2025 NVIDIA Corporation + Built on Fri_Feb_21_20:23:50_PST_2025 + Cuda compilation tools, release 12.8, V12.8.93 + Build cuda_12.8.r12.8/compiler.35583870_0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:136 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + message: | + Compiling the CUDA compiler identification source file "CMakeCUDACompilerId.cu" succeeded. + Compiler: /opt/cuda/bin/nvcc + Build flags: + Id flags: --keep;--keep-dir;tmp -v + + The output was: + 0 + nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). + #$ _NVVM_BRANCH_=nvvm + #$ _SPACE_= + #$ _CUDART_=cudart + #$ _HERE_=/opt/cuda/bin + #$ _THERE_=/opt/cuda/bin + #$ _TARGET_SIZE_= + #$ _TARGET_DIR_= + #$ _TARGET_DIR_=targets/x86_64-linux + #$ TOP=/opt/cuda/bin/.. + #$ CICC_PATH=/opt/cuda/bin/../nvvm/bin + #$ NVVMIR_LIBRARY_DIR=/opt/cuda/bin/../nvvm/libdevice + #$ LD_LIBRARY_PATH=/opt/cuda/bin/../lib:/opt/cuda/lib64 + #$ PATH=/opt/cuda/bin/../nvvm/bin:/opt/cuda/bin:/opt/cuda/bin/opt/cuda/bin/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl + #$ INCLUDES="-I/opt/cuda/bin/../targets/x86_64-linux/include" + #$ LIBRARIES= "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" + #$ CUDAFE_FLAGS= + #$ PTXAS_FLAGS= + #$ rm tmp/a_dlink.reg.c + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ cudafe++ --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" + #$ "$CICC_PATH/cicc" --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx" + #$ ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" + #$ fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" + #$ nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "/usr/bin/g++-14" + #$ fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -m64 "/opt/cuda/bin/crt/link.stub" -o "tmp/a_dlink.o" + #$ "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" + + + Compilation of the CUDA compiler identification source "CMakeCUDACompilerId.cu" produced "a.out" + + The CUDA compiler identification is NVIDIA, found in: + /home/tobli/abo/pprog/Homework-3/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/a.out + The host compiler identification is GNU + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake:128 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:247 (cmake_nvcc_parse_implicit_info)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA nvcc implicit link information: + found 'PATH=' string: [/opt/cuda/bin/../nvvm/bin:/opt/cuda/bin:/opt/cuda/bin/opt/cuda/bin/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl] + found 'LIBRARIES=' string: ["-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib"] + found 'INCLUDES=' string: ["-I/opt/cuda/bin/../targets/x86_64-linux/include" ] + considering line: [nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).] + considering line: [rm tmp/a_dlink.reg.c] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [cudafe++ --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" ] + considering line: ["$CICC_PATH/cicc" --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx"] + considering line: [ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" ] + considering line: [fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" ] + considering line: [nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "/usr/bin/g++-14"] + ignoring nvlink line + considering line: [fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -m64 "/opt/cuda/bin/crt/link.stub" -o "tmp/a_dlink.o" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + extracted link line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + considering line: [] + extracted link launcher absolute path: [/usr/bin/g++-14] + + link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + link line: [cuda-fake-ld "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + arg [cuda-fake-ld] ==> ignore + arg [/usr/bin/g++-14] ==> ignore + arg [-D__CUDA_ARCH_LIST__=520] ==> ignore + arg [-D__NV_LEGACY_LAUNCH] ==> ignore + arg [-m64] ==> ignore + arg [-Wl,--start-group] ==> ignore + arg [tmp/a_dlink.o] ==> ignore + arg [tmp/CMakeCUDACompilerId.o] ==> ignore + arg [-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] ==> dir [/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] + arg [-L/opt/cuda/bin/../targets/x86_64-linux/lib] ==> dir [/opt/cuda/bin/../targets/x86_64-linux/lib] + arg [-lcudadevrt] ==> lib [cudadevrt] + arg [-lcudart_static] ==> lib [cudart_static] + arg [-lrt] ==> lib [rt] + arg [-lpthread] ==> lib [pthread] + arg [-ldl] ==> lib [dl] + arg [-Wl,--end-group] ==> ignore + arg [-o] ==> ignore + arg [a.out] ==> ignore + collapse library dir [/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] ==> [/opt/cuda/targets/x86_64-linux/lib/stubs] + collapse library dir [/opt/cuda/bin/../targets/x86_64-linux/lib] ==> [/opt/cuda/targets/x86_64-linux/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl] + implicit objs: [] + implicit dirs: [/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake:146 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:247 (cmake_nvcc_parse_implicit_info)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA nvcc include information: + found 'PATH=' string: [/opt/cuda/bin/../nvvm/bin:/opt/cuda/bin:/opt/cuda/bin/opt/cuda/bin/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl] + found 'LIBRARIES=' string: ["-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib"] + found 'INCLUDES=' string: ["-I/opt/cuda/bin/../targets/x86_64-linux/include" ] + considering line: [nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).] + considering line: [rm tmp/a_dlink.reg.c] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [cudafe++ --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" ] + considering line: ["$CICC_PATH/cicc" --c++17 --gnu_version=140201 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/4.0.2-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx"] + considering line: [ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" ] + considering line: [fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" ] + considering line: [nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "/usr/bin/g++-14"] + ignoring nvlink line + considering line: [fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -Wno-psabi "-I/opt/cuda/bin/../targets/x86_64-linux/include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=93 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -m64 "/opt/cuda/bin/crt/link.stub" -o "tmp/a_dlink.o" ] + considering line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + extracted link line: ["/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + considering line: [] + extracted link launcher absolute path: [/usr/bin/g++-14] + + link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + link line: [cuda-fake-ld "/usr/bin"/g++-14 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda/bin/../targets/x86_64-linux/lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + arg [cuda-fake-ld] ==> ignore + arg [/usr/bin/g++-14] ==> ignore + arg [-D__CUDA_ARCH_LIST__=520] ==> ignore + arg [-D__NV_LEGACY_LAUNCH] ==> ignore + arg [-m64] ==> ignore + arg [-Wl,--start-group] ==> ignore + arg [tmp/a_dlink.o] ==> ignore + arg [tmp/CMakeCUDACompilerId.o] ==> ignore + arg [-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] ==> dir [/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] + arg [-L/opt/cuda/bin/../targets/x86_64-linux/lib] ==> dir [/opt/cuda/bin/../targets/x86_64-linux/lib] + arg [-lcudadevrt] ==> lib [cudadevrt] + arg [-lcudart_static] ==> lib [cudart_static] + arg [-lrt] ==> lib [rt] + arg [-lpthread] ==> lib [pthread] + arg [-ldl] ==> lib [dl] + arg [-Wl,--end-group] ==> ignore + arg [-o] ==> ignore + arg [a.out] ==> ignore + collapse library dir [/opt/cuda/bin/../targets/x86_64-linux/lib/stubs] ==> [/opt/cuda/targets/x86_64-linux/lib/stubs] + collapse library dir [/opt/cuda/bin/../targets/x86_64-linux/lib] ==> [/opt/cuda/targets/x86_64-linux/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl] + implicit objs: [] + implicit dirs: [/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib] + implicit fwks: [] + + + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)" + - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-SgQPjf" + binary: "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-SgQPjf" + cmakeVariables: + CMAKE_CUDA_ARCHITECTURES: "52" + CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "/usr/bin/clang-scan-deps" + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_CXX_SCAN_FOR_MODULES: "OFF" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CXX_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-SgQPjf' + + Run Build Command(s): /usr/bin/ninja -v cmTC_cffa6 + [1/2] /usr/bin/clang++ -v -MD -MT CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp + clang version 19.1.7 + Target: x86_64-pc-linux-gnu + Thread model: posix + InstalledDir: /usr/bin + Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/14.2.1 + Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.1 + Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1 + Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1 + Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1 + Candidate multilib: .;@m64 + Candidate multilib: 32;@m32 + Selected multilib: .;@m64 + Found CUDA installation: /opt/cuda, version + (in-process) + "/usr/bin/clang++" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-SgQPjf -v -fcoverage-compilation-dir=/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-SgQPjf -resource-dir /usr/lib/clang/19 -dependency-file CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o.d -MT CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/x86_64-pc-linux-gnu -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/backward -internal-isystem /usr/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -stack-protector 2 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -x c++ /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp + clang -cc1 version 19.1.7 based upon LLVM 19.1.7 default target x86_64-pc-linux-gnu + ignoring nonexistent directory "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../x86_64-pc-linux-gnu/include" + ignoring nonexistent directory "/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1 + /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/x86_64-pc-linux-gnu + /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/backward + /usr/lib/clang/19/include + /usr/local/include + /usr/include + End of search list. + [2/2] : && /usr/bin/clang++ -v -Wl,-v CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_cffa6 && : + clang version 19.1.7 + Target: x86_64-pc-linux-gnu + Thread model: posix + InstalledDir: /usr/bin + Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/14.2.1 + Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.1 + Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1 + Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1 + Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1 + Candidate multilib: .;@m64 + Candidate multilib: 32;@m32 + Selected multilib: .;@m64 + Found CUDA installation: /opt/cuda, version + "/usr/bin/ld" --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -pie -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_cffa6 /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/Scrt1.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crti.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtbeginS.o -L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1 -L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/lib -L/usr/lib -v CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtendS.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crtn.o + GNU ld (GNU Binutils) 2.44.0 + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:191 (message)" + - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CXX implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1] + add: [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/x86_64-pc-linux-gnu] + add: [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/backward] + add: [/usr/lib/clang/19/include] + add: [/usr/local/include] + add: [/usr/include] + end of search list found + collapse include dir [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1] ==> [/usr/include/c++/15.1.1] + collapse include dir [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/x86_64-pc-linux-gnu] ==> [/usr/include/c++/15.1.1/x86_64-pc-linux-gnu] + collapse include dir [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/backward] ==> [/usr/include/c++/15.1.1/backward] + collapse include dir [/usr/lib/clang/19/include] ==> [/usr/lib/clang/19/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/15.1.1;/usr/include/c++/15.1.1/x86_64-pc-linux-gnu;/usr/include/c++/15.1.1/backward;/usr/lib/clang/19/include;/usr/local/include;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:227 (message)" + - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)))("|,| |$)] + ignore line: [Change Dir: '/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-SgQPjf'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/ninja -v cmTC_cffa6] + ignore line: [[1/2] /usr/bin/clang++ -v -MD -MT CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [clang version 19.1.7] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /usr/bin] + ignore line: [Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/14.2.1] + ignore line: [Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.1] + ignore line: [Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1] + ignore line: [Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1] + ignore line: [Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1] + ignore line: [Candidate multilib: .] + ignore line: [@m64] + ignore line: [Candidate multilib: 32] + ignore line: [@m32] + ignore line: [Selected multilib: .] + ignore line: [@m64] + ignore line: [Found CUDA installation: /opt/cuda version ] + ignore line: [ (in-process)] + ignore line: [ "/usr/bin/clang++" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-SgQPjf -v -fcoverage-compilation-dir=/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-SgQPjf -resource-dir /usr/lib/clang/19 -dependency-file CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o.d -MT CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/x86_64-pc-linux-gnu -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/backward -internal-isystem /usr/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -stack-protector 2 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -x c++ /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [clang -cc1 version 19.1.7 based upon LLVM 19.1.7 default target x86_64-pc-linux-gnu] + ignore line: [ignoring nonexistent directory "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../x86_64-pc-linux-gnu/include"] + ignore line: [ignoring nonexistent directory "/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1] + ignore line: [ /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/x86_64-pc-linux-gnu] + ignore line: [ /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/backward] + ignore line: [ /usr/lib/clang/19/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [[2/2] : && /usr/bin/clang++ -v -Wl -v CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_cffa6 && :] + ignore line: [clang version 19.1.7] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /usr/bin] + ignore line: [Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/14.2.1] + ignore line: [Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.1] + ignore line: [Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1] + ignore line: [Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1] + ignore line: [Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1] + ignore line: [Candidate multilib: .] + ignore line: [@m64] + ignore line: [Candidate multilib: 32] + ignore line: [@m32] + ignore line: [Selected multilib: .] + ignore line: [@m64] + ignore line: [Found CUDA installation: /opt/cuda version ] + link line: [ "/usr/bin/ld" --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -pie -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_cffa6 /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/Scrt1.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crti.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtbeginS.o -L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1 -L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/lib -L/usr/lib -v CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtendS.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crtn.o] + arg [/usr/bin/ld] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [-pie] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-o] ==> ignore + arg [cmTC_cffa6] ==> ignore + arg [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/Scrt1.o] ==> obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/Scrt1.o] + arg [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crti.o] ==> obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crti.o] + arg [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtbeginS.o] ==> obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtbeginS.o] + arg [-L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1] ==> dir [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1] + arg [-L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64] ==> dir [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64] + arg [-L/lib/../lib64] ==> dir [/lib/../lib64] + arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64] + arg [-L/lib] ==> dir [/lib] + arg [-L/usr/lib] ==> dir [/usr/lib] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_cffa6.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtendS.o] ==> obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtendS.o] + arg [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crtn.o] ==> obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crtn.o] + linker tool for 'CXX': /usr/bin/ld + collapse obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/Scrt1.o] ==> [/usr/lib64/Scrt1.o] + collapse obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crti.o] ==> [/usr/lib64/crti.o] + collapse obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtbeginS.o] ==> [/usr/lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtbeginS.o] + collapse obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtendS.o] ==> [/usr/lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtendS.o] + collapse obj [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64/crtn.o] ==> [/usr/lib64/crtn.o] + collapse library dir [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1] ==> [/usr/lib64/gcc/x86_64-pc-linux-gnu/15.1.1] + collapse library dir [/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib64] ==> [/usr/lib64] + collapse library dir [/lib/../lib64] ==> [/lib64] + collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64] + collapse library dir [/lib] ==> [/lib] + collapse library dir [/usr/lib] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib64/Scrt1.o;/usr/lib64/crti.o;/usr/lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtbeginS.o;/usr/lib64/gcc/x86_64-pc-linux-gnu/15.1.1/crtendS.o;/usr/lib64/crtn.o] + implicit dirs: [/usr/lib64/gcc/x86_64-pc-linux-gnu/15.1.1;/usr/lib64;/lib64;/lib;/usr/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:270 (cmake_determine_linker_id)" + - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Running the CXX compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils) 2.44.0 + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)" + - "/usr/share/cmake/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + checks: + - "Detecting CUDA compiler ABI info" + directories: + source: "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-1bJ2lk" + binary: "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-1bJ2lk" + cmakeVariables: + CMAKE_CUDA_ARCHITECTURES: "52" + CMAKE_CUDA_FLAGS: "" + CMAKE_CUDA_FLAGS_DEBUG: "-g" + CMAKE_CUDA_RUNTIME_LIBRARY: "Static" + CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "/usr/bin/clang-scan-deps" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CUDA_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-1bJ2lk' + + Run Build Command(s): /usr/bin/ninja -v cmTC_95279 + [1/2] /opt/cuda/bin/nvcc -forward-unknown-to-host-compiler "--generate-code=arch=compute_52,code=[compute_52,sm_52]" -Xcompiler=-v -MD -MT CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o -MF CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o.d -x cu -c /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o + nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-14 + Target: x86_64-pc-linux-gnu + Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c,c++,fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.1 20250207 (GCC) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/' + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -E -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=12 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=93 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -D __CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include cuda_runtime.h /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.ii -m64 -mtune=generic -march=x86-64 -dumpdir /tmp/ -dumpbase tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.cu -dumpbase-ext .cu + ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /opt/cuda/bin/../targets/x86_64-linux/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include + /usr/local/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed + /usr/include + End of search list. + COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.' + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-14 + Target: x86_64-pc-linux-gnu + Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c,c++,fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.1 20250207 (GCC) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/' + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -E -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=12 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=93 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -D __CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include cuda_runtime.h /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.ii -m64 -mtune=generic -march=x86-64 -dumpdir /tmp/ -dumpbase tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.cu -dumpbase-ext .cu + ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /opt/cuda/bin/../targets/x86_64-linux/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include + /usr/local/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed + /usr/include + End of search list. + COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.' + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-14 + Target: x86_64-pc-linux-gnu + Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c,c++,fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.1 20250207 (GCC) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_95279.dir/' + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS /tmp/tmpxft_00002f26_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -quiet -dumpdir CMakeFiles/cmTC_95279.dir/ -dumpbase CMakeCUDACompilerABI.cu.cpp -dumpbase-ext .cpp -m64 -mtune=generic -march=x86-64 -Wno-psabi -version -o /tmp/ccDygrw0.s + GNU C++17 (GCC) version 14.2.1 20250207 (x86_64-pc-linux-gnu) + compiled by GNU C version 14.2.1 20250207, GMP version 6.3.0, MPFR version 4.2.2, MPC version 1.3.1, isl version isl-0.27-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /opt/cuda/bin/../targets/x86_64-linux/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++ + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include + /usr/local/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed + /usr/include + End of search list. + Compiler executable checksum: 419730b4853e824d20fe72cd5c71d7dd + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_95279.dir/' + as -v -I /opt/cuda/bin/../targets/x86_64-linux/include --64 -o CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o /tmp/ccDygrw0.s + GNU assembler version 2.44.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.44.0 + COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.' + [2/2] : && /usr/bin/g++-14 -v -Wl,-v CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o -o cmTC_95279 -lcudadevrt -lcudart_static -lrt -lpthread -ldl -L"/opt/cuda/targets/x86_64-linux/lib/stubs" -L"/opt/cuda/targets/x86_64-linux/lib" && : + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-14 + COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper + Target: x86_64-pc-linux-gnu + Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c,c++,fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.1 20250207 (GCC) + COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_95279' '-L/opt/cuda/targets/x86_64-linux/lib/stubs' '-L/opt/cuda/targets/x86_64-linux/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_95279.' + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccq3nD3S.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_95279 /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o + collect2 version 14.2.1 20250207 + /usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccq3nD3S.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_95279 /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o + GNU ld (GNU Binutils) 2.44.0 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_95279' '-L/opt/cuda/targets/x86_64-linux/lib/stubs' '-L/opt/cuda/targets/x86_64-linux/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_95279.' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:191 (message)" + - "/usr/share/cmake/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/opt/cuda/bin/../targets/x86_64-linux/include] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + add: [/usr/local/include] + add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + add: [/usr/include] + end of search list found + collapse include dir [/opt/cuda/bin/../targets/x86_64-linux/include] ==> [/opt/cuda/targets/x86_64-linux/include] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/opt/cuda/targets/x86_64-linux/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:227 (message)" + - "/usr/share/cmake/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)))("|,| |$)] + ignore line: [Change Dir: '/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-1bJ2lk'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/ninja -v cmTC_95279] + ignore line: [[1/2] /opt/cuda/bin/nvcc -forward-unknown-to-host-compiler "--generate-code=arch=compute_52 code=[compute_52 sm_52]" -Xcompiler=-v -MD -MT CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o -MF CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o.d -x cu -c /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o] + ignore line: [nvcc warning : Support for offline compilation for architectures prior to '_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-14] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c c++ fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.1 20250207 (GCC) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/'] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -E -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=12 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=93 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -D __CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include cuda_runtime.h /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.ii -m64 -mtune=generic -march=x86-64 -dumpdir /tmp/ -dumpbase tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.cu -dumpbase-ext .cu] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /opt/cuda/bin/../targets/x86_64-linux/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00002f26_00000000-7_CMakeCUDACompilerABI.cpp1.'] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-14] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c c++ fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.1 20250207 (GCC) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/'] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -E -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=12 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=93 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -D __CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include cuda_runtime.h /usr/share/cmake/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.ii -m64 -mtune=generic -march=x86-64 -dumpdir /tmp/ -dumpbase tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.cu -dumpbase-ext .cu] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /opt/cuda/bin/../targets/x86_64-linux/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=93' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-D' '__CUDACC_DEVICE_ATOMIC_BUILTINS__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00002f26_00000000-5_CMakeCUDACompilerABI.cpp4.'] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-14] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c c++ fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.1 20250207 (GCC) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_95279.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -quiet -v -I /opt/cuda/bin/../targets/x86_64-linux/include -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS /tmp/tmpxft_00002f26_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -quiet -dumpdir CMakeFiles/cmTC_95279.dir/ -dumpbase CMakeCUDACompilerABI.cu.cpp -dumpbase-ext .cpp -m64 -mtune=generic -march=x86-64 -Wno-psabi -version -o /tmp/ccDygrw0.s] + ignore line: [GNU C++17 (GCC) version 14.2.1 20250207 (x86_64-pc-linux-gnu)] + ignore line: [ compiled by GNU C version 14.2.1 20250207 GMP version 6.3.0 MPFR version 4.2.2 MPC version 1.3.1 isl version isl-0.27-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /opt/cuda/bin/../targets/x86_64-linux/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/x86_64-pc-linux-gnu] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/c++/backward] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: 419730b4853e824d20fe72cd5c71d7dd] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_95279.dir/'] + ignore line: [ as -v -I /opt/cuda/bin/../targets/x86_64-linux/include --64 -o CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o /tmp/ccDygrw0.s] + ignore line: [GNU assembler version 2.44.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.44.0] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-Wno-psabi' '-I' '/opt/cuda/bin/../targets/x86_64-linux/include' '-m64' '-o' 'CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.'] + ignore line: [[2/2] : && /usr/bin/g++-14 -v -Wl,-v CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o -o cmTC_95279 -lcudadevrt -lcudart_static -lrt -lpthread -ldl -L"/opt/cuda/targets/x86_64-linux/lib/stubs" -L"/opt/cuda/targets/x86_64-linux/lib" && :] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-14] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper] + ignore line: [Target: x86_64-pc-linux-gnu] + ignore line: [Configured with: /build/gcc14/src/gcc14/configure --enable-languages=c c++ fortran --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc14/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --program-suffix=-14 --enable-version-specific-runtime-libs] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.1 20250207 (GCC) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_95279' '-L/opt/cuda/targets/x86_64-linux/lib/stubs' '-L/opt/cuda/targets/x86_64-linux/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_95279.'] + link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccq3nD3S.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_95279 /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccq3nD3S.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-o] ==> ignore + arg [cmTC_95279] ==> ignore + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o] + arg [-L/opt/cuda/targets/x86_64-linux/lib/stubs] ==> dir [/opt/cuda/targets/x86_64-linux/lib/stubs] + arg [-L/opt/cuda/targets/x86_64-linux/lib] ==> dir [/opt/cuda/targets/x86_64-linux/lib] + arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] + arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o] ==> ignore + arg [-lcudadevrt] ==> lib [cudadevrt] + arg [-lcudart_static] ==> lib [cudart_static] + arg [-lrt] ==> lib [rt] + arg [-lpthread] ==> lib [pthread] + arg [-ldl] ==> lib [dl] + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o] + arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] + ignore line: [collect2 version 14.2.1 20250207] + ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccq3nD3S.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_95279 /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_95279.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] + linker tool for 'CUDA': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] ==> [/usr/lib/crti.o] + collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] ==> [/usr/lib/crtn.o] + collapse library dir [/opt/cuda/targets/x86_64-linux/lib/stubs] ==> [/opt/cuda/targets/x86_64-linux/lib/stubs] + collapse library dir [/opt/cuda/targets/x86_64-linux/lib] ==> [/opt/cuda/targets/x86_64-linux/lib] + collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] + collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] ==> [/usr/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl;stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/Scrt1.o;/usr/lib/crti.o;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o;/usr/lib/crtn.o] + implicit dirs: [/opt/cuda/targets/x86_64-linux/lib/stubs;/opt/cuda/targets/x86_64-linux/lib;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1;/usr/lib;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:36 (message)" + - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:270 (cmake_determine_linker_id)" + - "/usr/share/cmake/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Running the CUDA compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils) 2.44.0 + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake:104 (try_compile)" + - "/usr/share/cmake/Modules/CheckCXXSourceCompiles.cmake:58 (cmake_check_source_compiles)" + - "/usr/share/cmake/Modules/FindThreads.cmake:99 (check_cxx_source_compiles)" + - "/usr/share/cmake/Modules/FindThreads.cmake:163 (_threads_check_libc)" + - "/usr/share/cmake/Modules/FindCUDAToolkit.cmake:1207 (find_package)" + - "CMakeLists.txt:9 (find_package)" + checks: + - "Performing Test CMAKE_HAVE_LIBC_PTHREAD" + directories: + source: "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-bQPacS" + binary: "/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-bQPacS" + cmakeVariables: + CMAKE_CUDA_ARCHITECTURES: "52" + CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "/usr/bin/clang-scan-deps" + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_HAVE_LIBC_PTHREAD" + cached: true + stdout: | + Change Dir: '/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-bQPacS' + + Run Build Command(s): /usr/bin/ninja -v cmTC_2ca95 + [1/2] /usr/bin/clang++ -DCMAKE_HAVE_LIBC_PTHREAD -std=gnu++17 -MD -MT CMakeFiles/cmTC_2ca95.dir/src.cxx.o -MF CMakeFiles/cmTC_2ca95.dir/src.cxx.o.d -o CMakeFiles/cmTC_2ca95.dir/src.cxx.o -c /home/tobli/abo/pprog/Homework-3/build/CMakeFiles/CMakeScratch/TryCompile-bQPacS/src.cxx + [2/2] : && /usr/bin/clang++ CMakeFiles/cmTC_2ca95.dir/src.cxx.o -o cmTC_2ca95 && : + + exitCode: 0 +... diff --git a/build/CMakeFiles/InstallScripts.json b/build/CMakeFiles/InstallScripts.json new file mode 100644 index 0000000..26e19ed --- /dev/null +++ b/build/CMakeFiles/InstallScripts.json @@ -0,0 +1,7 @@ +{ + "InstallScripts" : + [ + "/home/tobli/abo/pprog/Homework-3/build/cmake_install.cmake" + ], + "Parallel" : false +} diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..af662ce --- /dev/null +++ b/build/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/app.dir +/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/edit_cache.dir +/home/tobli/abo/pprog/Homework-3/build/CMakeFiles/rebuild_cache.dir diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build/CMakeFiles/rules.ninja b/build/CMakeFiles/rules.ninja new file mode 100644 index 0000000..54abbc4 --- /dev/null +++ b/build/CMakeFiles/rules.ninja @@ -0,0 +1,73 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 4.0 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: app +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for compiling CUDA files. + +rule CUDA_COMPILER__app_unscanned_Debug + depfile = $DEP_FILE + deps = gcc + command = ${LAUNCHER}${CODE_CHECK}/opt/cuda/bin/nvcc -forward-unknown-to-host-compiler $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -x cu -rdc=true -c $in -o $out + description = Building CUDA object $out + + +############################################# +# Rule for linking CUDA executable. + +rule CUDA_EXECUTABLE_DEVICE_LINKER__app_Debug + command = /opt/cuda/bin/nvcc -forward-unknown-to-host-compiler $LANGUAGE_COMPILE_FLAGS $LINK_FLAGS -Xcompiler=-fPIC -Wno-deprecated-gpu-targets -shared -dlink $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES + description = Linking CUDA executable $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for linking CUDA executable. + +rule CUDA_EXECUTABLE_LINKER__app_Debug + command = $PRE_LINK && /usr/bin/g++-14 $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES -L"/opt/cuda/targets/x86_64-linux/lib/stubs" -L"/opt/cuda/targets/x86_64-linux/lib" && $POST_BUILD + description = Linking CUDA executable $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /usr/bin/cmake --regenerate-during-build -S/home/tobli/abo/pprog/Homework-3 -B/home/tobli/abo/pprog/Homework-3/build + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /usr/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /usr/bin/ninja -t targets + description = All primary targets available: + diff --git a/build/build.ninja b/build/build.ninja new file mode 100644 index 0000000..e308d67 --- /dev/null +++ b/build/build.ninja @@ -0,0 +1,160 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 4.0 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: app +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /home/tobli/abo/pprog/Homework-3/build/ +# ============================================================================= +# Object build statements for EXECUTABLE target app + + +############################################# +# Order-only phony target for app + +build cmake_object_order_depends_target_app: phony || . + +build CMakeFiles/app.dir/main.cu.o: CUDA_COMPILER__app_unscanned_Debug /home/tobli/abo/pprog/Homework-3/main.cu || cmake_object_order_depends_target_app + CONFIG = Debug + DEP_FILE = CMakeFiles/app.dir/main.cu.o.d + FLAGS = -g -std=c++17 "--generate-code=arch=compute_60,code=[compute_60,sm_60]" + INCLUDES = -isystem /opt/cuda/targets/x86_64-linux/include + OBJECT_DIR = CMakeFiles/app.dir + OBJECT_FILE_DIR = CMakeFiles/app.dir + + +# ============================================================================= +# Device Link build statements for EXECUTABLE target app + + +############################################# +# Link the executable CMakeFiles/app.dir/cmake_device_link.o + +build CMakeFiles/app.dir/cmake_device_link.o: CUDA_EXECUTABLE_DEVICE_LINKER__app_Debug CMakeFiles/app.dir/main.cu.o | /opt/cuda/targets/x86_64-linux/lib/libcudart.so /usr/lib/librt.a + LANGUAGE_COMPILE_FLAGS = -g "--generate-code=arch=compute_60,code=[compute_60,sm_60]" + LINK_LIBRARIES = -ldl /usr/lib/librt.a -lcudadevrt -lcudart_static -lrt -lpthread + OBJECT_DIR = CMakeFiles/app.dir + TARGET_FILE = CMakeFiles/app.dir/cmake_device_link.o + +# ============================================================================= +# Link build statements for EXECUTABLE target app + + +############################################# +# Link the executable app + +build app: CUDA_EXECUTABLE_LINKER__app_Debug CMakeFiles/app.dir/main.cu.o CMakeFiles/app.dir/cmake_device_link.o | /opt/cuda/targets/x86_64-linux/lib/libcudart.so /usr/lib/librt.a + CONFIG = Debug + FLAGS = -g "--generate-code=arch=compute_60,code=[compute_60,sm_60]" + LINK_LIBRARIES = /opt/cuda/targets/x86_64-linux/lib/libcudart.so -ldl /usr/lib/librt.a -lcudadevrt -lcudart_static -lrt -lpthread -ldl + OBJECT_DIR = CMakeFiles/app.dir + POST_BUILD = : + PRE_LINK = : + TARGET_FILE = app + TARGET_PDB = app.dbg + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/tobli/abo/pprog/Homework-3/build && /usr/bin/ccmake -S/home/tobli/abo/pprog/Homework-3 -B/home/tobli/abo/pprog/Homework-3/build + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/tobli/abo/pprog/Homework-3/build && /usr/bin/cmake --regenerate-during-build -S/home/tobli/abo/pprog/Homework-3 -B/home/tobli/abo/pprog/Homework-3/build + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /home/tobli/abo/pprog/Homework-3/build + +build all: phony app + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja /home/tobli/abo/pprog/Homework-3/build/cmake_install.cmake: RERUN_CMAKE | /home/tobli/abo/pprog/Homework-3/CMakeLists.txt /usr/share/cmake/Modules/CMakeCUDAInformation.cmake /usr/share/cmake/Modules/CMakeCXXInformation.cmake /usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake/Modules/CMakeGenericSystem.cmake /usr/share/cmake/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake/Modules/CMakeLanguageInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake/Modules/CheckCXXSourceCompiles.cmake /usr/share/cmake/Modules/CheckIncludeFileCXX.cmake /usr/share/cmake/Modules/CheckLibraryExists.cmake /usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake/Modules/Compiler/Clang-CXX.cmake /usr/share/cmake/Modules/Compiler/Clang.cmake /usr/share/cmake/Modules/Compiler/GNU.cmake /usr/share/cmake/Modules/Compiler/NVIDIA-CUDA.cmake /usr/share/cmake/Modules/Compiler/NVIDIA.cmake /usr/share/cmake/Modules/FindCUDAToolkit.cmake /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake /usr/share/cmake/Modules/FindPackageMessage.cmake /usr/share/cmake/Modules/FindThreads.cmake /usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake /usr/share/cmake/Modules/Linker/GNU-CXX.cmake /usr/share/cmake/Modules/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Clang-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake/Modules/Platform/Linux-NVIDIA-CUDA.cmake /usr/share/cmake/Modules/Platform/Linux.cmake /usr/share/cmake/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake CMakeFiles/4.0.2-dirty/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /home/tobli/abo/pprog/Homework-3/CMakeLists.txt /usr/share/cmake/Modules/CMakeCUDAInformation.cmake /usr/share/cmake/Modules/CMakeCXXInformation.cmake /usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake/Modules/CMakeGenericSystem.cmake /usr/share/cmake/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake/Modules/CMakeLanguageInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake/Modules/CheckCXXSourceCompiles.cmake /usr/share/cmake/Modules/CheckIncludeFileCXX.cmake /usr/share/cmake/Modules/CheckLibraryExists.cmake /usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake/Modules/Compiler/Clang-CXX.cmake /usr/share/cmake/Modules/Compiler/Clang.cmake /usr/share/cmake/Modules/Compiler/GNU.cmake /usr/share/cmake/Modules/Compiler/NVIDIA-CUDA.cmake /usr/share/cmake/Modules/Compiler/NVIDIA.cmake /usr/share/cmake/Modules/FindCUDAToolkit.cmake /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake /usr/share/cmake/Modules/FindPackageMessage.cmake /usr/share/cmake/Modules/FindThreads.cmake /usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake /usr/share/cmake/Modules/Linker/GNU-CXX.cmake /usr/share/cmake/Modules/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Clang-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake/Modules/Platform/Linux-NVIDIA-CUDA.cmake /usr/share/cmake/Modules/Platform/Linux.cmake /usr/share/cmake/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/4.0.2-dirty/CMakeCUDACompiler.cmake CMakeFiles/4.0.2-dirty/CMakeCXXCompiler.cmake CMakeFiles/4.0.2-dirty/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake new file mode 100644 index 0000000..f494a34 --- /dev/null +++ b/build/cmake_install.cmake @@ -0,0 +1,66 @@ +# Install script for directory: /home/tobli/abo/pprog/Homework-3 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set path to fallback-tool for dependency-resolution. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/llvm-objdump") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +if(CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/tobli/abo/pprog/Homework-3/build/install_local_manifest.txt" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() +if(CMAKE_INSTALL_COMPONENT) + if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") + else() + string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt") + unset(CMAKE_INST_COMP_HASH) + endif() +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/tobli/abo/pprog/Homework-3/build/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() diff --git a/build/compile_commands.json b/build/compile_commands.json new file mode 100644 index 0000000..c67bc93 --- /dev/null +++ b/build/compile_commands.json @@ -0,0 +1,8 @@ +[ +{ + "directory": "/home/tobli/abo/pprog/Homework-3/build", + "command": "/opt/cuda/bin/nvcc -forward-unknown-to-host-compiler -isystem /opt/cuda/targets/x86_64-linux/include -g -std=c++17 \"--generate-code=arch=compute_60,code=[compute_60,sm_60]\" -x cu -rdc=true -c /home/tobli/abo/pprog/Homework-3/main.cu -o CMakeFiles/app.dir/main.cu.o", + "file": "/home/tobli/abo/pprog/Homework-3/main.cu", + "output": "CMakeFiles/app.dir/main.cu.o" +} +] \ No newline at end of file diff --git a/cmake_install.cmake b/cmake_install.cmake new file mode 100644 index 0000000..d7a7ee6 --- /dev/null +++ b/cmake_install.cmake @@ -0,0 +1,66 @@ +# Install script for directory: /home/tobli/abo/pprog/Homework-3 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set path to fallback-tool for dependency-resolution. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +if(CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/tobli/abo/pprog/Homework-3/install_local_manifest.txt" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() +if(CMAKE_INSTALL_COMPONENT) + if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") + else() + string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt") + unset(CMAKE_INST_COMP_HASH) + endif() +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/tobli/abo/pprog/Homework-3/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() diff --git a/data/0/run_cuda.log b/data/0/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/0/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/1/run_cuda.log b/data/1/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/1/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/2/run_cuda.log b/data/2/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/2/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/3/run_cuda.log b/data/3/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/3/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/4/run_cuda.log b/data/4/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/4/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/5/run_cuda.log b/data/5/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/5/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/6/run_cuda.log b/data/6/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/6/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/7/run_cuda.log b/data/7/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/7/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/8/run_cuda.log b/data/8/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/8/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/data/9/run_cuda.log b/data/9/run_cuda.log new file mode 100644 index 0000000..45d3aec --- /dev/null +++ b/data/9/run_cuda.log @@ -0,0 +1 @@ +./test.sh: line 26: ./main: No such file or directory diff --git a/main.cu b/main.cu index 50df6a1..ced4c72 100644 --- a/main.cu +++ b/main.cu @@ -1,43 +1,196 @@ #include #include #include +#include #include +#include +#include +#include +#include __global__ void naive_cuda_matmul(float *C, float *A, float *B, uint32_t m, uint32_t n, uint32_t p) { - // TODO: Implement naive CUDA matrix multiplication + uint32_t row = blockIdx.y * blockDim.y + threadIdx.y; + uint32_t col = blockIdx.x * blockDim.x + threadIdx.x; + if (row < m && col < p) { + float sum = 0.0f; + for (uint32_t k = 0; k < n; ++k) { + sum += A[row * n + k] * B[k * p + col]; + } + C[row * p + col] = sum; + } } +// Tiled CUDA with shared memory for A and B __global__ void tiled_cuda_matmul(float *C, float *A, float *B, uint32_t m, uint32_t n, uint32_t p, uint32_t tile_width) { - // TODO: Implement tiled CUDA matrix multiplication + extern __shared__ float shared_mem[]; + float* As = shared_mem; + float* Bs = shared_mem + tile_width * tile_width; + + uint32_t row = blockIdx.y * tile_width + threadIdx.y; + uint32_t col = blockIdx.x * tile_width + threadIdx.x; + float sum = 0.0f; + + for (uint32_t t = 0; t < (n + tile_width - 1) / tile_width; ++t) { + uint32_t tiled_row = row; + uint32_t tiled_col = t * tile_width + threadIdx.x; + if (tiled_row < m && tiled_col < n) + As[threadIdx.y * tile_width + threadIdx.x] = A[tiled_row * n + tiled_col]; + else + As[threadIdx.y * tile_width + threadIdx.x] = 0.0f; + + tiled_row = t * tile_width + threadIdx.y; + tiled_col = col; + if (tiled_row < n && tiled_col < p) + Bs[threadIdx.y * tile_width + threadIdx.x] = B[tiled_row * p + tiled_col]; + else + Bs[threadIdx.y * tile_width + threadIdx.x] = 0.0f; + + __syncthreads(); + + for (uint32_t k = 0; k < tile_width; ++k) { + sum += As[threadIdx.y * tile_width + k] * Bs[k * tile_width + threadIdx.x]; + } + __syncthreads(); + } + if (row < m && col < p) + C[row * p + col] = sum; } +//Read raw float matrix +bool read_matrix(const std::string &filename, std::vector &mat, size_t size) { + std::ifstream in(filename, std::ios::binary); + if (!in) return false; + in.read(reinterpret_cast(mat.data()), size * sizeof(float)); + return in.good(); +} + +//Write float matrix +bool write_matrix(const std::string &filename, const std::vector &mat, size_t size) { + std::ofstream out(filename, std::ios::binary); + if (!out) return false; + out.write(reinterpret_cast(mat.data()), size * sizeof(float)); + return out.good(); +} + +// Validate result bool validate_result(const std::string &result_file, const std::string &reference_file) { - // TODO: Implement result validation (same as Assignment 2) + std::ifstream res(result_file, std::ios::binary); + std::ifstream ref(reference_file, std::ios::binary); + if (!res || !ref) return false; + res.seekg(0, std::ios::end); + ref.seekg(0, std::ios::end); + size_t res_size = res.tellg(); + size_t ref_size = ref.tellg(); + if (res_size != ref_size) return false; + res.seekg(0); + ref.seekg(0); + std::vector res_buf(res_size), ref_buf(ref_size); + res.read(res_buf.data(), res_size); + ref.read(ref_buf.data(), ref_size); + return std::memcmp(res_buf.data(), ref_buf.data(), res_size) == 0; } int main(int argc, char *argv[]) { + if (argc < 5) { + std::cerr << "Usage: " << argv[0] << "

\n"; + return 1; + } + int case_number = std::stoi(argv[1]); + uint32_t m = std::stoul(argv[2]); + uint32_t n = std::stoul(argv[3]); + uint32_t p = std::stoul(argv[4]); + uint32_t tile_width = 16; // You can experiment with 16, 32, etc. + + std::string case_dir = "data/" + std::to_string(case_number) + "/"; + std::string a_file = case_dir + "input0.raw"; + std::string b_file = case_dir + "input1.raw"; + std::string c_file_naive = case_dir + "result_naive.raw"; + std::string c_file_tiled = case_dir + "result_tiled.raw"; + std::string ref_file = case_dir + "output.raw"; + + size_t size_A = m * n; + size_t size_B = n * p; + size_t size_C = m * p; + + std::vector h_A(size_A), h_B(size_B), h_C_naive(size_C), h_C_tiled(size_C); + + // Read input matrices + if (!read_matrix(a_file, h_A, size_A) || !read_matrix(b_file, h_B, size_B)) { + std::cerr << "Failed to read input files.\n"; + return 1; + } + + // Allocate device memory + float *d_A = nullptr, *d_B = nullptr, *d_C = nullptr; + cudaMalloc(&d_A, size_A * sizeof(float)); + cudaMalloc(&d_B, size_B * sizeof(float)); + cudaMalloc(&d_C, size_C * sizeof(float)); + + // --- Naive CUDA --- + cudaEvent_t start_naive, stop_naive; + cudaEventCreate(&start_naive); + cudaEventCreate(&stop_naive); + + cudaEventRecord(start_naive); + cudaMemcpy(d_A, h_A.data(), size_A * sizeof(float), cudaMemcpyHostToDevice); + cudaMemcpy(d_B, h_B.data(), size_B * sizeof(float), cudaMemcpyHostToDevice); + + dim3 threadsPerBlock(16, 16); + dim3 numBlocks((p + 15) / 16, (m + 15) / 16); + naive_cuda_matmul<<>>(d_C, d_A, d_B, m, n, p); + cudaDeviceSynchronize(); + + cudaMemcpy(h_C_naive.data(), d_C, size_C * sizeof(float), cudaMemcpyDeviceToHost); + cudaEventRecord(stop_naive); + cudaEventSynchronize(stop_naive); + + float naive_cuda_time = 0.0f; + cudaEventElapsedTime(&naive_cuda_time, start_naive, stop_naive); + naive_cuda_time /= 1000.0f; // ms to s + write_matrix(c_file_naive, h_C_naive, size_C); + bool valid_naive = validate_result(c_file_naive, ref_file); - // TODO: Read input0.raw (matrix A) and input1.raw (matrix B) + cudaEvent_t start_tiled, stop_tiled; + cudaEventCreate(&start_tiled); + cudaEventCreate(&stop_tiled); - // TODO: Use cudaMalloc and cudaMemcpy for GPU memory + cudaEventRecord(start_tiled); + cudaMemcpy(d_A, h_A.data(), size_A * sizeof(float), cudaMemcpyHostToDevice); + cudaMemcpy(d_B, h_B.data(), size_B * sizeof(float), cudaMemcpyHostToDevice); - // Measure naive CUDA performance - // TODO: Launch naive_cuda_matmul kernel + dim3 threadsPerBlockTiled(tile_width, tile_width); + dim3 numBlocksTiled((p + tile_width - 1) / tile_width, (m + tile_width - 1) / tile_width); + size_t shared_mem_size = 2 * tile_width * tile_width * sizeof(float); + tiled_cuda_matmul<<>>(d_C, d_A, d_B, m, n, p, tile_width); + cudaDeviceSynchronize(); - // TODO: Write naive CUDA result to file and validate - // Measure tiled CUDA performance + cudaMemcpy(h_C_tiled.data(), d_C, size_C * sizeof(float), cudaMemcpyDeviceToHost); + cudaEventRecord(stop_tiled); + cudaEventSynchronize(stop_tiled); - // TODO: Launch tiled_cuda_matmul kernel + float tiled_cuda_time = 0.0f; + cudaEventElapsedTime(&tiled_cuda_time, start_tiled, stop_tiled); + tiled_cuda_time /= 1000.0f; // ms to s - // TODO: Write tiled CUDA result to file and validate + write_matrix(c_file_tiled, h_C_tiled, size_C); + bool valid_tiled = validate_result(c_file_tiled, ref_file); - // Print performance results + // Print results std::cout << "Case " << case_number << " (" << m << "x" << n << "x" << p << "):\n"; - std::cout << "Naive CUDA time: " << naive_cuda_time << " seconds\n"; - std::cout << "Tiled CUDA time: " << tiled_cuda_time << " seconds\n"; + std::cout << "Naive CUDA time: " << naive_cuda_time << " seconds"; + std::cout << (valid_naive ? " [VALID]\n" : " [INVALID]\n"); + std::cout << "Tiled CUDA time: " << tiled_cuda_time << " seconds"; + std::cout << (valid_tiled ? " [VALID]\n" : " [INVALID]\n"); // Clean up + cudaFree(d_A); + cudaFree(d_B); + cudaFree(d_C); + cudaEventDestroy(start_naive); + cudaEventDestroy(stop_naive); + cudaEventDestroy(start_tiled); + cudaEventDestroy(stop_tiled); return 0; } \ No newline at end of file diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..2feedc1 --- /dev/null +++ b/test.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# Remember to make file executable with chmod +x test.sh +# Usage: ./test.sh +# This script runs all CUDA test cases (0..9) using main.cu's executable. + +declare -a CASE_DIMENSIONS +CASE_DIMENSIONS[0]="1024 1024 1024" +CASE_DIMENSIONS[1]="512 512 512" +CASE_DIMENSIONS[2]="256 256 256" +CASE_DIMENSIONS[3]="128 128 128" +CASE_DIMENSIONS[4]="64 64 64" +CASE_DIMENSIONS[5]="2048 2048 2048" +CASE_DIMENSIONS[6]="1024 2048 512" +CASE_DIMENSIONS[7]="512 1024 2048" +CASE_DIMENSIONS[8]="2048 512 1024" +CASE_DIMENSIONS[9]="4096 4096 4096" + +for i in $(seq 0 9); do + dims=${CASE_DIMENSIONS[$i]} + echo "Running CUDA case $i with dims $dims" + ./main $i $dims > data/$i/run_cuda.log 2>&1 + if grep -q "INVALID" data/$i/run_cuda.log; then + echo "Case $i: FAIL (see data/$i/run_cuda.log)" + else + echo "Case $i: PASS" + fi +done \ No newline at end of file